Skip to content

ndcube Release Instructions

DanRyanIrish edited this page Jul 11, 2019 · 30 revisions

For Major releases only (releasing full master branch):

  • Create and change onto a new release branch from master named with the release number X.Y.
  • Update RELEASE.md

For Minor/bugfix releases only:

  • Move desired changes from master to release branch (X.Y) by cherry-picking the merge commits of the PRs to be included in the new release. (If not all commits from a PR should be included, individual commits can be cherry-picked.) To do this, change onto the release branch, identify the merge commits to include, and run
git cherry-pick <merge commit> -m 1

where -m 1 selects parent 1 of the merge commit. (If a non-merge commit is being cherry-picked, the -m 1 is not necessary.)

Pre-release:

  • Update version number in setup.cfg (the version number branch and don't commit yet)
  • run towncrier in the root of the repo to update the changelog. Simply type
towncrier
  • Build the source distribution:
python setup.py sdist
  • Test that the sdist installs (in an (new) environment of your choice). To do this unzip the tar file in the dist/ directory. Change into the unzipped directory and do pip install ..
  • Check that the ndcube.__version__ number is correct.
  • Run ndcube.test() to check that installed tests work. If performing this on a Mac, be aware that there are known matplotlib Mac backend issues which may cause the tests to abort with an "Abort trap: 6" error. This doesn't appear to be a problem with ndcube or the ability to release a new version.
  • Commit the changes:
git add .
git commit -m "Release vX.Y.Z"
  • Push to the directly release branch on the sunpy/ndcube repo (the version number branch).
git push upstream X.Y
  • Check that Travis passes on release commit
  • Check that AppVeyor passes on release commit
  • Release on GitHub (tag should be full version number preceded by a v)
git checkout X.Y
git tag vX.Y.Z
git push --follow-tags upstream vX.Y.Z
  • Check that RTD is building the documentation correctly and the version is correct. The version should appear automatically but may be have to set to "Active" manually.
  • Release on PyPI:
# Make sdist
python setup.py sdist

# Upload Release
twine upload dist/ndcube-X.Y.Z.tar.gz
  • Make a PR to the ndcube-feedstock repo with the updated recipe, i.e. updated version number and mda5sum. See https://github.com/conda-forge/sunpy-feedstock/pull/42/files as an example. Merge once CI is passed. To get the mda5sum, go to the ndcube page of the pypi website, click "download files". A table should appear with the package name/version, the file size, and the hash. The mda5sum is the hash.

On Release:

  • Make sure all builds are complete (conda-forge, etc)
  • Post release announcement on social media sites
  • Send release announcement to mailing lists
Email Template
-----

Dear all,

The ndcube developers present to you the latest release of ndcube <version>.
In this update the headline fixes are <fill in>

The full changelog is:

<fill in>

To update you can run these following commands:

Pip users:

pip install -U ndcube

Conda Users:

conda update ndcube

GitHub Users:

git pull <local upstream name> <version>

Please enjoy,
The ndcube Developers
Clone this wiki locally