-
Notifications
You must be signed in to change notification settings - Fork 11
OpsGuide Releases
Guidelines for a release:
- All issues in the unstable branch milestone are closed.
- The unstable branch has been in active use by testers/the canary server for at least a month.
- No new bug reports have been filed for at least 2 weeks.
The standard JAR artifact distribution mechanic. We maintain a maven repository at https://maven.mimirdb.info to which everything is published. Prior to the release process for Vizier, jars need to be published for upstream repositories. (These should be published in-order, and artifact generation for both needs to be complete or there will be a build error)
- UBOdin/mimir-caveats
- UBOdin/mimir-api
Maven jars are versioned based on the version numbers in the build.sbt
files of the respective repositories. During normal development, these should be at a -SNAPSHOT
version (unless no changes have been made since the last Vizier release).
The release procedure for the Vizier repository is:
- Run
python3 scripts/fix_copyrights.py
(This ensures that all files have copyright tags) - Remove the -SNAPSHOT marker and commit the version branch. (Any specific version without a -SNAPSHOT marker should only ever have a single repository commit)
- Approve the pull request to merge the version branch into master.
- Locally pull the new master branch.
mill vizier.test
-
bash scripts/publish.sh
(This can only be done once you've logged into Vizier's sonatype account) - Wait for the publish script to finish.
bash scripts/bootstrap.sh
- Create a new release off of the master branch in GitHub, using the resulting
bin/vizier
binary. Don't forget to set the tag name. - Update the version branch to have a
0.0.1-SNAPSHOT
version -
python3 scripts/build_docker.py okennedy/vizier:vX.Y.Z
(Update the tag name appropriately; Requires authority to push to the tag) - Close the active milestone and create a milestone and draft commit for the next 0.0.1 version.
(TODO: Automate these steps)
Coursier provides a bootstrap script, a small file containing the Coursier resolver that will fetch Vizier and its dependencies and run them. The bootstrap file needs to be re-generated for each Vizier release. GitLab takes care of this automatically during the release process for vizier-scala.
Coursier provides a way to install files based on a small manifest file located at https://vizierdb.info/coursier.json This file needs to be re-generated for each Vizier release. GitLab takes care of this automatically during the release process for vizier-scala.
Version numbering conventions are as follows:
- Bump by 0.0.1: bugfix version (Bugfixes for a stable release; No new features)
- Bump by 0.1.0: minor version (New features; No API breaks)
- Bump by 1.0.0: major version (Something that could break an API/is not backwards compatible. Avoid if possible, and always provide a migration path for old data)
Version milestones on the bug tracker should fall into one of the following categories:
- Stable: This version has been tested extensively and is ready for production use. New tickets must be flagged Bug.
- Testing: Development on this version has been completed, but it may not be ready for production use. New tickets must be flagged Bug. At most one version should be in this state at a time.
- Development: This version is currently being developed. No new tickets unless flagged Bug or accompanied by a pull request. At most one version should be in this state at a time.
- Next: Development on this version has not yet started.
- At most one significant internal change/rewrite/rengineering effort per minor version. Try to balance significant internal changes with low-hanging fruit features and bugfixes.