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"