You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by ap...@apache.org on 2019/07/04 14:11:06 UTC

[arrow] branch master updated: ARROW-5848: [C++] SO versioning schema after release 1.0.0

This is an automated email from the ASF dual-hosted git repository.

apitrou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/master by this push:
     new 380d0a7  ARROW-5848: [C++] SO versioning schema after release 1.0.0
380d0a7 is described below

commit 380d0a7af14d76df2f6ee0e4eac0e6ff09376435
Author: Krisztián Szűcs <sz...@gmail.com>
AuthorDate: Thu Jul 4 16:10:56 2019 +0200

    ARROW-5848: [C++] SO versioning schema after release 1.0.0
    
    Described by @kou on the mailing list:
    
    > If we may break ABI compatibility each minor version up
    > release ("Y" is increased in "X.Y.Z"), we should include
    > minor version into SO major version (100, 101 and 102 in the
    > following examples):
    >
    >   * 1.0.0 -> libarrow.100.0.0
    >   * 1.1.0 -> libarrow.101.0.0
    >   * 1.2.0 -> libarrow.102.0.0
    >
    > If we don't break ABI compatibility each minor version up
    > release, we just use the same SO major version (100 in the
    > following examples) in 1.0.0:
    >
    >   * 1.0.0 -> libarrow.100.0.0
    >   * 1.1.0 -> libarrow.100.1.0
    >   * 1.2.0 -> libarrow.100.2.0
    >
    > I choose 1XX as SO major version because we already use
    > 10-14 for SO major version. We should not use them in the
    > future to avoid confusion. So I choose 1XX in the above
    > examples.
    
    We can change this schema later, but to resolve the CI failures we need a solution for now.
    
    Author: Krisztián Szűcs <sz...@gmail.com>
    
    Closes #4801 from kszucs/so-versioning and squashes the following commits:
    
    81519fe1f <Krisztián Szűcs> cmake-format
    74a8cbf2a <Krisztián Szűcs> fix full so-version in comment
    431ef567d <Krisztián Szűcs> update SO versioning
---
 cpp/CMakeLists.txt | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt
index 8f00eb2..82585d0 100644
--- a/cpp/CMakeLists.txt
+++ b/cpp/CMakeLists.txt
@@ -39,12 +39,14 @@ if(ARROW_VERSION_MAJOR STREQUAL ""
 endif()
 
 # The SO version is also the ABI version
-if(arrow_VERSION_MAJOR STREQUAL "0")
+if(ARROW_VERSION_MAJOR STREQUAL "0")
   # Arrow 0.x.y => SO version is "x", full SO version is "x.y.0"
   set(ARROW_SO_VERSION "${ARROW_VERSION_MINOR}")
   set(ARROW_FULL_SO_VERSION "${ARROW_SO_VERSION}.${ARROW_VERSION_PATCH}.0")
 else()
-  message(FATAL_ERROR "Need to implement SO version generation for Arrow 1.0+")
+  # Arrow 1.x.y => SO version is "10x", full SO version is "10x.y.0"
+  math(EXPR ARROW_SO_VERSION "${ARROW_VERSION_MAJOR} * 100 + ${ARROW_VERSION_MINOR}")
+  set(ARROW_FULL_SO_VERSION "${ARROW_SO_VERSION}.${ARROW_VERSION_PATCH}.0")
 endif()
 
 message(STATUS "Arrow version: "