Project

General

Profile

Package versioning » History » Version 3

Nico César, 10/26/2016 03:14 PM

1 1 Peter Amstutz
h1. Package versioning
2
3
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.
4
5
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):
6
7
meta-python-arvados-cwl-runner_1.0.20161018 → python-arvados-cwl-runner_1.0.20160901
8
9
Every time Jenkins runs the package build script, it also creates meta-xxxx packages versioned based on the git head being built.
10
11
Stable release versioning adds another layer of metapackages defined based on "external" versions:
12
13
release-python-arvados-cwl-runner_16.10 → meta-python-arvados-cwl-runner_1.0.20161018
14 2 Peter Amstutz
15 3 Nico César
2016-10-26 nico  --- Comments on the proposal: filling the blanks with metapackages that point to a version will make a HUGE amount of metapakages that will make things worse. It will be the "correct" information but the repo will be filled by thousands of meta packages (almost all of them pointing to very few versions of actual packages) 
16
17 2 Peter Amstutz
h2. Testing/stable repositories
18
19
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.