From 303a26c8ae7900b3ce4f7b06406782dc8c5f4351 Mon Sep 17 00:00:00 2001
From: David Li
Date: Tue, 6 Sep 2022 12:40:09 -0400
Subject: [PATCH] Describe/update versioning
---
adbc.h | 23 +++++++++++++++++--
c/cmake_modules/AdbcDefines.cmake | 6 ++---
java/core/pom.xml | 2 +-
.../apache/arrow/adbc/core/package-info.java | 2 +-
java/driver-manager/pom.xml | 2 +-
java/driver/flight-sql-validation/pom.xml | 2 +-
java/driver/flight-sql/pom.xml | 2 +-
java/driver/jdbc-util/pom.xml | 2 +-
java/driver/jdbc-validation-derby/pom.xml | 2 +-
.../driver/jdbc-validation-postgresql/pom.xml | 2 +-
java/driver/jdbc/pom.xml | 2 +-
java/driver/validation/pom.xml | 2 +-
java/pom.xml | 4 ++--
java/sql/pom.xml | 2 +-
.../apache/arrow/adbc/sql/package-info.java | 6 +----
python/adbc_driver_manager/pyproject.toml | 2 +-
python/adbc_driver_postgres/pyproject.toml | 2 +-
17 files changed, 40 insertions(+), 25 deletions(-)
diff --git a/adbc.h b/adbc.h
index 00e4026c16..dc1af3eba1 100644
--- a/adbc.h
+++ b/adbc.h
@@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-/// \file ADBC: Arrow Database connectivity
+/// \file adbc.h ADBC: Arrow Database connectivity
///
/// An Arrow-based interface between applications and database
/// drivers. ADBC aims to provide a vendor-independent API for SQL
@@ -28,7 +28,7 @@
/// provided, which implements this same API, but dynamically loads
/// drivers internally and forwards calls appropriately.
///
-/// EXPERIMENTAL. Interface subject to change.
+/// \version 1.0.0
#pragma once
@@ -1190,6 +1190,8 @@ typedef AdbcStatusCode (*AdbcDriverInitFunc)(int version, void* driver,
/// \page compatibility Backwards and Forwards Compatibility
///
+/// ## Compatibility
+///
/// The goal is to be **ABI-compatible** across releases. Hence, a
/// few choices were made:
///
@@ -1221,6 +1223,23 @@ typedef AdbcStatusCode (*AdbcDriverInitFunc)(int version, void* driver,
///
/// This approach does not let us change the signatures of existing
/// functions, but we can add new functions and remove existing ones.
+///
+/// ## Versioning
+///
+/// ADBC is versioned separately from the core Arrow project. The API
+/// standard and components (driver manager, drivers) are also
+/// versioned separately, but both follow semantic versioning.
+///
+/// For example: components may make backwards-compatible releases as
+/// 1.0.0, 1.0.1, 1.1.0, 1.2.0, etc. They may release
+/// backwards-incompatible versions such as 2.0.0, but which still
+/// implement the API standard version 1.0.0.
+///
+/// Similarly, this documentation describes the ADBC API standard
+/// version 1.0.0. If/when a compatible revision is made (e.g. new
+/// standard options are defined), the next version would be 1.1.0.
+/// If incompatible changes are made (e.g. new API functions), the
+/// next version would be 2.0.0.
/// \page concurrency Concurrency and Thread Safety
///
diff --git a/c/cmake_modules/AdbcDefines.cmake b/c/cmake_modules/AdbcDefines.cmake
index d2b6ecc8f7..e3ff917e0b 100644
--- a/c/cmake_modules/AdbcDefines.cmake
+++ b/c/cmake_modules/AdbcDefines.cmake
@@ -25,9 +25,9 @@ include(DefineOptions)
include(GNUInstallDirs) # Populates CMAKE_INSTALL_INCLUDEDIR
include(san-config)
-set(ADBC_VERSION "9.0.0-SNAPSHOT")
-set(ADBC_BASE_VERSION "9.0.0")
-set(ADBC_VERSION_MAJOR "9")
+set(ADBC_VERSION "1.0.0-SNAPSHOT")
+set(ADBC_BASE_VERSION "1.0.0")
+set(ADBC_VERSION_MAJOR "1")
set(ADBC_VERSION_MINOR "0")
set(ADBC_VERSION_PATCH "0")
diff --git a/java/core/pom.xml b/java/core/pom.xml
index 990786f6e1..883ec8c341 100644
--- a/java/core/pom.xml
+++ b/java/core/pom.xml
@@ -14,7 +14,7 @@
arrow-adbc-java-root
org.apache.arrow.adbc
- 10.0.0-SNAPSHOT
+ 1.0.0-SNAPSHOT
adbc-core
diff --git a/java/core/src/main/java/org/apache/arrow/adbc/core/package-info.java b/java/core/src/main/java/org/apache/arrow/adbc/core/package-info.java
index 2830fc61ac..658bfb0684 100644
--- a/java/core/src/main/java/org/apache/arrow/adbc/core/package-info.java
+++ b/java/core/src/main/java/org/apache/arrow/adbc/core/package-info.java
@@ -27,6 +27,6 @@
* provided, which implements this same API, but dynamically loads drivers internally and forwards
* calls appropriately.
*
- * ADBC is currently experimental. Interface is subject to change.
+ * @version 1.0.0
*/
package org.apache.arrow.adbc.core;
diff --git a/java/driver-manager/pom.xml b/java/driver-manager/pom.xml
index 14b8d81d0f..df880363d3 100644
--- a/java/driver-manager/pom.xml
+++ b/java/driver-manager/pom.xml
@@ -14,7 +14,7 @@
arrow-adbc-java-root
org.apache.arrow.adbc
- 10.0.0-SNAPSHOT
+ 1.0.0-SNAPSHOT
adbc-driver-manager
diff --git a/java/driver/flight-sql-validation/pom.xml b/java/driver/flight-sql-validation/pom.xml
index c453e8e35e..419e89fc15 100644
--- a/java/driver/flight-sql-validation/pom.xml
+++ b/java/driver/flight-sql-validation/pom.xml
@@ -14,7 +14,7 @@
arrow-adbc-java-root
org.apache.arrow.adbc
- 10.0.0-SNAPSHOT
+ 1.0.0-SNAPSHOT
../../pom.xml
diff --git a/java/driver/flight-sql/pom.xml b/java/driver/flight-sql/pom.xml
index 5003d95536..86161d5aea 100644
--- a/java/driver/flight-sql/pom.xml
+++ b/java/driver/flight-sql/pom.xml
@@ -14,7 +14,7 @@
arrow-adbc-java-root
org.apache.arrow.adbc
- 10.0.0-SNAPSHOT
+ 1.0.0-SNAPSHOT
../../pom.xml
diff --git a/java/driver/jdbc-util/pom.xml b/java/driver/jdbc-util/pom.xml
index 5c0e025c87..1385ae6325 100644
--- a/java/driver/jdbc-util/pom.xml
+++ b/java/driver/jdbc-util/pom.xml
@@ -14,7 +14,7 @@
arrow-adbc-java-root
org.apache.arrow.adbc
- 10.0.0-SNAPSHOT
+ 1.0.0-SNAPSHOT
../../pom.xml
diff --git a/java/driver/jdbc-validation-derby/pom.xml b/java/driver/jdbc-validation-derby/pom.xml
index f1b0c04d50..c12553dac8 100644
--- a/java/driver/jdbc-validation-derby/pom.xml
+++ b/java/driver/jdbc-validation-derby/pom.xml
@@ -14,7 +14,7 @@
arrow-adbc-java-root
org.apache.arrow.adbc
- 10.0.0-SNAPSHOT
+ 1.0.0-SNAPSHOT
../../pom.xml
diff --git a/java/driver/jdbc-validation-postgresql/pom.xml b/java/driver/jdbc-validation-postgresql/pom.xml
index 1f7672f799..b01625ba08 100644
--- a/java/driver/jdbc-validation-postgresql/pom.xml
+++ b/java/driver/jdbc-validation-postgresql/pom.xml
@@ -14,7 +14,7 @@
arrow-adbc-java-root
org.apache.arrow.adbc
- 10.0.0-SNAPSHOT
+ 1.0.0-SNAPSHOT
../../pom.xml
diff --git a/java/driver/jdbc/pom.xml b/java/driver/jdbc/pom.xml
index 964c0a31bc..4b8051c0dc 100644
--- a/java/driver/jdbc/pom.xml
+++ b/java/driver/jdbc/pom.xml
@@ -14,7 +14,7 @@
arrow-adbc-java-root
org.apache.arrow.adbc
- 10.0.0-SNAPSHOT
+ 1.0.0-SNAPSHOT
../../pom.xml
diff --git a/java/driver/validation/pom.xml b/java/driver/validation/pom.xml
index e0008d477f..f115465130 100644
--- a/java/driver/validation/pom.xml
+++ b/java/driver/validation/pom.xml
@@ -14,7 +14,7 @@
arrow-adbc-java-root
org.apache.arrow.adbc
- 10.0.0-SNAPSHOT
+ 1.0.0-SNAPSHOT
../../pom.xml
diff --git a/java/pom.xml b/java/pom.xml
index 4e1cce132e..74dd26be7f 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -20,7 +20,7 @@
org.apache.arrow.adbc
arrow-adbc-java-root
- 10.0.0-SNAPSHOT
+ 1.0.0-SNAPSHOT
pom
Apache Arrow ADBC Java Root POM
@@ -29,7 +29,7 @@
9.0.0
- 10.0.0-SNAPSHOT
+ 1.0.0-SNAPSHOT
diff --git a/java/sql/pom.xml b/java/sql/pom.xml
index 5044089988..f360658219 100644
--- a/java/sql/pom.xml
+++ b/java/sql/pom.xml
@@ -14,7 +14,7 @@
arrow-adbc-java-root
org.apache.arrow.adbc
- 10.0.0-SNAPSHOT
+ 1.0.0-SNAPSHOT
adbc-sql
diff --git a/java/sql/src/main/java/org/apache/arrow/adbc/sql/package-info.java b/java/sql/src/main/java/org/apache/arrow/adbc/sql/package-info.java
index 7ed2c8b69e..910f3f1ed7 100644
--- a/java/sql/src/main/java/org/apache/arrow/adbc/sql/package-info.java
+++ b/java/sql/src/main/java/org/apache/arrow/adbc/sql/package-info.java
@@ -15,9 +15,5 @@
* limitations under the License.
*/
-/**
- * This module contains common utilities for drivers working with SQL.
- *
- * ADBC is currently experimental.
- */
+/** This module contains common utilities for drivers working with SQL. */
package org.apache.arrow.adbc.sql;
diff --git a/python/adbc_driver_manager/pyproject.toml b/python/adbc_driver_manager/pyproject.toml
index 9424bb21f3..a0494bc665 100644
--- a/python/adbc_driver_manager/pyproject.toml
+++ b/python/adbc_driver_manager/pyproject.toml
@@ -17,7 +17,7 @@
[tool.poetry]
name = "adbc_driver_manager"
-version = "0.0.1-alpha.1"
+version = "1.0.0-alpha.0"
description = ""
authors = ["Apache Arrow Developers "]
license = "Apache-2.0"
diff --git a/python/adbc_driver_postgres/pyproject.toml b/python/adbc_driver_postgres/pyproject.toml
index 7b1c3c5c2f..deb3184ae2 100644
--- a/python/adbc_driver_postgres/pyproject.toml
+++ b/python/adbc_driver_postgres/pyproject.toml
@@ -17,7 +17,7 @@
[tool.poetry]
name = "adbc_driver_postgres"
-version = "0.0.0-alpha0"
+version = "1.0.0-alpha0"
description = ""
authors = ["Apache Arrow Developers "]
license = "Apache-2.0"