Skip to main content

Release process

This page describes the process for releasing a new version of conda-store.

Release captain

For every release, there is an assigned "Release Captain". The Release Captain's responsibilities are:

  • Manage both the release and testing processes and the documentation and release checklists as needed.
  • Communicate the status of the release to the rest of the conda-store development team and the community.
  • Assign owners to checklist items (if not owned by the Release Captain).

CalVer details

conda-store, conda-store-ui, and jupyterlab-conda-store 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.

For the release tag, there should be NO prepended v.

Release process walkthrough

  1. Agree on a release schedule. We aim to make a monthly conda-store release. Though this will depend on whether there are any release-blocker issues opened or team availability. The release captain should create an issue with the release date and assign themselves as the release captain.

  2. Ensure the main branch builds a package correctly.

    1. For conda-store and conda-store-server:
        # note you will need to run this twice, once for each package
    cd conda-store # or cd conda-store-server
    git clean -fxdq
    hatch build
  3. Start a release. Open an issue and copy & paste the release checklist. Then follow the steps indicated in the release checklist.

warning

jupyterlab-conda-store has a direct dependency on conda-store-ui. Make sure to release conda-store-ui before releasing jupyterlab-conda-store.

Release checklist (conda-store)

Create an issue with the release template, or copy & paste the steps below, to release a new conda-store version. Close the issue when it is done.

caution

There are two packages: the conda-store repository; conda-store and conda-store-server. Make sure to update both packages when releasing a new version.

These steps should be taken to create a new release!
**Double-check for quality control**

## Release details

Scheduled release date - <yyyy/mm/dd>

Release captain responsible - <@gh_username>

---

### 1. Pre-flight checks

- [ ] Ensure there are no [open issues with a `block-release ⛔️` label](https://github.com/conda-incubator/conda-store/issues?q=is%3Aopen+label%3A%22block-release+%E2%9B%94%EF%B8%8F%22+sort%3Aupdated-desc)

### 2. Prepare the codebase for a new release

- [ ] Create a new git branch for the release `git checkout -b release-2023.9.1`
- [ ] Prepare the branch just in case `git clean -fxdq`
- [ ] Bump `conda-store` version in [`conda-store/conda-store/__init__.py`](https://github.com/conda-incubator/conda-store/blob/main/conda-store/conda_store/__init__.py)
- [ ] Bump `conda-store-server` version in [`conda-store-server/conda-store-server/__init__.py`](https://github.com/conda-incubator/conda-store/blob/main/conda-store/conda_store/__init__.py)
- [ ] Update the `conda-store-ui` version users in `conda-store-server` [`conda-store-server/hatch_build.py`](https://github.com/conda-incubator/conda-store/blob/main/conda-store-server/hatch_build.py)
- [ ] Update the [CHANGELOG.md](https://github.com/conda-incubator/conda-store/blob/main/CHANGELOG.md) file with the new version, release date, and relevant changes[^github-activity].
- [ ] Check the version locally with `hatch version`
- [ ] Build and test locally
- [ ] For `conda-store` and `conda-store-server`:

```bash
# note you will need to run this twice, once for each package
cd conda-store # or cd conda-store-server
hatch build
twine check dist/*
hatch clean
  • Make a release commit: git commit -m 'REL - 2023.9.1'
  • Push the release (REL) commit git push upstream main
  • If a release candidate is needed, tick this box when we're ready for a full release.

3. Make the release


<!-- TODO: Add conda-store-ui and jupyterlab -->

Footnotes

  1. If you wish, use github-activity to generate a changelog, eg github-activity conda-incubator/conda-store --since 2023.9.1 --until 2023.10.1.