Release instructions
====================

For a release based on a new version of ``erfa``, first set the
submodule to the right version, and make sure to clean any leftover
files from earlier compilation::

    cd liberfa/erfa
    git fetch origin
    git checkout v1.7.0
    git clean -fxd
    cd ../..

For any release, first do a last check that things are OK in a clean
environment::

    git clean -fxd
    tox -e test

It is also wise to check that the new release works with astropy.
We can use the ``tox`` environment we just created, but have to be sure
to leave the package directory::

    source .tox/test/bin/activate
    cd ~  #
    pip install astropy[test]
    pytest --pyargs astropy --remote-data=any
    cd -  # Back to the package directory.
    deactivate
    git clean -fxd

Once the package is ready to release, first edit ``CHANGES.rst`` to
add the release data (and add any information needed, such as an
update to the bundled ``liberfa``).

Then, use ``git tag`` to tag the release::

    git tag -m <version> <version>

e.g::

    git tag -m v1.7.0 v1.7.0

Here, the version number should generally be the same as that of
the erfa library that is included (and you should make sure the
git submodule ``liberfa/erfa`` is at the correct tag as well).
If there is a need for just the wrappers to be updated, add a
fourth number to the release (e.g., ``1.7.0.1``).

You can also include the ``-s`` flag to sign the tag if you have
PGP keys set up. Then, push the tag to GitHub, e.g.::

    git push upstream v0.1

and the build should happen automatically on GitHub Actions pipelines. You can
follow the progress of the build here:

https://github.com/liberfa/pyerfa/actions/workflows/publish.yml

If there are any failures, you can always delete the tag, fix the
issues, tag the release again, and push the tag to GitHub.

Finally, for completeness, update the ``Releases`` section on the main
github page.  Click on the new tag you just made, then ``edit tag``,
then insert ``vx.y.z`` for the version, and in the description write
``PyERFA v`` and then paste the relevant section of ``CHANGES.rst`` to
it.  Preview to ensure this works, and then publish the release.
