aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandru Croitor <alexandru.croitor@qt.io>2018-06-21 21:36:20 +0200
committerAlexandru Croitor <alexandru.croitor@qt.io>2018-06-22 09:02:44 +0000
commitf3b87fead2d4cb2a790f0709080551e252d5a46c (patch)
treead3fd2622d4d7181d860141420e5d9d0b877d182
parent87942459a27465439eb85d083545bfe0fddf2ff4 (diff)
Associate Coin snapshot builds with Coin integration IDs
This change adds a new setup.py option called --package-timestamp which allows setting the "dev" part of the version number of a snapshot package. It also modifies coin_build_instructions.py to set the package timestamp to the value of the Coin integration ID. This has a couple of benefits: 1) We can look up the build and test logs of a specific package on testresults.qt.io. This can also be looked up for non-snapshot builds, the "timestamp = Coin integration ID" can also be found in the generated __init__.py file. 2) All the different platform packages within one integration will have the same timestamp, which allows pinning snapshot packages inside a pipenv Pipfile. 3) It's easier to figure out which packages were built as part of the same Coin integration. Task-number: PYSIDE-680 Change-Id: Idb2f2d2313cee213a5d742f88b60315a4e505250 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
-rw-r--r--build_scripts/main.py5
-rw-r--r--build_scripts/options.py1
-rw-r--r--coin_build_instructions.py3
-rw-r--r--setup.py4
4 files changed, 13 insertions, 0 deletions
diff --git a/build_scripts/main.py b/build_scripts/main.py
index b424aa8e4..579cfeae3 100644
--- a/build_scripts/main.py
+++ b/build_scripts/main.py
@@ -51,6 +51,11 @@ setup_py_path = os.path.join(setup_script_dir, "setup.py")
@memoize
def get_package_timestamp():
+ """ In a Coin CI build the returned timestamp will be the
+ Coin integration id timestamp. For regular builds it's
+ just the current timestamp or a user provided one."""
+ if OPTION_PACKAGE_TIMESTAMP:
+ return OPTION_PACKAGE_TIMESTAMP
return int(time.time())
@memoize
diff --git a/build_scripts/options.py b/build_scripts/options.py
index d7174feff..fd8b0718e 100644
--- a/build_scripts/options.py
+++ b/build_scripts/options.py
@@ -81,3 +81,4 @@ OPTION_VERBOSE_BUILD = has_option("verbose-build")
OPTION_SANITIZE_ADDRESS = has_option("sanitize-address")
OPTION_SNAPSHOT_BUILD = has_option("snapshot-build")
OPTION_LIMITED_API = option_value("limited-api")
+OPTION_PACKAGE_TIMESTAMP = option_value("package-timestamp")
diff --git a/coin_build_instructions.py b/coin_build_instructions.py
index c9d59a0a6..aee0bf265 100644
--- a/coin_build_instructions.py
+++ b/coin_build_instructions.py
@@ -55,6 +55,7 @@ CI_HOST_OS_VER = option_value("osVer")
CI_ENV_INSTALL_DIR = option_value("instdir")
CI_ENV_AGENT_DIR = option_value("agentdir")
CI_COMPILER = option_value("compiler")
+CI_INTEGRATION_ID = option_value("coinIntegrationId")
CI_FEATURES = []
_ci_features = option_value("features")
if _ci_features is not None:
@@ -118,6 +119,8 @@ def call_setup(python_ver):
if is_snapshot_build():
cmd += ["--snapshot-build"]
+ cmd += ["--package-timestamp=" + CI_INTEGRATION_ID]
+
run_instruction(cmd, "Failed to run setup.py")
def run_build_instructions():
diff --git a/setup.py b/setup.py
index a24e656e5..42d74ca77 100644
--- a/setup.py
+++ b/setup.py
@@ -140,6 +140,10 @@ using `setup.py build`:
--skip-docs skip the documentation generation.
--limited-api=yes|no default yes if applicable
Set or clear the limited API flag. Ignored for Python 2.
+ --package-timestamp allows specifying the timestamp that will be
+ used as part of the version number for a snapshot package.
+ For example given --package-timestamp=1529646276
+ the package version will be 5.x.y.dev1529646276.
REQUIREMENTS: