Skip to content
peterbrittain edited this page Oct 25, 2023 · 17 revisions

Using the github actions

The latest code should be able to use github actions to create a release. New process is as follows:

  1. Consider fixing up github signing action... or delete and doc manual process!!
  2. Check CHANGES.rst is up to date.
  3. Update README.rst to reference new release in any URLs.
    • Update sample URL
  4. Check everything in and check pipeline works.
    • Use test pypi package to check pip can install.
  5. Push new tag.
    • Create new branch in GitHub.
    • git pull
    • git checkout <branch>
    • git tag <version>
    • git push origin <tag>
  6. Force re-build of docs if necessary to pick up tagged version.
  7. Edit release notes for tag on github.

The rest of this article is for older release with no workflows...

Warning: building on Windows is not safe

There is currently a known issue with building the public package on Windows: the CRLF format breaks PYPI and so formatting of the long description goes horribly wrong.

In addition, the last time I tried, the resulting package insisted on installing pypiwin32 on Linux. I believe that this may have been fixed by my recent application of http://stackoverflow.com/a/32955538/4994021, but haven't yet verified this, so... This still needs further testing on next distribution. In the meantime only build releases on Linux.

Building a new release

Quick checklist before going public with a new release:

  1. Check CHANGES.rst is up to date.
  2. Update README.rst to reference new release in any URLs.
    • Update sample URL
  3. Check everything in and run the full set of tests.
  4. Create new branch for major updates.
    • create in Github
    • git pull/merge
  5. Check latest docs build (and update RTD build branches as needed - try to keep 3 active).
  6. Tag, rebuild and check the dist installs.
    • git tag <version>
    • python setup.py test
    • python setup.py sdist bdist_wheel --universal
    • Check that both these files (sdist and wheel) install and can run latest samples.
    • Try uploading to pypitest and then installing on all platforms
      • twine upload --repository testpypi dist/asciimatics*
      • pip install -U --index-url https://test.pypi.org/simple/ asciimatics
    • twine upload dist/asciimatics* (assuming just have new builds to upload).
  7. Push tag to github if not done from there originally.
    • git push origin <tag>
  8. Force re-build of docs if necessary to pick up tagged version.
  9. Release!
  10. Edit release notes for tag on github.