Skip to content

Releasing

Viggo de Vries edited this page Sep 1, 2023 · 54 revisions

This page is a guide to releasing new versions of Oscar. It's documented as there are quite a few things to do.

These are the steps involved.

Pre-release

Ensure tests are passing

  • Run pytest and check that the tests on Github actions are passing.

Lint

    make lint

Translation strings

  • Pull updates from Transifex (forcing download of all files) with:

      tx pull -a -f
    
  • Update compiled message files and commit:

      make compile_translations
    

Docs

Ensure the docs build correctly (without warnings):

make docs

Ensure the release branch is enabled on readthedocs and the docs are building correctly there.

Contributors

Update list of Oscar contributors:

git log --format="%aN" | sort | uniq -c | sort -rn | awk '$1>=$THRESHOLD {$1=""; print $0}' | cut -d" " -f2- > AUTHORS

Release

Update the oscar version in the following files:

  • src/oscar/__init__.py
  • package.json
  • package-lock.json (two occurrences)

Commit these changes.

Make a commit that bumps the version number to final, and tag that commit, e.g.:

$ git tag <version, e.g 1.0>

Push the branch and the tag:

$ git push
$ git push origin <tag name, e.g 1.0>

Create a new branch releases/<version> and push it.

Release both a source distribution and a wheel to PyPi:

$ pip install --upgrade pip wheel twine
$ npm ci
$ rm -rf src/oscar/static/
$ rm -rf dist/
$ rm -rf build/
$ npm run build
$ python setup.py clean --all
$ python setup.py sdist bdist_wheel
$ twine upload dist/*

Post-release

  • Tweet about it via @django_oscar

  • Email mailing list with link to release notes

  • Update readthedocs to use the new version as the latest (only relevant for major version bumps)

  • Update Google Drive stats

  • Update oscarcommerce.com (if appropriate)

  • Clean up remote branches that are no longer needed. Delete with:

      git push origin :branch-to-delete
    
  • Merge release branch back into master

  • Bump the Oscar version on master, and add release notes for the new version. Onwards!

Have a banana!