-
Notifications
You must be signed in to change notification settings - Fork 99
Release Procedure
#summary The steps to go through to make a release
-
Build against latest Python alpha/beta dev release to check compiler warnings and changed APIs
-
More extensive tests
make pycoverage make coverage
-
env CFLAGS=-Wshadow python3 setup.py build_ext --inplace --force --debug
to ensure no shadowed variables -
make stubtest
to verify type stubs are sensible -
make unwrapped
to find unwrapped SQLite APIs -
Edit
tools/checksums.py
to add new SQLite releases and then run it. Add any lines it outputs to the checksums file. Runsetup.py fetch --all
to check checksums are picked up correctly. -
Update Makefile: Update the version number and release date at the top of the Makefile. Run
make header
to ensure the header file is updated. Editdoc/about.rst
to set minimum supported SQLite version. Editsrc/apsw.c
to set #if check for minimum supported SQLite version -
make fulltest
to check for deeper issues -
Check it works: Edit megatest.py near the bottom to ensure it includes all supported SQLite and Python versions. Run it and check test output. On Windows, run
make compile-win
will run all tests. -
Update in local directory: Ensure you build and run the tests with the supported SQLite version. Output from the example program will end up in the HTML file and needs to have correct versions etc.
-
Check no public symbols
make showsymbols
should be clear -
touch *.py src/*.c ;make docs
check docs are ok -
Commit: This is the last chance to make changes for the release. Do your git commit to save all changes.
-
Verify github actions for test pypi and pypi builds are identical (except upload details)
diff -u .github/workflows/build-testpypi.yml .github/workflows/build-pypi.yml
-
Build and publish to test PyPI https://github.com/rogerbinns/apsw/actions/workflows/build-testpypi.yml
-
Tag the release:
make tagpush
-
rm -rf dist
to clear out dist directory. -
Make the doc+source release:
make source
. This populates the dist directory -
make release
to sign everything in dist directory. -
Update online doc ;
make publish ; cd ../apsw-publish ; git commit -am release; git status ; git push
-
Create github release and upload source
-
Build and publish to PyPI https://github.com/rogerbinns/apsw/actions/workflows/build-pypi.yml
-
Send announcement to mailing list, copying changes from published doc so links are correct