About tags and tagging
A "tag" is a snapshot of a software source code tree at a point in time. The process of "tagging" - that is, creating a tag - for a CollectionSpace release effectively creates a point-in-time snapshot of the source code for that release.
For example, the
v4.4 tag represents the snapshot of CollectionSpace source code corresponding to the CollectionSpace v4.4 release. A CollectionSpace system running release v4.4 will be based on the source code from the
v4.4 tag, before factoring in any configuration changes, code customization, or software patches that might have been subsequently applied to that system.
Tagging a release
Make a new enclosing folder and move into it:
Retrieve each layer's source code into local working directories:
- Within each directory in turn; that is, alternately within each of the
application, etc directories created by the
git clonecommand above:
Change into the appropriate directory; e.g. for services:
Fetch all remote branches:
Verify that the tag you're creating doesn't already exist:
Check out the remote (from GitHub) release branch into a local branch; e.g. if that release branch were named
Make an annotated tag from that local branch (and hence effectively from the contents of the current, remote release branch); e.g.
Push the new tag to GitHub
- Verify on GitHub that the tag exists:
Optional summary-level verification of release contents
- For each layer:
Download the tag release's archive file (.zip or .tar.gz) from GitHub; e.g from:
- Explode (expand) that archive file.
- Move to the layer's local working directory.
- Perform a directory 'diff' between your working directory containing your local branch (e.g.
v4.5-branch) and the folder created from exploding GitHub's archive file, using your favorite directory diff tool (e.g. KDiff3,
bbdifffor Mac OS X BBEdit users, etc.). These should be identical.
In your working directory, check out the master branch.
- Perform another directory 'diff' between your working directory containing your master branch and the folder created from exploding GitHub's archive file. These should differ.