Release checklist

Documentation

  1. Order __all__ list and objects in modules where it is reasonable.

    1. Expecially constants, debug, downloader.stats, enums, options.

    2. In exceptions module, FilingsAPIError, FilingsAPIWarning should come first, then all exceptions ordered and then warnings ordered.

  2. Make sure package root __init__ module is up-to-date.

    1. Routine listings of objects match imported objects.

    2. Listing short summaries match the ones in docstrings of objects.

    3. Order of listings follows the one in docs/source/api-reference.rst.

  3. Delete folders docs/source/ref, docs/source/dev/ref, and docs/build.

  4. Check external link integrity (in project shell/project folder):

    hatch run doc:linkcheck
    

    Do not care about URIs such as role URI example:

    http://www.example.com/esef/taxonomy/2022-12-31/FinancialPositionConsolidated
    
  5. Go through narrative documentation so that functions and methods work as documented.

  6. Update xbrl_filings_api/__about__.py::__version__ and conf.py::release.

Final steps

  1. Commit and push last changes to the release. Wait for GitHub Actions to run and check results.

  2. Create an annotated git tag for the release:

    git tag -a v<release> -m "Release description."
    
  3. Push the tag:

    git push origin tag v<release>
    
  4. Remove the dist folder, if it exists.

  5. Build the sdist and wheel:

    hatch build
    
  6. Check the contents of both archives.

  7. Publish to PyPI.

    hatch publish -u __token__ -a pypi-<restofapitoken>