@@ -434,6 +434,8 @@ flag them as expecting to fail.
434
434
Compatibility
435
435
-------------
436
436
437
+ RDFLib 8.x is likely to support only the Python versions in bugfix status at the time of its release, so perhaps 3.12+.
438
+
437
439
RDFlib 7.0.0 release and later only support Python 3.8.1 and newer.
438
440
439
441
RDFlib 6.0.0 release and later only support Python 3.7 and newer.
@@ -443,22 +445,46 @@ RDFLib 5.0.0 maintained compatibility with Python versions 2.7, 3.4, 3.5, 3.6, 3
443
445
Releasing
444
446
---------
445
447
448
+ These are the major steps for releasing new versions of RDFLib:
449
+
450
+ #. Create a pre-release PR
451
+
452
+ * that updates all the version numbers
453
+ * merge it with all tests passing
454
+
455
+ #. Do the PyPI release
456
+ #. Do the GitHub release
457
+ #. Create a post-release PR
458
+
459
+ * that updates all version numbers to next (alpha) release
460
+ * merge it with all tests passing
461
+
462
+ #. Let the world know
463
+
464
+
465
+ 1. Create a pre-release PR
466
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
467
+
446
468
Create a release-preparation pull request with the following changes:
447
469
448
- * Updated version and date in ``CITATION.cff ``.
449
- * Updated copyright year in the ``LICENSE `` file.
450
- * Updated copyright year in the ``docs/conf.py `` file.
451
- * Updated main branch version and current version in the ``README.md `` file.
452
- * Updated version in the ``pyproject.toml `` file.
453
- * Updated ``__date__ `` in the ``rdflib/__init__.py `` file.
454
- * Accurate ``CHANGELOG.md `` entry for the release.
470
+ #. In ``pyproject.toml ``, update the version number
471
+ #. In ``README.md ``, update the *Versions & Releases * section
472
+ #. In ``rdflib/__init__.py ``, update the ``__date__ `` value
473
+ #. In ``docs/conf.py ``, update copyright year
474
+ #. In ``CITATION.cff ``, update the version and date
475
+ #. In ``LICENSE ``, update the copyright year
476
+ #. In ``CHANGELOG.md ``, write an entry for this release
477
+ #. You can use the tool ``admin/get_merged_prs.py `` to assist with compiling a log of PRs and commits since last release
478
+
479
+ 2. Do the PyPI release
480
+ ~~~~~~~~~~~~~~~~~~~~~~
455
481
456
- Once the PR is merged, switch to the main branch, build the release and upload it to PyPI:
482
+ Once the pre-release PR is merged, switch to the main branch, build the release and upload it to PyPI:
457
483
458
484
.. code-block :: bash
459
485
460
486
# Clean up any previous builds
461
- \ r m -vf dist/*
487
+ rm -vf dist/*
462
488
463
489
# Build artifacts
464
490
poetry build
@@ -487,24 +513,54 @@ Once the PR is merged, switch to the main branch, build the release and upload i
487
513
# # poetry publish -u __token__ -p pypi-<REDACTED>
488
514
489
515
490
- Once this is done, create a release tag from `GitHub releases
491
- <https://github.com/RDFLib/rdflib/releases/new> `_. For a release of version
492
- 6.3.1 the tag should be ``6.3.1 `` (without a "v" prefix), and the release title
493
- should be "RDFLib 6.3.1". The release notes for the latest version be added to
494
- the release description. The artifacts built with ``poetry build `` should be
495
- uploaded to the release as release artifacts.
516
+ 3. Do the GitHub release
517
+ ~~~~~~~~~~~~~~~~~~~~~~~~
496
518
497
- The resulting release will be available at https://github.com/RDFLib/rdflib/releases/tag/6.3.1
519
+ Once the PyPI release is done, tag the main branch with the version number of the release. For a release of version
520
+ 6.3.1 the tag should be ``6.3.1 `` (without a "v" prefix):
521
+
522
+ .. code-block :: bash
523
+
524
+ git tag 6.3.1
498
525
499
- Once this is done, announce the release at the following locations:
500
526
501
- * Twitter: Just make a tweet from your own account linking to the latest release.
502
- * RDFLib mailing list.
503
- * RDFLib Gitter / matrix.org chat room.
527
+ Push this tag to GitHub:
528
+
529
+ .. code-block :: bash
530
+
531
+ git push --tags
532
+
533
+
534
+ Make a release from this tag at https://github.com/RDFLib/rdflib/releases/new
535
+
536
+ The release title should be "{DATE} RELEASE {VERSION}". See previous releases at https://github.com/RDFLib/rdflib/releases
537
+
538
+ The release notes should be just the same as the release info in ``CHANGELOG.md ``, as authored in the first major step in this release process.
539
+
540
+ The resulting release will be available at https://github.com/RDFLib/rdflib/releases/tag/6.3.1
541
+
542
+ 4. Create a post-release PR
543
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
504
544
505
545
Once this is all done, create another post-release pull request with the following changes:
506
546
507
- * Set the just released version in ``docker/latest/requirements.in `` and run
508
- ``task docker:prepare `` to update the ``docker/latest/requirements.txt `` file.
509
- * Set the version in the ``pyproject.toml `` file to the next minor release with
510
- a ``a0 `` suffix to indicate alpha 0.
547
+ #. In ``pyproject.toml ``, update to the next minor release alpha
548
+
549
+ * so a 6.3.1 release would have 6.1.4a0 as the next release alpha
550
+
551
+ #. In ``docker/latest/requirements.in `` set the version to the just released version
552
+ #. Use ``task docker:prepare `` to update ``docker/latest/requirements.txt ``
553
+
554
+
555
+
556
+ 5. Let the world know
557
+ ~~~~~~~~~~~~~~~~~~~~~
558
+
559
+ Announce the release at the following locations:
560
+
561
+ * RDFLib mailing list
562
+ * RDFLib Gitter / matrix.org chat room
563
+ * Twitter: Just make a tweet from your own account linking to the latest release
564
+ * related mailing lists
565
+
566
+ * W3C (currently RDF-Star WG):
[email protected]
0 commit comments