Skip to content

Commit

Permalink
Merge branch 'main' into dependabot/pip/mypy-1.14.1
Browse files Browse the repository at this point in the history
  • Loading branch information
nicholascar authored Feb 19, 2025
2 parents 9c03b87 + cfd4222 commit 83dce1c
Show file tree
Hide file tree
Showing 7 changed files with 203 additions and 150 deletions.
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ A fix-up release that re-adds support for Python 3.8 after it was accidentally
removed in Release 7.1.2.

This release cherrypicks many additions to 7.1.2 added to 7.1.1 but leaves out
typing changes that are not compatable
typing changes that are not compatible
with Python 3.8.

Also not carried over from 7.1.2 is the change from Poetry 1.x to 2.0.
Expand Down
13 changes: 5 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,10 @@ RDFLib

RDFLib is a pure Python package for working with [RDF](http://www.w3.org/RDF/). RDFLib contains most things you need to work with RDF, including:

* parsers and serializers for RDF/XML, N3, NTriples, N-Quads, Turtle, TriX, Trig and JSON-LD
* parsers and serializers for RDF/XML, N3, NTriples, N-Quads, Turtle, TriX, Trig, JSON-LD and even HexTuples
* a Graph interface which can be backed by any one of a number of Store implementations
* store implementations for in-memory, persistent on disk (Berkeley DB) and remote SPARQL endpoints
* Store implementations for in-memory, persistent on disk (Berkeley DB) and remote SPARQL endpoints
* additional Stores can be supplied via plugins
* a SPARQL 1.1 implementation - supporting SPARQL 1.1 Queries and Update statements
* SPARQL function extension mechanisms

Expand All @@ -29,10 +30,8 @@ The RDFlib community maintains many RDF-related Python code repositories with di

* [rdflib](https://github.com/RDFLib/rdflib) - the RDFLib core
* [sparqlwrapper](https://github.com/RDFLib/sparqlwrapper) - a simple Python wrapper around a SPARQL service to remotely execute your queries
* [pyLODE](https://github.com/RDFLib/pyLODE) - An OWL ontology documentation tool using Python and templating, based on LODE.
* [pyrdfa3](https://github.com/RDFLib/pyrdfa3) - RDFa 1.1 distiller/parser library: can extract RDFa 1.1/1.0 from (X)HTML, SVG, or XML in general.
* [pymicrodata](https://github.com/RDFLib/pymicrodata) - A module to extract RDF from an HTML5 page annotated with microdata.
* [pySHACL](https://github.com/RDFLib/pySHACL) - A pure Python module which allows for the validation of RDF graphs against SHACL graphs.
* [pyLODE](https://github.com/RDFLib/pyLODE) - An OWL ontology documentation tool using Python and templating, based on LODE
* [pySHACL](https://github.com/RDFLib/pySHACL) - A pure Python module which allows for the validation of RDF graphs against SHACL graphs
* [OWL-RL](https://github.com/RDFLib/OWL-RL) - A simple implementation of the OWL2 RL Profile which expands the graph with all possible triples that OWL RL defines.

Please see the list for all packages/repositories here:
Expand Down Expand Up @@ -71,8 +70,6 @@ Some features of RDFLib require optional dependencies which may be installed usi
Alternatively manually download the package from the Python Package
Index (PyPI) at https://pypi.python.org/pypi/rdflib

The current version of RDFLib is 7.1.3, see the ``CHANGELOG.md`` file for what's new in this release.

### Installation of the current main branch (for developers)

With *pip* you can also install rdflib from the git repository with one of the following options:
Expand Down
4 changes: 2 additions & 2 deletions docker/latest/requirements.in
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# This file is used for building a docker image of the latest rdflib release. It
# will be updated by dependabot when new releases are made.
rdflib==7.1.1
html5rdf==1.2.0
rdflib==7.1.3
html5rdf==1.2.1
12 changes: 7 additions & 5 deletions docker/latest/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
#
# This file is autogenerated by pip-compile with Python 3.12
# This file is autogenerated by pip-compile with Python 3.8
# by the following command:
#
# pip-compile docker/latest/requirements.in
#
html5rdf==1.2
# via -r docker/latest/requirements.in
html5rdf==1.2.1
# via -r requirements.in
isodate==0.7.2
# via rdflib
pyparsing==3.0.9
# via rdflib
rdflib==7.1.1
# via -r docker/latest/requirements.in
rdflib==7.1.3
# via -r requirements.in
104 changes: 80 additions & 24 deletions docs/developers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -434,6 +434,8 @@ flag them as expecting to fail.
Compatibility
-------------

RDFLib 8.x is likely to support only the Python versions in bugfix status at the time of its release, so perhaps 3.12+.

RDFlib 7.0.0 release and later only support Python 3.8.1 and newer.

RDFlib 6.0.0 release and later only support Python 3.7 and newer.
Expand All @@ -443,22 +445,46 @@ RDFLib 5.0.0 maintained compatibility with Python versions 2.7, 3.4, 3.5, 3.6, 3
Releasing
---------

These are the major steps for releasing new versions of RDFLib:

#. Create a pre-release PR

* that updates all the version numbers
* merge it with all tests passing

#. Do the PyPI release
#. Do the GitHub release
#. Create a post-release PR

* that updates all version numbers to next (alpha) release
* merge it with all tests passing

#. Let the world know


1. Create a pre-release PR
~~~~~~~~~~~~~~~~~~~~~~~~~~

Create a release-preparation pull request with the following changes:

* Updated version and date in ``CITATION.cff``.
* Updated copyright year in the ``LICENSE`` file.
* Updated copyright year in the ``docs/conf.py`` file.
* Updated main branch version and current version in the ``README.md`` file.
* Updated version in the ``pyproject.toml`` file.
* Updated ``__date__`` in the ``rdflib/__init__.py`` file.
* Accurate ``CHANGELOG.md`` entry for the release.
#. In ``pyproject.toml``, update the version number
#. In ``README.md``, update the *Versions & Releases* section
#. In ``rdflib/__init__.py``, update the ``__date__`` value
#. In ``docs/conf.py``, update copyright year
#. In ``CITATION.cff``, update the version and date
#. In ``LICENSE``, update the copyright year
#. In ``CHANGELOG.md``, write an entry for this release
#. You can use the tool ``admin/get_merged_prs.py`` to assist with compiling a log of PRs and commits since last release

2. Do the PyPI release
~~~~~~~~~~~~~~~~~~~~~~

Once the PR is merged, switch to the main branch, build the release and upload it to PyPI:
Once the pre-release PR is merged, switch to the main branch, build the release and upload it to PyPI:

.. code-block:: bash
# Clean up any previous builds
\rm -vf dist/*
rm -vf dist/*
# Build artifacts
poetry build
Expand Down Expand Up @@ -487,24 +513,54 @@ Once the PR is merged, switch to the main branch, build the release and upload i
## poetry publish -u __token__ -p pypi-<REDACTED>
Once this is done, create a release tag from `GitHub releases
<https://github.com/RDFLib/rdflib/releases/new>`_. For a release of version
6.3.1 the tag should be ``6.3.1`` (without a "v" prefix), and the release title
should be "RDFLib 6.3.1". The release notes for the latest version be added to
the release description. The artifacts built with ``poetry build`` should be
uploaded to the release as release artifacts.
3. Do the GitHub release
~~~~~~~~~~~~~~~~~~~~~~~~

The resulting release will be available at https://github.com/RDFLib/rdflib/releases/tag/6.3.1
Once the PyPI release is done, tag the main branch with the version number of the release. For a release of version
6.3.1 the tag should be ``6.3.1`` (without a "v" prefix):

.. code-block:: bash
git tag 6.3.1
Once this is done, announce the release at the following locations:
* Twitter: Just make a tweet from your own account linking to the latest release.
* RDFLib mailing list.
* RDFLib Gitter / matrix.org chat room.
Push this tag to GitHub:

.. code-block:: bash
git push --tags
Make a release from this tag at https://github.com/RDFLib/rdflib/releases/new

The release title should be "{DATE} RELEASE {VERSION}". See previous releases at https://github.com/RDFLib/rdflib/releases

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.

The resulting release will be available at https://github.com/RDFLib/rdflib/releases/tag/6.3.1

4. Create a post-release PR
~~~~~~~~~~~~~~~~~~~~~~~~~~~

Once this is all done, create another post-release pull request with the following changes:

* Set the just released version in ``docker/latest/requirements.in`` and run
``task docker:prepare`` to update the ``docker/latest/requirements.txt`` file.
* Set the version in the ``pyproject.toml`` file to the next minor release with
a ``a0`` suffix to indicate alpha 0.
#. In ``pyproject.toml``, update to the next minor release alpha

* so a 6.3.1 release would have 6.1.4a0 as the next release alpha

#. In ``docker/latest/requirements.in`` set the version to the just released version
#. Use ``task docker:prepare`` to update ``docker/latest/requirements.txt``



5. Let the world know
~~~~~~~~~~~~~~~~~~~~~

Announce the release at the following locations:

* RDFLib mailing list
* RDFLib Gitter / matrix.org chat room
* Twitter: Just make a tweet from your own account linking to the latest release
* related mailing lists
* Jena: users@jena.apache.org
* W3C (currently RDF-Star WG): public-rdf-star@w3.org
Loading

0 comments on commit 83dce1c

Please sign in to comment.