Skip to content

Commit

Permalink
ARROW-5848: [C++] SO versioning schema after release 1.0.0
Browse files Browse the repository at this point in the history
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 <szucs.krisztian@gmail.com>

Closes #4801 from kszucs/so-versioning and squashes the following commits:

81519fe <Krisztián Szűcs> cmake-format
74a8cbf <Krisztián Szűcs> fix full so-version in comment
431ef56 <Krisztián Szűcs> update SO versioning
  • Loading branch information
kszucs authored and pitrou committed Jul 4, 2019
1 parent 2d63975 commit 380d0a7
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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: "
Expand Down

0 comments on commit 380d0a7

Please sign in to comment.