The Nebari release process
This page describes the high-level details of cutting a new Nebari release.
Cadence | Versioning System | Release Checklist | Testing Checklist |
---|---|---|---|
3rd week of the month | CalVer - (for example 2022.10.1 ) | Link to issue template | Link to issue template |
Release Captain responsibilities
For every release, there is an assigned "Release Captain". The Release Captain's responsibilities are:
- Manage both the release and testing processes and update the checklists as needed.
- Communicate the status of the release to the rest of the Nebari development team and the community (through updating the checklists and adding status updates as comments).
- Assign owners to checklist items (if not owned by the Release Captain).
- Adjust the schedule, particularly the publishing dates, based on defects found, fixes made, holidays, vacations, and so on.
CalVer details
Nebari releases should follow the following CalVer versioning style:
YYYY-MM-releaseNumber
YYYY
represents the year - such as 2023
MM
represents the non-zero padded month - such as 1
for January, 12
for December
releaseNumber
represents the current release for that month, starting at 1
. Anything above 1
represents a hotfix (patch) release.
For the release tag, there should be NO prepended v
For example, the first Nebari CalVer release was 2022.10.1
. If a hotfix release was needed in the same month, we increment the releaseNumber
by 1, which would be 2022.10.2
(this is to illustrate how the increment works, this release does not exist.)
Branching strategy
We use the following guidelines to manage git
branches by assigning certain roles to particular branches.
main
- Represents the active development branch and is the default branch on the GitHub repository.
Release Tags
YYYY-MM-releaseNumber
- Represents the tag for a particular release.
Process
The release process is captured in the release checklist template. In the event that a patch or hotfix release is needed, release process is the same as outlined above.
Related packages
nebari-dask
nebari-dask
is a meta package which contains specific versions of dask
, dask-gateway
and distributed
.
Released at the same time as
nebari
with matching version numbers. Included in the release checklist linked above.
nebari-docker-images
The nebari-docker-images
repo contains the Dockerfiles for the JupyterHub, JupyterLab, and Dask-Gateway Kubernetes deployments. This repo also contains the workflow needed to build and push them the images to github.com/orgs/nebari-dev/packages and quay.io/organization/nebari.
These images are built and tagged with the same version number of the corresponding
nebari
release. Included in the release checklist linked above.