From 53978b6b93b21f84f4c0a7927698aab04b9da9c9 Mon Sep 17 00:00:00 2001 From: Frank Celler <392005+fceller@users.noreply.github.com> Date: Mon, 27 Aug 2018 23:25:21 +0200 Subject: [PATCH] Feature/semantic versioning (#6265) --- CMakeLists.txt | 206 ++++++++++++++++++-- Installation/Ubuntu/snapcraft.yaml.in | 2 +- Installation/Windows/version/VersionInfo.in | 4 +- Installation/debian/packagedesc.txt | 2 +- Installation/release.sh | 2 +- Installation/rpm/arangodb.spec.in | 2 +- VERSION | 2 +- cmake/ArangoDBInstall.cmake | 4 +- cmake/InstallArangoDBJSClient.cmake | 6 +- cmake/packages/client/deb.txt | 5 +- cmake/packages/client/nsis.txt | 2 +- cmake/packages/dbg/deb.txt | 5 +- cmake/packages/deb.cmake | 16 +- cmake/packages/nsis.cmake | 4 +- cmake/packages/packages.cmake | 28 ++- etc/arangodb3/arango-dfdb.conf.in | 2 +- scripts/generateDocumentation.sh | 4 +- 17 files changed, 250 insertions(+), 46 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9912a6fa1d..2b97e8ab20 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,21 +60,203 @@ add_definitions("-DFUERTE_STANDALONE_ASIO=1") # VERSION information # ------------------------------------------------------------------------------ -set(ARANGODB_VERSION_MAJOR "3") -set(ARANGODB_VERSION_MINOR "4") -if (NOT DEFINED ARANGODB_VERSION_REVISION) - set(ARANGODB_VERSION_REVISION "devel") -endif() -set(ARANGODB_PACKAGE_REVISION "1") -# version for the windows rc file needs to be numeric: -if (ARANGODB_VERSION_REVISION GREATER -1) - set(ARANGODB_NUMERIC_VERSION_REVISION "${ARANGODB_VERSION_REVISION}") +# stable release: MAJOR.MINOR.PATCH +# hot fix: MAJOR.MINOR.PATCH-FIXNUMBER +# unstable release: MAJOR.MINOR.PATCH-TYPE.NUMBER +# devel: MAJOR.MINOR.devel +# +# These are mapped to the following variables: +# +# ARANGODB_VERSION_MAJOR = MAJOR +# ARANGODB_VERSION_MINOR = MINOR +# ARANGODB_VERSION_PATCH = PATCH +# +# for pre-releases, otherwise empty: +# +# ARANGODB_VERSION_PRELEASE_TYPE = TYPE +# ARANGODB_VERSION_PRELEASE_NUMBER = NUMBER +# +# This will set the following variables +# +# ARANGODB_DEBIAN_UPSTREAM +# ARANGODB_DEBIAN_REVISION +# +# ARANGODB_RPM_UPSTREAM +# ARANGODB_RPM_REVISION + +set(ARANGODB_VERSION_MAJOR "3") +set(ARANGODB_VERSION_MINOR "4") + +# when building the nightly ARANGODB_VERSION_PATCH will be set +if (NOT DEFINED ARANGODB_VERSION_PATCH) + set(ARANGODB_VERSION_PATCH "0") + set(ARANGODB_VERSION_RELEASE_TYPE "rc") + set(ARANGODB_VERSION_RELEASE_NUMBER "1") else() - set(ARANGODB_NUMERIC_VERSION_REVISION 1337) + unset(ARANGODB_VERSION_RELEASE_TYPE) + unset(ARANGODB_VERSION_RELEASE_NUMBER) endif() -set(ARANGODB_VERSION - "${ARANGODB_VERSION_MAJOR}.${ARANGODB_VERSION_MINOR}.${ARANGODB_VERSION_REVISION}") +# unset TYPE and NUMBER in case they are empty +if (DEFINED ARANGODB_VERSION_RELEASE_TYPE) + if (ARANGODB_VERSION_RELEASE_TYPE STREQUAL "") + unset(ARANGODB_VERSION_RELEASE_TYPE) + unset(ARANGODB_VERSION_RELEASE_NUMBER) + endif() +else() + unset(ARANGODB_VERSION_RELEASE_NUMBER) +endif() + +if (DEFINED ARANGODB_VERSION_RELEASE_NUMBER) + if (ARANGODB_VERSION_RELEASE_NUMBER STREQUAL "") + unset(ARANGODB_VERSION_RELEASE_NUMBER) + endif() +endif() + +# semantic version +set(ARANGODB_PLAIN_VERSION "${ARANGODB_VERSION_MAJOR}.${ARANGODB_VERSION_MINOR}.${ARANGODB_VERSION_PATCH}") + +if (DEFINED ARANGODB_VERSION_RELEASE_TYPE) + if (DEFINED ARANGODB_VERSION_RELEASE_NUMBER) + set(ARANGODB_VERSION "${ARANGODB_PLAIN_VERSION}-${ARANGODB_VERSION_RELEASE_TYPE}.${ARANGODB_VERSION_RELEASE_NUMBER}") + set(ARANGODB_JS_VERSION "js/${ARANGODB_PLAIN_VERSION}") + else() + set(ARANGODB_VERSION "${ARANGODB_PLAIN_VERSION}-${ARANGODB_VERSION_RELEASE_TYPE}") + set(ARANGODB_JS_VERSION "js/${ARANGODB_PLAIN_VERSION}") + endif() +else() + set(ARANGODB_VERSION "${ARANGODB_PLAIN_VERSION}") + set(ARANGODB_JS_VERSION "js/${ARANGODB_PLAIN_VERSION}") +endif() + +message(STATUS "ARANGODB PLAIN VERSION: ${ARANGODB_PLAIN_VERSION}") +message(STATUS "ARANGODB VERSION: ${ARANGODB_VERSION}") +message(STATUS "ARANGODB JS VERSION: ${ARANGODB_JS_VERSION}") + +################################################################################ +# DEBIAN, RPM, MacOS version +################################################################################ + +if (DEFINED ARANGODB_VERSION_RELEASE_TYPE) + + # unstable version + if ( ARANGODB_VERSION_RELEASE_TYPE STREQUAL "alpha" + OR ARANGODB_VERSION_RELEASE_TYPE STREQUAL "beta" + OR ARANGODB_VERSION_RELEASE_TYPE STREQUAL "milestone" + OR ARANGODB_VERSION_RELEASE_TYPE STREQUAL "preview" + OR ARANGODB_VERSION_RELEASE_TYPE STREQUAL "rc") + if (NOT DEFINED ARANGODB_VERSION_RELEASE_NUMBER) + message(FATAL_ERROR "ARANGODB_VERSION_RELEASE_NUMBER is missing") + endif() + + if (ARANGODB_VERSION_RELEASE_TYPE STREQUAL "alpha") + set(ARANGODB_RPM_REVISION_NUMBER 100) + elseif (ARANGODB_VERSION_RELEASE_TYPE STREQUAL "beta") + set(ARANGODB_RPM_REVISION_NUMBER 200) + elseif (ARANGODB_VERSION_RELEASE_TYPE STREQUAL "milestone") + set(ARANGODB_RPM_REVISION_NUMBER 300) + elseif (ARANGODB_VERSION_RELEASE_TYPE STREQUAL "preview") + set(ARANGODB_RPM_REVISION_NUMBER 400) + elseif (ARANGODB_VERSION_RELEASE_TYPE STREQUAL "rc") + set(ARANGODB_RPM_REVISION_NUMBER 500) + endif() + + MATH(EXPR ARANGODB_RPM_REVISION_NUMBER "${ARANGODB_RPM_REVISION_NUMBER}+${ARANGODB_VERSION_RELEASE_NUMBER}") + + set(ARANGODB_DEBIAN_UPSTREAM "${ARANGODB_PLAIN_VERSION}~${ARANGODB_VERSION_RELEASE_TYPE}.${ARANGODB_VERSION_RELEASE_NUMBER}") + set(ARANGODB_DEBIAN_REVISION "1") + + set(ARANGODB_RPM_UPSTREAM "${ARANGODB_PLAIN_VERSION}") + set(ARANGODB_RPM_REVISION "0.${ARANGODB_RPM_REVISION_NUMBER}") + + set(ARANGODB_DARWIN_UPSTREAM "${ARANGODB_PLAIN_VERSION}") + set(ARANGODB_DARWIN_REVISION "${ARANGODB_VERSION_RELEASE_TYPE}.${ARANGODB_VERSION_RELEASE_NUMBER}") + + # hot-fix + else() + if (DEFINED ARANGODB_VERSION_RELEASE_NUMBER) + message(FATAL_ERROR "ARANGODB_VERSION_RELEASE_NUMBER must be empty for type ${ARANGODB_VERSION_RELEASE_TYPE}") + endif() + + set(ARANGODB_DEBIAN_UPSTREAM "${ARANGODB_PLAIN_VERSION}.${ARANGODB_VERSION_RELEASE_TYPE}") + set(ARANGODB_DEBIAN_REVISION "1") + + set(ARANGODB_RPM_UPSTREAM "${ARANGODB_PLAIN_VERSION}") + set(ARANGODB_RPM_REVISION "1.${ARANGODB_VERSION_RELEASE_TYPE}") + + set(ARANGODB_DARWIN_UPSTREAM "${ARANGODB_PLAIN_VERSION}.${ARANGODB_VERSION_RELEASE_TYPE}") + set(ARANGODB_DARWIN_REVISION "") + endif() +else() + + # devel + if (ARANGODB_VERSION_PATCH STREQUAL "devel") + set(ARANGODB_DEBIAN_UPSTREAM "${ARANGODB_VERSION_MAJOR}.${ARANGODB_VERSION_MINOR}.0~~${ARANGODB_VERSION_PATCH}") + set(ARANGODB_DEBIAN_REVISION "1") + + set(ARANGODB_RPM_UPSTREAM "${ARANGODB_VERSION_MAJOR}.${ARANGODB_VERSION_MINOR}.0") + set(ARANGODB_RPM_REVISION "0.1") + + set(ARANGODB_DARWIN_UPSTREAM "${ARANGODB_PLAIN_VERSION}") + set(ARANGODB_DARWIN_REVISION "") + + # nightly + elseif (ARANGODB_VERSION_PATCH STREQUAL "nightly") + set(ARANGODB_DEBIAN_UPSTREAM "${ARANGODB_PLAIN_VERSION}") + set(ARANGODB_DEBIAN_REVISION "1") + + set(ARANGODB_RPM_UPSTREAM "${ARANGODB_VERSION_MAJOR}.${ARANGODB_VERSION_MINOR}.0") + set(ARANGODB_RPM_REVISION "0.2") + + set(ARANGODB_DARWIN_UPSTREAM "${ARANGODB_PLAIN_VERSION}") + set(ARANGODB_DARWIN_REVISION "") + + # stable version + else() + set(ARANGODB_DEBIAN_UPSTREAM "${ARANGODB_PLAIN_VERSION}") + set(ARANGODB_DEBIAN_REVISION "1") + + set(ARANGODB_RPM_UPSTREAM "${ARANGODB_PLAIN_VERSION}") + set(ARANGODB_RPM_REVISION "1.0") + + set(ARANGODB_DARWIN_UPSTREAM "${ARANGODB_PLAIN_VERSION}") + set(ARANGODB_DARWIN_REVISION "") + endif() +endif() + +message(STATUS "DEBIAN VERSION: ${ARANGODB_DEBIAN_UPSTREAM} / ${ARANGODB_DEBIAN_REVISION}") +message(STATUS "RPM VERSION: ${ARANGODB_RPM_UPSTREAM} / ${ARANGODB_RPM_REVISION}") +message(STATUS "DARWIN VERSION: ${ARANGODB_DARWIN_UPSTREAM} / ${ARANGODB_DARWIN_REVISION}") + + +################################################################################ +# Windows version +################################################################################ + +# PATCH needs to be numeric for the windows rc file +set(ARANGODB_WINDOWS_UPSTREAM "${ARANGODB_VERSION}") + +if (ARANGODB_VERSION_PATCH GREATER -1) + set(ARANGODB_WINDOWS_PATCH "${ARANGODB_VERSION_PATCH}") +else() + set(ARANGODB_WINDOWS_PATCH 1337) +endif() + +set(ARANGODB_WINDOWS_REVISION "1") + +message(STATUS "WINDOWS VERSION: ${ARANGODB_WINDOWS_PATCH} / ${ARANGODB_WINDOWS_REVISION}") + +################################################################################ +# SNAP version +################################################################################ + +set(ARANGODB_SNAP_REVISION "1") + +message(STATUS "SNAP REVISION: ${ARANGODB_SNAP_REVISION}") + +# ------------------------------------------------------------------------------ +# +# ------------------------------------------------------------------------------ if (WIN32) # path containing the OpenSSL find-module and libraries diff --git a/Installation/Ubuntu/snapcraft.yaml.in b/Installation/Ubuntu/snapcraft.yaml.in index 76d4de1122..484325111d 100644 --- a/Installation/Ubuntu/snapcraft.yaml.in +++ b/Installation/Ubuntu/snapcraft.yaml.in @@ -1,5 +1,5 @@ name: @CPACK_PACKAGE_NAME@ -version: @CPACK_PACKAGE_VERSION@-@ARANGODB_PACKAGE_REVISION@ +version: @CPACK_PACKAGE_VERSION@-@ARANGODB_SNAP_REVISION@ description: "ArangoDB is a native multi-model database with flexible data models for documents, graphs, and key-values. Build high performance applications using a convenient SQL-like query language or JavaScript extensions. https://www.arangodb.com" diff --git a/Installation/Windows/version/VersionInfo.in b/Installation/Windows/version/VersionInfo.in index 11e6ee561a..170d107b49 100755 --- a/Installation/Windows/version/VersionInfo.in +++ b/Installation/Windows/version/VersionInfo.in @@ -13,7 +13,7 @@ #endif #ifndef PRODUCT_VERSION_BUILD -#define PRODUCT_VERSION_BUILD @ARANGODB_NUMERIC_VERSION_REVISION@ +#define PRODUCT_VERSION_BUILD @ARANGODB_WINDOWS_PATCH@ #endif #ifndef FILE_VERSION_MAJOR @@ -29,7 +29,7 @@ #endif #ifndef FILE_VERSION_BUILD -#define FILE_VERSION_BUILD @ARANGODB_NUMERIC_VERSION_REVISION@ +#define FILE_VERSION_BUILD @ARANGODB_WINDOWS_PATCH@ #endif #ifndef __TO_STRING diff --git a/Installation/debian/packagedesc.txt b/Installation/debian/packagedesc.txt index f6e570a8ea..cc2a0e3a56 100644 --- a/Installation/debian/packagedesc.txt +++ b/Installation/debian/packagedesc.txt @@ -3,7 +3,7 @@ the multi-model NoSQL database graphs, and key-values. Build high performance applications using a convenient SQL-like query language or JavaScript extensions. . - Copyright: 2014-2017 by ArangoDB GmbH + Copyright: 2014-2018 by ArangoDB GmbH Copyright: 2012-2013 by triAGENS GmbH ArangoDB Software www.arangodb.com diff --git a/Installation/release.sh b/Installation/release.sh index 95aff940ff..54b3ac4160 100755 --- a/Installation/release.sh +++ b/Installation/release.sh @@ -223,7 +223,7 @@ VERSION_PACKAGE="1" cat CMakeLists.txt \ | $SED -e "s~set(ARANGODB_VERSION_MAJOR.*~set(ARANGODB_VERSION_MAJOR \"$VERSION_MAJOR\")~" \ | $SED -e "s~set(ARANGODB_VERSION_MINOR.*~set(ARANGODB_VERSION_MINOR \"$VERSION_MINOR\")~" \ - | $SED -e "s~set(ARANGODB_VERSION_REVISION.*~set(ARANGODB_VERSION_REVISION \"$VERSION_REVISION\")~" \ + | $SED -e "s~set(ARANGODB_VERSION_PATCH.*~set(ARANGODB_VERSION_PATCH \"$VERSION_REVISION\")~" \ | $SED -e "s~set(ARANGODB_PACKAGE_REVISION.*~set(ARANGODB_PACKAGE_REVISION \"$VERSION_PACKAGE\")~" \ > CMakeLists.txt.tmp diff --git a/Installation/rpm/arangodb.spec.in b/Installation/rpm/arangodb.spec.in index 413a40e75b..52cdc226b6 100644 --- a/Installation/rpm/arangodb.spec.in +++ b/Installation/rpm/arangodb.spec.in @@ -45,7 +45,7 @@ Name: @CPACK_PACKAGE_NAME@ Version: @CPACK_PACKAGE_VERSION@ -Release: @ARANGODB_PACKAGE_REVISION@ +Release: @ARANGODB_RPM_REVISION@ Summary: The open-source, multi-model NoSQL database License: Apache-2.0 Group: Productivity/Databases/Servers diff --git a/VERSION b/VERSION index d2f4978395..1125b471d5 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.4.devel +3.4.0-rc.1 diff --git a/cmake/ArangoDBInstall.cmake b/cmake/ArangoDBInstall.cmake index 8e38e03607..b6849f8f32 100644 --- a/cmake/ArangoDBInstall.cmake +++ b/cmake/ArangoDBInstall.cmake @@ -76,7 +76,7 @@ install( ${PROJECT_SOURCE_DIR}/js/actions ${PROJECT_SOURCE_DIR}/js/apps ${PROJECT_SOURCE_DIR}/js/server - DESTINATION ${CMAKE_INSTALL_DATAROOTDIR_ARANGO}/js + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR_ARANGO}/${ARANGODB_JS_VERSION} REGEX "^.*/server/tests$" EXCLUDE REGEX "^.*/aardvark/APP/node_modules$" EXCLUDE REGEX "^.*/aardvark/APP/test$" EXCLUDE @@ -86,7 +86,7 @@ install( if (USE_ENTERPRISE) install( DIRECTORY ${PROJECT_SOURCE_DIR}/enterprise/js/server - DESTINATION ${CMAKE_INSTALL_DATAROOTDIR_ARANGO}/js + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR_ARANGO}/${ARANGODB_JS_VERSION} REGEX "^.*/server/tests$" EXCLUDE REGEX "^.*/aardvark/APP/node_modules$" EXCLUDE REGEX "^.*/aardvark/APP/test$" EXCLUDE diff --git a/cmake/InstallArangoDBJSClient.cmake b/cmake/InstallArangoDBJSClient.cmake index edbb4886d1..19ec3cf2b3 100644 --- a/cmake/InstallArangoDBJSClient.cmake +++ b/cmake/InstallArangoDBJSClient.cmake @@ -7,7 +7,7 @@ install( ${ARANGODB_SOURCE_DIR}/js/common ${ARANGODB_SOURCE_DIR}/js/client DESTINATION - ${CMAKE_INSTALL_DATAROOTDIR_ARANGO}/js + ${CMAKE_INSTALL_DATAROOTDIR_ARANGO}/${ARANGODB_JS_VERSION} FILES_MATCHING PATTERN "*.js" REGEX @@ -23,7 +23,7 @@ if (USE_ENTERPRISE) DIRECTORY ${ARANGODB_SOURCE_DIR}/enterprise/js/common ${ARANGODB_SOURCE_DIR}/enterprise/js/client - DESTINATION ${CMAKE_INSTALL_DATAROOTDIR_ARANGO}/js + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR_ARANGO}/${ARANGODB_JS_VERSION} FILES_MATCHING PATTERN "*.js" REGEX "^.*/common/test-data$" EXCLUDE REGEX "^.*/common/tests$" EXCLUDE @@ -34,7 +34,7 @@ endif () # For the node modules we need all files: install( DIRECTORY ${ARANGODB_SOURCE_DIR}/js/node - DESTINATION ${CMAKE_INSTALL_DATAROOTDIR_ARANGO}/js + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR_ARANGO}/${ARANGODB_JS_VERSION} REGEX "^.*/eslint" EXCLUDE REGEX "^.*/.npmignore" EXCLUDE REGEX "^.*/.bin" EXCLUDE diff --git a/cmake/packages/client/deb.txt b/cmake/packages/client/deb.txt index 473e8ffa19..fc740f1f02 100644 --- a/cmake/packages/client/deb.txt +++ b/cmake/packages/client/deb.txt @@ -49,7 +49,7 @@ set(ARANGODB_URL_INFO_ABOUT @ARANGODB_URL_INFO_ABOUT@) set(ARANGODB_SOURCE_DIR @ARANGODB_SOURCE_DIR@) set(ARANGODB_VERSION @ARANGODB_VERSION@) set(ARANGODB_PACKAGE_CONTACT @ARANGODB_PACKAGE_CONTACT@) -set(ARANGODB_PACKAGE_REVISION @ARANGODB_PACKAGE_REVISION@) +set(ARANGODB_DEBIAN_REVISION @ARANGODB_DEBIAN_REVISION@) set(ARANGODB_PACKAGE_VENDOR @ARANGODB_PACKAGE_VENDOR@) set(CMAKE_TARGET_ARCHITECTURES @CMAKE_TARGET_ARCHITECTURES@) set(ARANGODB_PACKAGE_ARCHITECTURE @ARANGODB_PACKAGE_ARCHITECTURE@) @@ -67,7 +67,8 @@ set(INSTALL_ICU_DT_DEST "@INSTALL_ICU_DT_DEST@") ################################################################################ # Get the final values for cpack: ################################################################################ -set(CPACK_PACKAGE_VERSION "${ARANGODB_VERSION}") + +set(CPACK_PACKAGE_VERSION "${ARANGODB_DEBIAN_UPSTREAM}") set(CPACK_DEBIAN_PACKAGE_SECTION "shell") set(CPACK_PACKAGE_VENDOR ${ARANGODB_PACKAGE_VENDOR}) set(CPACK_PACKAGE_CONTACT ${ARANGODB_PACKAGE_CONTACT}) diff --git a/cmake/packages/client/nsis.txt b/cmake/packages/client/nsis.txt index b66f0e41ca..ca47a6f05f 100644 --- a/cmake/packages/client/nsis.txt +++ b/cmake/packages/client/nsis.txt @@ -37,7 +37,7 @@ set(ARANGODB_SOURCE_DIR "@ARANGODB_SOURCE_DIR@") set(ARANGODB_VERSION "@ARANGODB_VERSION@") set(ARANGODB_PACKAGE_ARCHITECTURE "@ARANGODB_PACKAGE_ARCHITECTURE@") set(ARANGODB_PACKAGE_CONTACT "@ARANGODB_PACKAGE_CONTACT@") -set(ARANGODB_PACKAGE_REVISION "@ARANGODB_PACKAGE_REVISION@") +set(ARANGODB_WINDOWS_REVISION "@ARANGODB_WINDOWS_REVISION@") set(CMAKE_INSTALL_FULL_BINDIR "@CMAKE_INSTALL_FULL_BINDIR@") set(CMAKE_TARGET_ARCHITECTURES "@CMAKE_TARGET_ARCHITECTURES@") diff --git a/cmake/packages/dbg/deb.txt b/cmake/packages/dbg/deb.txt index 64990feadc..f96429c67f 100644 --- a/cmake/packages/dbg/deb.txt +++ b/cmake/packages/dbg/deb.txt @@ -58,7 +58,7 @@ set(ARANGODB_URL_INFO_ABOUT @ARANGODB_URL_INFO_ABOUT@) set(ARANGODB_SOURCE_DIR @ARANGODB_SOURCE_DIR@) set(ARANGODB_VERSION @ARANGODB_VERSION@) set(ARANGODB_PACKAGE_CONTACT @ARANGODB_PACKAGE_CONTACT@) -set(ARANGODB_PACKAGE_REVISION @ARANGODB_PACKAGE_REVISION@) +set(ARANGODB_DEBIAN_REVISION @ARANGODB_DEBIAN_REVISION@) set(ARANGODB_PACKAGE_VENDOR "@ARANGODB_PACKAGE_VENDOR@") set(CMAKE_TARGET_ARCHITECTURES @CMAKE_TARGET_ARCHITECTURES@) @@ -70,7 +70,8 @@ set(CPACKG_PACKAGE_CONFLICTS @CPACKG_PACKAGE_CONFLICTS@) ################################################################################ # Get the final values for cpack: ################################################################################ -set(CPACK_PACKAGE_VERSION "${ARANGODB_VERSION}") + +set(CPACK_PACKAGE_VERSION "${ARANGODB_DEBIAN_UPSTREAM}") set(CPACK_PACKAGE_NAME "${CPACK_PACKAGE_NAME}-dbg") set(CPACK_DEBIAN_PACKAGE_SECTION "devel") set(CPACK_PACKAGE_VENDOR "${ARANGODB_PACKAGE_VENDOR}") diff --git a/cmake/packages/deb.cmake b/cmake/packages/deb.cmake index 83f7835a55..b2883060de 100644 --- a/cmake/packages/deb.cmake +++ b/cmake/packages/deb.cmake @@ -8,15 +8,20 @@ set(PACKAGING_HANDLE_CONFIG_FILES true) ################################################################################ FILE(READ "${PROJECT_SOURCE_DIR}/Installation/debian/packagedesc.txt" CPACK_DEBIAN_PACKAGE_DESCRIPTION) + +set(CPACK_GENERATOR "DEB") + set(CPACK_DEBIAN_PACKAGE_SECTION "database") -set(CPACK_DEBIAN_PACKAGE_CONFLICTS "arangodb, ${CPACKG_PACKAGE_CONFLICTS}, ${CPACKG_PACKAGE_CONFLICTS}-client, ${CPACK_PACKAGE_NAME}-client") +set(CPACK_DEBIAN_PACKAGE_CONFLICTS + "arangodb, ${CPACKG_PACKAGE_CONFLICTS}, ${CPACKG_PACKAGE_CONFLICTS}-client, ${CPACK_PACKAGE_NAME}-client") set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + if(NOT DISABLE_XZ_DEB) set(CPACK_DEBIAN_COMPRESSION_TYPE "xz") endif() + set(CPACK_DEBIAN_PACKAGE_HOMEPAGE ${ARANGODB_URL_INFO_ABOUT}) set(CPACK_COMPONENTS_ALL debian-extras) -set(CPACK_GENERATOR "DEB") if (SYSTEMD_FOUND) set(CPACK_SYSTEMD_FOUND "1") @@ -61,7 +66,8 @@ list(APPEND CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${ARANGODB_PACKAGE_ARCHITECTURE}) -set(ARANGODB_DBG_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-dbg-${CPACK_PACKAGE_VERSION}-${ARANGODB_PACKAGE_REVISION}_${ARANGODB_PACKAGE_ARCHITECTURE}") +set(ARANGODB_DBG_PACKAGE_FILE_NAME + "${CPACK_PACKAGE_NAME}-dbg-${ARANGODB_DEBIAN_UPSTREAM}-${ARANGODB_DEBIAN_REVISION}_${ARANGODB_PACKAGE_ARCHITECTURE}") set(conffiles_list "") if ("${INSTALL_CONFIGFILES_LIST}" STREQUAL "") @@ -130,9 +136,11 @@ list(APPEND PACKAGES_LIST package-arangodb-server) ################################################################################ # hook to build the client package ################################################################################ + set(CPACK_CLIENT_PACKAGE_NAME "${CPACK_PACKAGE_NAME}-client") -set(ARANGODB_CLIENT_PACKAGE_FILE_NAME "${CPACK_CLIENT_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${ARANGODB_PACKAGE_REVISION}_${ARANGODB_PACKAGE_ARCHITECTURE}") +set(ARANGODB_CLIENT_PACKAGE_FILE_NAME + "${CPACK_CLIENT_PACKAGE_NAME}-${ARANGODB_DEBIAN_UPSTREAM}-${ARANGODB_DEBIAN_REVISION}_${ARANGODB_PACKAGE_ARCHITECTURE}") set(CLIENT_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/packages/arangodb-client) configure_file(cmake/packages/client/deb.txt ${CLIENT_BUILD_DIR}/CMakeLists.txt @ONLY) diff --git a/cmake/packages/nsis.cmake b/cmake/packages/nsis.cmake index 1510c2b39a..1b92bfd17e 100644 --- a/cmake/packages/nsis.cmake +++ b/cmake/packages/nsis.cmake @@ -8,7 +8,7 @@ set(CPACK_NSIS_MODIFY_PATH ON) set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL 1) set(CPACK_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/Installation/Windows/Templates") set(CPACK_PLUGIN_PATH "${CMAKE_CURRENT_SOURCE_DIR}/Installation/Windows/Plugins") -set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${CPACK_PACKAGE_NAME} ${CPACK_PACKAGE_VERSION}-${ARANGODB_PACKAGE_REVISION}_${ARANGODB_PACKAGE_ARCHITECTURE}") +set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${CPACK_PACKAGE_NAME} ${CPACK_PACKAGE_VERSION}-${ARANGODB_WINDOWS_REVISION}_${ARANGODB_PACKAGE_ARCHITECTURE}") # want @ in @only nsis template: set(CPACK_ROOTDIR "@ROOTDIR@") if (CMAKE_CL_64) @@ -85,7 +85,7 @@ list(APPEND PACKAGES_LIST package-arangodb-server-zip) ################################################################################ set(CPACK_CLIENT_PACKAGE_NAME "${CPACK_PACKAGE_NAME}-client") -set(ARANGODB_CLIENT_PACKAGE_FILE_NAME "${CPACK_CLIENT_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${ARANGODB_PACKAGE_REVISION}_${ARANGODB_PACKAGE_ARCHITECTURE}") +set(ARANGODB_CLIENT_PACKAGE_FILE_NAME "${CPACK_CLIENT_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${ARANGODB_WINDOWS_REVISION}_${ARANGODB_PACKAGE_ARCHITECTURE}") string(LENGTH "${CLIENT_BUILD_DIR}" CLIENT_BUILD_DIR_LEN) if (${CLIENT_BUILD_DIR_LEN} EQUAL 0) diff --git a/cmake/packages/packages.cmake b/cmake/packages/packages.cmake index ed7e4f1b2a..8215d85dc1 100644 --- a/cmake/packages/packages.cmake +++ b/cmake/packages/packages.cmake @@ -4,7 +4,7 @@ endif() set(CPACK_PACKAGE_VENDOR ${ARANGODB_PACKAGE_VENDOR}) set(CPACK_PACKAGE_CONTACT ${ARANGODB_PACKAGE_CONTACT}) -set(CPACK_PACKAGE_VERSION "${ARANGODB_VERSION}") + # TODO just for rpm? if (NOT(MSVC)) set(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) @@ -29,7 +29,10 @@ set(ARANGODB_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR}) # eventually the package string will be modified later on: set(LOGROTATE_GROUP "arangodb") + if ("${PACKAGING}" STREQUAL "DEB") + set(CPACK_PACKAGE_VERSION "${ARANGODB_DEBIAN_UPSTREAM}") + if(CMAKE_TARGET_ARCHITECTURES MATCHES ".*x86_64.*") set(ARANGODB_PACKAGE_ARCHITECTURE "amd64") elseif(CMAKE_TARGET_ARCHITECTURES MATCHES "aarch64") @@ -40,10 +43,12 @@ if ("${PACKAGING}" STREQUAL "DEB") set(ARANGODB_PACKAGE_ARCHITECTURE "i386") endif() - set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${ARANGODB_PACKAGE_REVISION}_${ARANGODB_PACKAGE_ARCHITECTURE}") + set(CPACK_PACKAGE_FILE_NAME + "${CPACK_PACKAGE_NAME}-${ARANGODB_DEBIAN_UPSTREAM}-${ARANGODB_DEBIAN_REVISION}_${ARANGODB_PACKAGE_ARCHITECTURE}") include(packages/deb) include(packages/tar) + if (USE_SNAPCRAFT) if(NOT DEFINED SNAP_PORT) set(SNAP_PORT 8529) @@ -51,30 +56,37 @@ if ("${PACKAGING}" STREQUAL "DEB") include(packages/snap) endif () elseif ("${PACKAGING}" STREQUAL "RPM") - set(PACKAGE_VERSION "-${CPACK_PACKAGE_VERSION}-${ARANGODB_PACKAGE_REVISION}.${ARANGODB_PACKAGE_ARCHITECTURE}") + set(CPACK_PACKAGE_VERSION "${ARANGODB_RPM_UPSTREAM}") + + set(PACKAGE_VERSION "-${CPACK_PACKAGE_VERSION}-${ARANGODB_RPM_REVISION}.${ARANGODB_PACKAGE_ARCHITECTURE}") set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}${PACKAGE_VERSION}") include(packages/rpm) include(packages/tar) elseif ("${PACKAGING}" STREQUAL "Bundle") - set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${ARANGODB_PACKAGE_REVISION}.x86_64") + set(CPACK_PACKAGE_VERSION "${ARANGODB_DARWIN_UPSTREAM}") + + set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${ARANGODB_DARWIN_REVISION}.x86_64") include(packages/bundle) include(packages/tar) elseif (MSVC) + set(CPACK_PACKAGE_VERSION "${ARANGODB_WINDOWS_UPSTREAM}") + if (${USE_ENTERPRISE}) - set(CPACK_PACKAGE_NAME "ArangoDB3e") + set(CPACK_PACKAGE_NAME "ArangoDB3e") else() - set(CPACK_PACKAGE_NAME "ArangoDB3") + set(CPACK_PACKAGE_NAME "ArangoDB3") endif() if (CMAKE_CL_64) SET(ARANGODB_PACKAGE_ARCHITECTURE "win64") else () SET(ARANGODB_PACKAGE_ARCHITECTURE "win32") endif () - set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${ARANGODB_PACKAGE_REVISION}_${ARANGODB_PACKAGE_ARCHITECTURE}") + set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${ARANGODB_WINDOWS_REVISION}_${ARANGODB_PACKAGE_ARCHITECTURE}") include(packages/nsis) include(packages/tar) else () - set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${ARANGODB_PACKAGE_REVISION}_${ARANGODB_PACKAGE_ARCHITECTURE}") + set(CPACK_PACKAGE_VERSION "${ARANGODB_VERSION}") + set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-1_${ARANGODB_PACKAGE_ARCHITECTURE}") include(packages/tar) endif () diff --git a/etc/arangodb3/arango-dfdb.conf.in b/etc/arangodb3/arango-dfdb.conf.in index cf6453f6cd..fc01a350bd 100644 --- a/etc/arangodb3/arango-dfdb.conf.in +++ b/etc/arangodb3/arango-dfdb.conf.in @@ -17,7 +17,7 @@ statistics = false [javascript] startup-directory = @PKGDATADIR@/js app-path = @LOCALSTATEDIR@/lib/arangodb3-apps -script = @PKGDATADIR@/js/server/arango-dfdb.js +script = @PKGDATADIR@/js/@ARANGODB_PLAIN_VERSION@/server/arango-dfdb.js v8-contexts = 1 [foxx] diff --git a/scripts/generateDocumentation.sh b/scripts/generateDocumentation.sh index 2c862a6d3b..1dfa81ed13 100755 --- a/scripts/generateDocumentation.sh +++ b/scripts/generateDocumentation.sh @@ -37,9 +37,9 @@ test_tools(){ fi ARANGODB_VERSION_MAJOR=`grep 'set(ARANGODB_VERSION_MAJOR' CMakeLists.txt | sed 's;.*"\(.*\)".*;\1;'` ARANGODB_VERSION_MINOR=`grep 'set(ARANGODB_VERSION_MINOR' CMakeLists.txt | sed 's;.*"\(.*\)".*;\1;'` - ARANGODB_VERSION_REVISION=`grep 'set(ARANGODB_VERSION_REVISION' CMakeLists.txt | sed 's;.*"\(.*\)".*;\1;'` + ARANGODB_VERSION_PATCH=`grep 'set(ARANGODB_VERSION_PATCH' CMakeLists.txt | sed 's;.*"\(.*\)".*;\1;'` - if test "${ARANGODB_VERSION_REVISION}" == "devel"; then + if test "${ARANGODB_VERSION_PATCH}" == "devel"; then export NODE_MODULES_DIR="/tmp/devel/node_modules" else export NODE_MODULES_DIR="/tmp/${ARANGODB_VERSION_MAJOR}.${ARANGODB_VERSION_MINOR}/node_modules"