* Release checklist

- Run twice
  $ make pre-commit
- Remove old branches
  $ git branch
  $ git branch -D [branch name]
- Check that the current virtualenv is activated and matches the current branch
- Check current version. Taken from git, updates src/[prog name]/_version.py
  Do not use, `python setup.py --version`
  Initial version, edit _version.py manually, otherwise
  $ python igor.py version "tag"
  or for pre-release or post-release development versions
  $ python igor.py version "current"
  If not in dev mode,  in venv, update ``[prog name]._version.py`` as needed
- What would the next version be?
  Do not use if initial version like, ``v1.0.1-1-g3893340``
  $ python igor.py cheats "tag"
  or
  $ python igor.py cheats "current"
  See `facts.next_vi`
- start branch for release work
    $ make relbranch
- Edit supported Python version numbers. Search for "PYVERSIONS".
    - README.rst
    - docs/intro.rst
- Update sphinx conf.py CHANGES.rst, and NOTICE.txt with release facts. Supply "next version":
    $ python igor.py bump_version "1.2.11"
    or
    $ python igor.py bump_version "current"

    $ python igor.py edit_for_release "1.2.11"
    or
    $ python igor.py edit_for_release "current"
- Look over CHANGES.rst
  Takes time. Rewrite commit messages to be accessible by normies. Rewrite it again.
- Update README.rst
    - "New in x.y:"
- Update docs
    - IF PRE-RELEASE:
        - Version of latest stable release in docs/index.rst
    - Make sure the docs are cogged:
        $ make prebuild
    - Don't forget the man page: docs/python-sphinx-external-toc-strict.1.txt
    - Check that the docs build correctly:
        $ tox -e docs
        or
        $ cd docs && make doctest && cd - &>/dev/null
        $ cd docs && make linkcheck && cd - &>/dev/null
        $ cd docs && make html && cd - &>/dev/null
        $ cd docs && make pdf && cd - &>/dev/null
    - tox will affect _version.py, revert version str back to tagged version
- commit the release-prep changes
    $ make relcommit1
    or
    $ git status
    $ git add [whatever]
    $ git commit -S -m ""
- Done with changes to source files
    - check them in on the release prep branch
    - wait for ci to finish
    - merge to master
      $ git branch
      $ git switch main
      $ git merge -S -m "Your merge commit message" [source_branch]
    - Check web connection then push. Don't trigger a release until a tag push
    - Check build sdist first
      $ git push
- Start the kits:
    - Update logging_strict/src/_version.py with next version and build (not tagged yet)
      $ python igor.py build_next "[bumped version]"
      or for current (prerelease/postrelease) version, version is empty string.
      side effect _version.py changes)
      $ python igor.py build_next ""
    Trigger the kit GitHub Action (no CI integration yet)
        $ make kits_build (make debug=1 prep_kit)
- Tag the tree
    $ make tag
    or
    $ git tag -as -m "Version 1.2.11" 1.2.11
    # git push --follow-tags
