Release ProcedureΒΆ

Our current policy for releasing is to aim for a release every two weeks. The idea is to get fixes and new features out instead of trying to cram a ton of features into a release and by consequence taking a lot of time to make a new one.

  1. Create a new branch release-yyyy.mm.dd with the version for the release

  • Update CHANGELOG.rst

  • Make sure all new changes, features are reflected in the documentation.

  1. Open a new pull request for this branch targeting master

  2. After all tests pass and the PR has been approved, merge the PR into master

  3. Tag a release and push to github:

    $ git tag -a v2019.1.1 -m "Version 2019.1.1"
    $ git push origin master --tags
    
  4. Build and publish release on PyPI:

    $ git clean -xfd  # remove any files not checked into git
    $ python setup.py sdist bdist_wheel --universal  # build package
    $ twine upload dist/*  # register and push to pypi
    
  5. Update esmlab conda-forge feedstock

  • Fork esmlab-feedstock repository

  • Clone this fork and edit recipe:

    $ git clone git@github.com:username/esmlab-feedstock.git
    $ cd esmlab-feedstock
    $ cd recipe
    $ # edit meta.yaml
    
  • Update version

  • Get sha256 from pypi.org for esmlab

  • Fill in the rest of information as described here

  • Commit and submit a PR