@@ -358,43 +358,53 @@ RDFLib 5.0.0 maintained compatibility with Python versions 2.7, 3.4, 3.5, 3.6, 3
358358Releasing
359359---------
360360
361- Set to-be-released version number in :file: `rdflib/__init__.py ` and
362- :file: `README.md `. Check date in :file: `LICENSE `.
361+ Create a release-preparation pull request with the following changes:
363362
364- Add :file: `CHANGELOG.md ` entry.
363+ * Updated copyright year in the ``LICENSE `` file.
364+ * Updated copyright year in the ``docs/conf.py `` file.
365+ * Updated main branch version and current version in the ``README.md `` file. The
366+ main branch version should be the next major version with an ``a0 `` suffix to
367+ indicate it is alpha 0. When releasing 6.3.1, the main branch version in the
368+ README should be 6.4.0a0.
369+ * Updated version in the ``pyproject.toml `` file.
370+ * Updated ``__date__ `` in the ``rdflib/__init__.py `` file.
371+ * Accurate ``CHANGELOG.md `` entry for the release.
365372
366- Commit this change. It's preferable make the release tag via
367- https://github.com/RDFLib/rdflib/releases/new ::
368- Our Tag versions aren't started with 'v', so just use a plain 5.0.0 like
369- version. Release title is like "RDFLib 5.0.0", the description a copy of your
370- :file: `CHANGELOG.md ` entry.
371- This gives us a nice release page like this::
372- https://github.com/RDFLib/rdflib/releases/tag/4.2.2
373+ Once the PR is merged, switch to the main branch, build the release and upload it to PyPI:
373374
374- If for whatever reason you don't want to take this approach, the old one is::
375-
376- Tagging the release commit with::
377-
378- git tag -am 'tagged version' X.X.X
375+ .. code-block :: bash
376+
377+ # Clean up any previous builds
378+ \r m -vf dist/*
379379
380- When pushing, remember to do::
380+ # Build artifacts
381+ poetry build
381382
382- git push --tags
383+ # Check that the built wheel works correctly:
384+ pipx run --spec " $( readlink -f dist/rdflib* .whl) " rdfpipe --version
383385
386+ # Publish to PyPI
387+ poetry publish
388+
384389
385- No matter how you create the release tag, remember to upload tarball to pypi with::
390+ Once this is done, create a release tag from `GitHub releases
391+ <https://github.com/RDFLib/rdflib/releases/new> `_. For a release of version
392+ 6.3.1 the tag should be ``6.3.1 `` (without a "v" prefix), and the release title
393+ should be "RDFLib 6.3.1". The release notes for the latest version be added to
394+ the release description. The artifacts built with ``poetry build `` should be
395+ uploaded to the release as release artifacts.
386396
387- rm -r dist/X.X.X[.-]* # delete all previous builds for this release, just in case
397+ The resulting release will be available at https://github.com/RDFLib/rdflib/releases/tag/6.3.1
388398
389- rm -r build
390- python setup.py sdist
391- python setup.py bdist_wheel
392- ls dist
399+ Once this is done announce the release at the following locations:
393400
394- # upload with twine
395- # WARNING: once uploaded can never be modified, only deleted!
396- twine upload dist/rdflib-X.X.X[.-]*
401+ * Twitter: Just make a tweet from your own account linking to the latest release.
402+ * RDFLib mailing list.
403+ * RDFLib Gitter / matrix.org chat room.
397404
398- Set new dev version number in the above locations, i.e. next release `` -dev ``: `` 5.0.1-dev `` and commit again.
405+ Once this is all done, create another post- release pull request with the following changes:
399406
400- Tweet, email mailing list and inform members in the chat.
407+ * Set the just released version in ``docker/latest/requirements.in `` and run
408+ ``task docker:prepare `` to update the ``docker/latest/requirements.txt `` file.
409+ * Set the version in the ``pyproject.toml `` file to the next minor release with
410+ a ``a0 `` suffix to indicate alpha 0.
0 commit comments