-
Notifications
You must be signed in to change notification settings - Fork 106
Release Procedure
#summary The steps to go through to make a release
-
Edit
tools/checksums.pyto add new SQLite releases and then run it. Add any lines it outputs to the checksums file. Runsetup.py fetch --allto check checksums are picked up correctly. -
Update Makefile: Update the version number and release date at the top of the Makefile. Run
make headerto ensure the header file is updated. Editdoc/about.rstto set minimum supported SQLite version. Editsrc/apsw.cto set #if check for minimum supported SQLite version -
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 --debugto ensure no shadowed variables -
make stubtestto verify type stubs are sensible -
make unwrappedto find unwrapped SQLite APIs -
make fulltestto 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-winwill 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 showsymbolsshould be clear -
touch *.py src/*.c ;make docscheck 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 distto clear out dist directory. -
Make the doc+source release:
make source. This populates the dist directory -
make releaseto 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