Project

General

Profile

Package versioning » History » Revision 2

Revision 1 (Peter Amstutz, 10/25/2016 01:43 PM) → Revision 2/3 (Peter Amstutz, 10/25/2016 01:48 PM)

h1. Package versioning 

 Currently packages are built with a version constructed from timestamp of the most recent git commit of the tool and/or its dependencies with the arvados source tree.    This has the advantage that package versions reflect the most recent actual change and are not constantly rebuilt.    However, this does not provide for a way to identify the set of packages associated with a specific git commit. 

 Proposal: build a set of metapackages that are versioned against the entire Arvados source tree and point to the "head" package version of each component.    For example (timestamps are truncated only to make them easier to read in this example): 

 meta-python-arvados-cwl-runner_1.0.20161018 → python-arvados-cwl-runner_1.0.20160901 

 Every time Jenkins runs the package build script, it also creates meta-xxxx packages versioned based on the git head being built. 

 Stable release versioning adds another layer of metapackages defined based on "external" versions: 

 release-python-arvados-cwl-runner_16.10 → meta-python-arvados-cwl-runner_1.0.20161018 

 h2. Testing/stable repositories 

 We package building should publish only to a @testing@ repo for distribution to internal clusters (4xphq, c97qk, 9tee4). Packages should be manually graduated to a @stable@ repo when ready to be distributed to customer-facing clusters.