From 9b565f93640a7fffd4f48e7f121d2f6663952293 Mon Sep 17 00:00:00 2001 From: Ivan Kanakarakis Date: Tue, 14 Feb 2023 16:01:40 +0200 Subject: Update release instructions Signed-off-by: Ivan Kanakarakis --- RELEASE.md | 85 +++++++++++++++++++++----------------------------------------- 1 file changed, 28 insertions(+), 57 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index 57172a00..fc29a18a 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,61 +1,51 @@ -## NOTICE - -this is not accurate anymore and needs to be reworked. - - ## Release instructions When releasing a new version, the following steps should be taken: -1. Make sure all automated tests pass. +1. Make sure the package metadata in `pyproject.toml` is up-to-date. -2. Make sure the package metadata in `setup.py` is up-to-date. You can - verify the information by re-generating the egg info: + ``` + poetry check + ``` - ``` - python setup.py egg_info - ``` +2. Make sure all automated tests pass: - and inspecting `src/pysaml2.egg-info/PKG-INFO`. You should also make sure - that the long description renders as valid reStructuredText. You can - do this by using the `rst2html.py` utility from [docutils]: + ``` + poetry run pytest + ``` - ``` - python setup.py --long-description | rst2html > test.html - ``` +3. Bump the version of the package - If this will produce warning or errors, PyPI will be unable to render - the long description nicely. It will treat it as plain text instead. + ``` + poetry version -- X.Y.Z + ``` -3. Update the version in the [VERSION] file and report the changes in - [CHANGELOG.md] and commit the changes.: +4. Update the [CHANGELOG.md] - ``` - git add CHANGELOG.md - git add VERSION - git commit -v -s -m "Release version X.Y.Z" - ``` + ``` + git add CHANGELOG.md + ``` -4. Create a release [branch]: +5. Commit and sign the changes: - ``` - git branch vX.Y.Z - ``` + ``` + git add -u + git commit -v -s -m "Release version X.Y.Z" + ``` -5. Create a release [tag]: +6. Create a signed release [tag]: - ``` - git tag -a -s vX.Y.Z -m "Version X.Y.Z" - ``` + ``` + git tag -a -s vX.Y.Z -m "Version X.Y.Z" + ``` -6. Push these changes to Github: +7. Push the changes and the release to Github: ``` - git push --follow-tags origin vX.Y.Z - git push --follow-tags origin vX.Y.Z:vX.Y.Z + git push --follow-tags ``` -7. Create a source and wheel distribution and upload it to PyPI: +8. Publish the release on PyPI: generate a source and wheel distribution at once ``` @@ -77,28 +67,9 @@ When releasing a new version, the following steps should be taken: twine upload dist/pysaml2-X.Y.Z* ``` -8. Upload the documentation to PyPI. First you need to generate the html - version of the documentation: - - ``` - cd docs/ - make clean - make html - cd _build/html - zip -r pysaml2-docs.zip * - ``` - - Submit the generated pysaml2-docs.zip file. - 9. Send an email to the pysaml2 list announcing this release -**Important:** Once released to PyPI or any other public download location, -a released egg may *never* be removed, even if it has proven to be a faulty -release ("brown bag release"). In such a case it should simply be superseded -immediately by a new, improved release. - - [VERSION]: https://github.com/IdentityPython/pysaml2/blob/master/VERSION [CHANGELOG.md]: https://github.com/IdentityPython/pysaml2/blob/master/CHANGELOG.md [docutils]: http://docutils.sourceforge.net/ -- cgit v1.2.1