Skip to main content

The Nebari release process

This page describes the high-level details of cutting a new Nebari release.

CadenceVersioning SystemRelease ChecklistTesting Checklist
3rd week of the monthCalVer - (for example 2022.10.1)Link to issue templateLink 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
info

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.

caution

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.

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.