Skip to content

Commit 1b77686

Browse files
edmondchucnicholascarashleysommerdependabot[bot]ajnelson-nist
authored
chore: merge 7.4.0 into main (#3312)
* 7.1.3 prep (#3036) * 7.1.1 post release (#2953) * Fix Black formatting in ./admin/get_merged_prs.py (#2954) * build(deps-dev): bump ruff from 0.7.0 to 0.7.1 (#2955) Bumps [ruff](https://github.com/astral-sh/ruff) from 0.7.0 to 0.7.1. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.7.0...0.7.1) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ashley Sommer <ashleysommer@gmail.com> * Fix defined namespace warnings (#2964) * Fix defined namespace warnings Current docs-generation tests are polluted by lots of warnings that occur when Sphinx tries to read various parts of DefinedNamespace. * Fix tests that no longer need incorrect exceptions handled. * fix black formatting in test file * Undo typing changes, so this works on current pre-3.9 branch * better handling for any/all double-underscore properties * Don't include __slots__ in dir(). * test: earl test passing * Annotate Serializer.serialize and descendants (#2970) This patch aligns the type signatures on `Serializer` subclasses, including renaming the arbitrary-keywords dictionary to always be `**kwargs`. This is in part to prepare for the possibility of adding `*args` as a positional-argument delimiter. References: * #1890 (comment) Signed-off-by: Alex Nelson <alexander.nelson@nist.gov> * build(deps): bump orjson from 3.10.10 to 3.10.11 (#2966) Bumps [orjson](https://github.com/ijl/orjson) from 3.10.10 to 3.10.11. - [Release notes](https://github.com/ijl/orjson/releases) - [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md) - [Commits](ijl/orjson@3.10.10...3.10.11) --- updated-dependencies: - dependency-name: orjson dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps-dev): bump ruff from 0.7.1 to 0.7.2 (#2969) Bumps [ruff](https://github.com/astral-sh/ruff) from 0.7.1 to 0.7.2. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.7.1...0.7.2) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps-dev): bump ruff from 0.7.2 to 0.7.3 (#2979) Bumps [ruff](https://github.com/astral-sh/ruff) from 0.7.2 to 0.7.3. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.7.2...0.7.3) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps-dev): bump ruff from 0.7.3 to 0.8.0 (#2994) Bumps [ruff](https://github.com/astral-sh/ruff) from 0.7.3 to 0.8.0. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.7.3...0.8.0) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump orjson from 3.10.11 to 3.10.12 (#2991) Bumps [orjson](https://github.com/ijl/orjson) from 3.10.11 to 3.10.12. - [Release notes](https://github.com/ijl/orjson/releases) - [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md) - [Commits](ijl/orjson@3.10.11...3.10.12) --- updated-dependencies: - dependency-name: orjson dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * added Node as an exported name from the root package location. Updated linting commands section in the developer section to use ruff check. (#2981) * build(deps-dev): bump wheel from 0.45.0 to 0.45.1 (#2992) Bumps [wheel](https://github.com/pypa/wheel) from 0.45.0 to 0.45.1. - [Release notes](https://github.com/pypa/wheel/releases) - [Changelog](https://github.com/pypa/wheel/blob/main/docs/news.rst) - [Commits](pypa/wheel@0.45.0...0.45.1) --- updated-dependencies: - dependency-name: wheel dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Nicholas Car <nick@kurrawong.net> * feat: sort longturtle blank nodes (#2997) * feat: sort longturtle blank nodes in the object position by their cbd string * fix: #2767 * build(deps-dev): bump pytest from 8.3.3 to 8.3.4 (#2999) Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.3.3 to 8.3.4. - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](pytest-dev/pytest@8.3.3...8.3.4) --- updated-dependencies: - dependency-name: pytest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps-dev): bump poetry from 1.8.4 to 1.8.5 (#3001) Bumps [poetry](https://github.com/python-poetry/poetry) from 1.8.4 to 1.8.5. - [Release notes](https://github.com/python-poetry/poetry/releases) - [Changelog](https://github.com/python-poetry/poetry/blob/1.8.5/CHANGELOG.md) - [Commits](python-poetry/poetry@1.8.4...1.8.5) --- updated-dependencies: - dependency-name: poetry dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps-dev): bump ruff from 0.8.0 to 0.8.2 (#3003) Bumps [ruff](https://github.com/astral-sh/ruff) from 0.8.0 to 0.8.2. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.8.0...0.8.2) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps-dev): bump ruff from 0.8.2 to 0.8.3 (#3010) Bumps [ruff](https://github.com/astral-sh/ruff) from 0.8.2 to 0.8.3. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.8.2...0.8.3) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump berkeleydb from 18.1.11 to 18.1.12 (#3009) Bumps [berkeleydb](https://www.jcea.es/programacion/pybsddb.htm) from 18.1.11 to 18.1.12. --- updated-dependencies: - dependency-name: berkeleydb dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> # Conflicts: # poetry.lock * build(deps): bump orjson from 3.10.12 to 3.10.13 (#3018) Bumps [orjson](https://github.com/ijl/orjson) from 3.10.12 to 3.10.13. - [Release notes](https://github.com/ijl/orjson/releases) - [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md) - [Commits](ijl/orjson@3.10.12...3.10.13) --- updated-dependencies: - dependency-name: orjson dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps-dev): bump ruff from 0.8.4 to 0.8.6 (#3025) Bumps [ruff](https://github.com/astral-sh/ruff) from 0.8.4 to 0.8.6. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.8.4...0.8.6) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat: deterministic longturtle serialisation using RDF canonicalization + n-triples sort (#3008) * feat: use the RGDA1 canonicalization algorithm + lexical n-triples sort to produce deterministic longturtle serialisation * chore: normalise usage of format * chore: apply black * fix: double up of semicolons when subject is a blank node * fix: lint * jsonld: Do not merge nodes with different invalid URIs (#3011) When parsing JSON-LD with invalid URIs in the `@id`, the `generalized_rdf: True` option allows parsing these nodes as blank nodes instead of outright rejecting the document. However, all nodes with invalid URIs were mapped to the same blank node, resulting in incorrect data. For example, without this patch, the new test fails with: ``` AssertionError: Expected: @Prefix schema: <https://schema.org/> . <https://example.org/root-object> schema:author [ schema:familyName "Doe" ; schema:givenName "Jane" ; schema:name "Jane Doe" ], [ schema:familyName "Doe" ; schema:givenName "John" ; schema:name "John Doe" ] . Got: @Prefix schema: <https://schema.org/> . <https://example.org/root-object> schema:author <> . <> schema:familyName "Doe" ; schema:givenName "Jane", "John" ; schema:name "Jane Doe", "John Doe" . ``` * Fixed incorrect ASK behaviour for dataset with one element (#2989) * Pass base uri to serializer when writing to file. (#2977) Co-authored-by: Nicholas Car <nick@kurrawong.net> * Dataset documentation improvements (#3012) * example printout improvements * added BN graph creation * updated tests var names & added one subtest * typos & improved formatting * updated Graph & Dataset docco * typo fix * fix code-in-comment syntax * fix code-in-comment syntax 2 * fix code-in-comment syntax - ellipses * fix code-in-comment syntax - sort print loop output * blacked * ruff fixes * Poetry 2.0.0 pyproject.toml file * move to PEP621 (Poetry 2.0.0) pyproject.toml * require poetry 2.0.0 * require poetry 2.0.0 * add in requirement for poetry-plugin-export * change from --sync to sync command * further pyproject.toml format updates * add poetry plugin to requirements-poetry.in * fix pre-commit poetry version to 2.0.0 * remove testing artifact * update license to 2025 * add me to contributors * remove outdated --check arg * typo * test add back in precommit args * test remove precommit args * match ruff version to pre-commit autoupdate PR #3026; add back in --check * re-remove --check * add David to CONTRIBUTORS * ruff in pyproject.toml to match pre-commit * updates for David's comments * fix Dataset docc ReST formatting * remove ConjunctiveGraph example; add Dataset example; add JSON-LS serialization example * Add RDFLib Path to SHACL path utility and corresponding tests (#2990) * shacl path parser: Add additional test case * shacl utilities: Add new SHACL path building utility with corresponding tests --------- Co-authored-by: Nicholas Car <nick@kurrawong.net> # Conflicts: # rdflib/extras/shacl.py * fix: typing and import issues * fix: line length as int * fix: ruff version conflict * fix: berkeleydb pin to 18.1.10 for python 3.8 compatibility * 3a not 2a --------- Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: Alex Nelson <alexander.nelson@nist.gov> Co-authored-by: Nicholas Car <nick@kurrawong.net> Co-authored-by: Ashley Sommer <ashleysommer@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alex Nelson <alexander.nelson@nist.gov> Co-authored-by: joecrowleygaia <142864129+joecrowleygaia@users.noreply.github.com> Co-authored-by: Val Lorentz <vlorentz@softwareheritage.org> Co-authored-by: jcbiddle <114963309+jcbiddle@users.noreply.github.com> Co-authored-by: Sander Van Dooren <sandervd@users.noreply.github.com> Co-authored-by: Nicholas Car <nick@kurrawong.ai> Co-authored-by: Matt Goldberg <59745812+mgberg@users.noreply.github.com> * 7.1.3-pre-release * small docco update (#3053) * 7.1.3-post-release; some updated release info for devs (#3054) * build(deps): bump orjson from 3.10.13 to 3.10.15 (#3055) Bumps [orjson](https://github.com/ijl/orjson) from 3.10.13 to 3.10.15. - [Release notes](https://github.com/ijl/orjson/releases) - [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md) - [Commits](ijl/orjson@3.10.13...3.10.15) --- updated-dependencies: - dependency-name: orjson dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps-dev): bump ruff from 0.8.6 to 0.9.2 (#3047) Bumps [ruff](https://github.com/astral-sh/ruff) from 0.8.6 to 0.9.2. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.8.6...0.9.2) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump html5rdf from 1.2.0 to 1.2.1 in /docker/latest (#3045) Bumps [html5rdf](https://github.com/RDFLib/html5rdf) from 1.2.0 to 1.2.1. - [Release notes](https://github.com/RDFLib/html5rdf/releases) - [Changelog](https://github.com/RDFLib/html5rdf/blob/main/CHANGES.rst) - [Commits](https://github.com/RDFLib/html5rdf/commits/v1.2.1) --- updated-dependencies: - dependency-name: html5rdf dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump html5rdf from 1.2 to 1.2.1 (#3048) Bumps [html5rdf](https://github.com/RDFLib/html5rdf) from 1.2 to 1.2.1. - [Release notes](https://github.com/RDFLib/html5rdf/releases) - [Changelog](https://github.com/RDFLib/html5rdf/blob/main/CHANGES.rst) - [Commits](https://github.com/RDFLib/html5rdf/commits/v1.2.1) --- updated-dependencies: - dependency-name: html5rdf dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps-dev): bump wheel from 0.44.0 to 0.45.1 (#3051) Bumps [wheel](https://github.com/pypa/wheel) from 0.44.0 to 0.45.1. - [Release notes](https://github.com/pypa/wheel/releases) - [Changelog](https://github.com/pypa/wheel/blob/main/docs/news.rst) - [Commits](pypa/wheel@0.44.0...0.45.1) --- updated-dependencies: - dependency-name: wheel dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps-dev): bump ruff 0.9.2 - 0.9.6 + readthedocs conf (#3072) * build(deps-dev): bump ruff from 0.9.2 to 0.9.6 Bumps [ruff](https://github.com/astral-sh/ruff) from 0.9.2 to 0.9.6. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.9.2...0.9.6) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * add readthedocs sphynx.configuration --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Nicholas Car <nick@kurrawong.net> Co-authored-by: Nicholas Car <nick@kurrawong.ai> * build(deps): bump lxml from 5.3.0 to 5.3.1 (#3071) Bumps [lxml](https://github.com/lxml/lxml) from 5.3.0 to 5.3.1. - [Release notes](https://github.com/lxml/lxml/releases) - [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt) - [Commits](lxml/lxml@lxml-5.3.0...lxml-5.3.1) --- updated-dependencies: - dependency-name: lxml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Nicholas Car <nick@kurrawong.net> * Cope with Namespace annotations in Python 3.14 (#3084) The __annotations__ member can be incomplete, use the get_annotations() helper from annotationlib (Python >= 3.14) or inspect (Python >= 3.10) if available. Related: #3083 Signed-off-by: Nils Philippsen <nils@tiptoe.de> Co-authored-by: Nicholas Car <nick@kurrawong.net> * build(deps): bump dorny/test-reporter from 1 to 2 (#3081) Bumps [dorny/test-reporter](https://github.com/dorny/test-reporter) from 1 to 2. - [Release notes](https://github.com/dorny/test-reporter/releases) - [Changelog](https://github.com/dorny/test-reporter/blob/main/CHANGELOG.md) - [Commits](dorny/test-reporter@v1...v2) --- updated-dependencies: - dependency-name: dorny/test-reporter dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps-dev): bump pytest from 8.3.4 to 8.3.5 (#3079) Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.3.4 to 8.3.5. - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](pytest-dev/pytest@8.3.4...8.3.5) --- updated-dependencies: - dependency-name: pytest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump library/python in /docker/unstable (#3067) Bumps library/python from 3.12.7-slim to 3.13.2-slim. --- updated-dependencies: - dependency-name: library/python dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Nicholas Car <nick@kurrawong.net> * build(deps): bump library/python in /docker/latest (#3066) Bumps library/python from 3.12.7-slim to 3.13.2-slim. --- updated-dependencies: - dependency-name: library/python dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Nicholas Car <nick@kurrawong.net> * remove old hacks against 2to3 (#3076) This reverts e2fb491 Co-authored-by: Nicholas Car <nick@kurrawong.net> * Downgrade log message about plugin without override argument to debug from warning (#3063) Original issue - #1880 was worked around by providing a fall back call without "override" in - #2018 As a result any user with such a store (in our case just <class 'rdflib.plugins.memory.IOMemory'>) is flooded with such warnings pointing to that issue #1880 and for all means and purposes AFAIK just need to ignore them since there is nothing user can do to address it. That raises the question on why is it a Warning at a user level and not some debug message for developers/troubleshooting etc? Hence I am lowering it to debug level to bring peace of mind to users of the library. Co-authored-by: Nicholas Car <nick@kurrawong.net> * [pre-commit.ci] pre-commit autoupdate (#3056) updates: - [github.com/astral-sh/ruff-pre-commit: v0.5.4 → v0.11.0](astral-sh/ruff-pre-commit@v0.5.4...v0.11.0) - [github.com/psf/black-pre-commit-mirror: 24.4.2 → 25.1.0](psf/black-pre-commit-mirror@24.4.2...25.1.0) - [github.com/python-poetry/poetry: 1.8.3 → 2.1.1](python-poetry/poetry@1.8.3...2.1.1) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Nicholas Car <nick@kurrawong.net> * Reduce warnings (#3085) * build(deps-dev): bump ruff from 0.9.2 to 0.9.6 Bumps [ruff](https://github.com/astral-sh/ruff) from 0.9.2 to 0.9.6. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.9.2...0.9.6) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * add readthedocs sphynx.configuration * replace ConjunctiveGraph() with Dataset() in tests * tidy some notation * align black version * fix black & ruff * poetry --check -> poetry-check --lock * more CG -> Datasets * ruff * GC -> Dataset --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Reduce warnings (#3087) * build(deps-dev): bump ruff from 0.9.2 to 0.9.6 Bumps [ruff](https://github.com/astral-sh/ruff) from 0.9.2 to 0.9.6. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.9.2...0.9.6) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * add readthedocs sphynx.configuration * replace ConjunctiveGraph() with Dataset() in tests * tidy some notation * align black version * fix black & ruff * poetry --check -> poetry-check --lock * more CG -> Datasets * ruff * GC -> Dataset * CG -> D * ruff fixes --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Allow multi subjects & objects in graph funcs (#3086) * subjects() * objects() & tests * blacked * build(deps): bump library/python in /docker/unstable (#3089) Bumps library/python from `ae9f9ac` to `8f3aba4`. --- updated-dependencies: - dependency-name: library/python dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * 7.1.4 pre-release (#3098) * Merge 7-maintenance branch into 7.x (#3222) * 7.1.4 pre-release * fix namespace prefixes in longturtle serialization (#3134) Co-authored-by: Daan de Schepper <d.de.schepper@rijksmuseum.nl> * Fix failing webtest (#3194) * test: fix failing webtest Fixes #3192 * Revert "remove old hacks against 2to3 (#3076)" (#3195) This reverts commit b74c657. * Specify `Optional` parameters in `Graph.triples_choices` (#3075) * Specify `Optional` parameters in `Graph.triples_choices` The two non-list parameters can be `None`, but this is not reflected in the type hint. Also introduces a type alias to simplify method signatures. * style: remove unused imports --------- Co-authored-by: Nicholas Car <nick@kurrawong.net> Co-authored-by: Edmond Chuc <37032744+edmondchuc@users.noreply.github.com> Co-authored-by: Edmond Chuc <edmond@kurrawong.ai> * feat: canonicalization with longturtle serializer now optional (#3197) * feat: canonicalization with longturtle serializer now optional Fixes #3196 * docs: fix docs build error by removing py obj reference to canon --------- Co-authored-by: Nicholas Car <nick@kurrawong.ai> Co-authored-by: Daan de Schepper <d.de.schepper@rijksmuseum.nl> Co-authored-by: Sigmund Lahn <s@lahn.no> Co-authored-by: Nicholas Car <nick@kurrawong.net> * [7.x] notation3.py: don't normalize float representation (#3221) * 7.1.4 pre-release * fix namespace prefixes in longturtle serialization (#3134) Co-authored-by: Daan de Schepper <d.de.schepper@rijksmuseum.nl> * Fix failing webtest (#3194) * test: fix failing webtest Fixes #3192 * Revert "remove old hacks against 2to3 (#3076)" (#3195) This reverts commit b74c657. * Specify `Optional` parameters in `Graph.triples_choices` (#3075) * Specify `Optional` parameters in `Graph.triples_choices` The two non-list parameters can be `None`, but this is not reflected in the type hint. Also introduces a type alias to simplify method signatures. * style: remove unused imports --------- Co-authored-by: Nicholas Car <nick@kurrawong.net> Co-authored-by: Edmond Chuc <37032744+edmondchuc@users.noreply.github.com> Co-authored-by: Edmond Chuc <edmond@kurrawong.ai> * feat: canonicalization with longturtle serializer now optional (#3197) * feat: canonicalization with longturtle serializer now optional Fixes #3196 * docs: fix docs build error by removing py obj reference to canon * added n3 test to check for internal float normalization made as a separate commit to illustrate the old broken behavior priro to the fix in the next commit * notation3.py: don't normalize float representation fix behavior of the n3 parser family to avoid normalizing raw float string representation which makes it impossible to roundtrip the exact original string representation of e.g. 1e10 * test: refactor test_float_no_norm to use pytest parametrization * style: add noqa to sfloat class * chore: remove unused mypy type ignore * docs: fix sfloat reference * fix: sphinx nitpicky reference --------- Co-authored-by: Nicholas Car <nick@kurrawong.ai> Co-authored-by: Daan de Schepper <d.de.schepper@rijksmuseum.nl> Co-authored-by: Sigmund Lahn <s@lahn.no> Co-authored-by: Nicholas Car <nick@kurrawong.net> Co-authored-by: Tom Gillespie <tgbugs@gmail.com> * Fix incorrect deskolemization of literals (#3127) (#3223) * Fix issue 3126 * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: Daan de Schepper <daan@daandeschepper.nl> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * chore: prep 7.2.0 release (#3224) * chore: prep 7.2.0 release * chore: remove mention of charter * chore: remove scratch file * chore: prep 7.2.1 release (#3225) * chore: prep 7.2.1 release * docs: add new step in releasing section * build: update poetry lockfile * docs: fix title underline too short * chore: 7.2.1 post release (#3226) * chore: bump rdflib version in docker image requirements.txt * chore: generate docker requirements.txt using pip-compile task Adding --no-strip-extras to pip-compile command to preserve existing behaviour in pip-tools v8 * chore: update pyproject.toml version with alpha suffix * Run the example queries agains the local fuseki (#3240) 0. skip the test if the sparql endpoints host is not available 1. prepare the local fuseki store with some data 2. execute the example queries * Adjust the type hint for Graph open to reflect a SPARQLUpdateStore configuration (#3239) * Adjust the type hint for Graph open to reflect a SPARQLUpdateStore configuration Also adjust the type hint for ReadOnlyGraphAggregate and for further stores * fix doc string --------- Co-authored-by: Edmond Chuc <37032744+edmondchuc@users.noreply.github.com> * SPARQL result parsing (#2796) * Remove plugin registration for "application/sparql-results+xml; charset=UTF-8" Remove ResultParser plugin registration with the name "application/sparql-results+xml; charset=UTF-8" since it is never called in internal code. The only place where ResultParser plugins are requested is in "rdflib/query.py:276" ``` if format: plugin_key = format elif content_type: plugin_key = content_type.split(";", 1)[0] else: plugin_key = "xml" parser = plugin.get(plugin_key, ResultParser)() ``` In case of a content-type the charset is split off already. * Resolve TODO: Pull in these from the result implementation plugins for _response_mime_types in sparqlconnector * Register all Parser plugins as SPARQL ResultParser plugins * Avoid overwriting ResultParser plugins --------- Co-authored-by: Edmond Chuc <37032744+edmondchuc@users.noreply.github.com> * fix: skip prefix generation for predicates corresponding to base namespace (#3244) * skip prefix generation for predicates corresponding to base namespace * fix: skip prefix generation for predicates corresponding to the base namespace. This applies to both turtle and longturtle Also added fix to escape brackets in pnames to longturtle. --------- Co-authored-by: bulricht <108867473+bulricht@users.noreply.github.com> * fix(v7): remove Literal.toPython date conversion for gYear/gYearMonth (#3115) (#3258) * fix: remove Literal.toPython date conversion for gYear/gYearMonth (#3115) * fix: remove Literal.toPython casting for gYear and gYearMonth Issue #3078 reports, that rdflib.Literal.toPython casting of xsd:gYear and xsd:gYearMonth to datetime objects is not possible, as there is no appropriate Python equivalence for those types. The current implementation casts xsd:gYear and xsd:gYearMonth to datetime objects assuming January 1st for xsd:gYear and the 1st day of the given month for xsd:gYearMonth. This is plain wrong. The change removes casting to datetime objects in rdflib.Literal.toPython for xsd:gYear and xsd:gYearMonth. Closes #3078 . * test: adapt rdflib.Literal tests to gYear/gYearMonth toPython change --------- Co-authored-by: Nicholas Car <nick@kurrawong.net> * style: apply black formatting --------- Co-authored-by: Lukas Plank <128675670+lu-pl@users.noreply.github.com> Co-authored-by: Nicholas Car <nick@kurrawong.net> * feat: allow adding graphs backed by different stores to the same dataset (#3259) * feat: allow adding graphs backed by different stores to the same dataset * chore: add comment for clarity * test: confirm adding a new graph, different backing store but same identifier appends to the dataset * test: update comments and test names * feat: set dataset's default serialize format to trig (#3260) * sparqls optionals clause can now bind variables. with test. issue 2957 (#3247) Co-authored-by: Richard Focke Fechner <richardfechner@posteo.net> Co-authored-by: Edmond Chuc <37032744+edmondchuc@users.noreply.github.com> * fix: dataset nquads serialization including RDFLib internal default graph identifier (#3262) * fix: dataset nquads serialization including RDFLib internal default graph identifier * chore: remove json-ld code * fix: Dataset.parse now returns Self (#3263) * fix: Dataset.parse now returns Self * chore: remove test that's not relevant for this PR * chore: add deprecation notice to Dataset methods and attributes (#3264) * chore: add deprecation warning to Dataset.contexts() * chore: deprecate Dataset.default_context and introduce Dataset.default_graph * chore: deprecate Dataset.identifier * chore: replace usage of default_context with default_graph in Dataset * patch for reevaluation in sparql modify between update loops. with test (#3261) Co-authored-by: Richard Focke Fechner <richardfechner@posteo.net> Co-authored-by: Edmond Chuc <37032744+edmondchuc@users.noreply.github.com> * fix: SPARQL Update inserts into the default graph (#3265) * fix: the return type of Dataset.parse * fix: SPARQL Update inserts into the default graph does not create a new graph with a blank node label as the graph name * chore: add todo comment * fix: allow static type checkers to infer term's __new__ type (#3266) * fix: the return value type of term's __new__ * fix: import of Self for python versions lower than 3.11 * fix: import errors in CI due to reliance on typing_extensions. Remove explicit typing and let type checkers to infer instead --------- Co-authored-by: Nicholas Car <nick@kurrawong.net> * fix: RecursiveSerializer- outputs undeclared prefix for predicates that contains the base as a substring (#3267) * fix: turtle, longturtle, and n3 serializers - outputs undeclared prefix when using base on a predicate that contains the base as a substring Fixes: #3160 * chore: remove print * chore: formatting --------- Co-authored-by: Nicholas Car <nick@kurrawong.net> * feat: add Dataset __iadd__ support (#3268) fixes: #3031 Co-authored-by: Nicholas Car <nick@kurrawong.net> * build: prep 7.3.0 (#3277) * build: prep 7.3.0 * revert noisy diff * chore: add back 7.3.0 changelog * style: format * chore: add summary to release * chore: 7.3.0 post release (#3278) * added TypeError to test_roundtrip[test_other__service1], because different error on python 7.13.8. (#3275) with input from @edmondchuc Co-authored-by: Edmond Chuc <37032744+edmondchuc@users.noreply.github.com> * feat: v7 mkdocs (#3287) * Pr/3143 (#3144) * Start migrating the documentation from .rst sphynx to .md material for mkdocs. Add mkdocs.yml with proper configuration, enable automated generation of the doc API from the docstring, and start converting a few pages (index, getting started, developers) for demo. * Add automated (opt-in) tests of all python codeblocks in the markdown docs using pytest-markdown-docs. Needed to comment 1 small test that seemingly should fail (AttributeError: DefinedNamespace like object has no attribute '_NS', indeed the DefinedNamespace class expect a _NS, so it makes sense it fails) but for some reason it was not properly failing when ran with regular pytest, but it fails with pytest-markdown-docs * convert all documentations pages to markdown, convert all docstrings to markdown with google style, updated config for mkdocs (readthedocs, tox, task) fixed #3128 * delete files, dependencies and mentions related to sphinx * uncomment test previously commented for experimenting with markdown codeblock testing * update poetry lock * blacked again * ignore mypy errors --------- Co-authored-by: Vincent Emonet <vincent.emonet@gmail.com> * build: set mkdocs versions for rdflib v7 compatibility * style: apply black formatting * chore: mypy comments * fix: mypy, ruff, and apply black formatting * build: only test mkdocs build on python 3.11 and above * build: update poetry lock * build: fix python version constraint and add comment explaining why the python constraint for mkdocs deps * build: update poetry lock * chore: fix mypy and apply formatting * build: set setuptools version constraints in tox.ini * build: set berkeleydb version * build: loosen berkeleydb constraint --------- Co-authored-by: Nicholas Car <nick@kurrawong.net> Co-authored-by: Vincent Emonet <vincent.emonet@gmail.com> * fix: set changed size when iterating the store's graphs (#3281) * fix: set changed size when iterating the store's graphs * fix: materialise the iterator with list() so it doesn't change * chore: revert calling to store directly --------- Co-authored-by: Nicholas Car <nick@kurrawong.net> * chore(v7): upgrade ci and dev/test deps (#3288) * build: add pyproject classifier for python 3.14 * test: add test matrix for python 3.12, 3.13 and 3.14 * test: update matrix * test: update tox.ini with new python versions * style: align black formatting with python version 3.8 * test: mark sparql10 test as xfail as it's failing in python 3.14 * test: mark sparql10 test as xfail as it's failing in python 3.14 * chore: update ruff, mypy, and black to the latest supported versions * test: xfail test marked only when greater than or equal to python 3.14 * style: formatting * test: mark more tests as xfail * chore: prep 7.4.0 release (#3289) * chore: remove remnant rst files * chore: prep 7.4.0 release * chore: post steps for 7.4.0 release (#3291) * test: fix dbpedia webtests (#3304) * fix: These markdown docs were added back in when moving to MkDocs in v7.4.0. This removes them again and also removes them from the mkdocs.yml config. * build: fix poetry.lock having two conflicting click entries * build: revert back to main's poetry.lock file as the newly generated one still has duplicate package entries for different versions (click, griffe, etc) * chore: remove unecessary type checking imports * chore: delete merged_prs.json --------- Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: Alex Nelson <alexander.nelson@nist.gov> Signed-off-by: Nils Philippsen <nils@tiptoe.de> Co-authored-by: Nicholas Car <nick@kurrawong.net> Co-authored-by: Ashley Sommer <ashleysommer@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alex Nelson <alexander.nelson@nist.gov> Co-authored-by: joecrowleygaia <142864129+joecrowleygaia@users.noreply.github.com> Co-authored-by: Val Lorentz <vlorentz@softwareheritage.org> Co-authored-by: jcbiddle <114963309+jcbiddle@users.noreply.github.com> Co-authored-by: Sander Van Dooren <sandervd@users.noreply.github.com> Co-authored-by: Nicholas Car <nick@kurrawong.ai> Co-authored-by: Matt Goldberg <59745812+mgberg@users.noreply.github.com> Co-authored-by: Nils Philippsen <nils@tiptoe.de> Co-authored-by: Alexandre Detiste <alexandre.detiste@gmail.com> Co-authored-by: Yaroslav Halchenko <debian@onerussian.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Daan de Schepper <d.de.schepper@rijksmuseum.nl> Co-authored-by: Sigmund Lahn <s@lahn.no> Co-authored-by: Tom Gillespie <tgbugs@gmail.com> Co-authored-by: Daan de Schepper <daan@daandeschepper.nl> Co-authored-by: Natanael Arndt <arndtn@gmail.com> Co-authored-by: bulricht <108867473+bulricht@users.noreply.github.com> Co-authored-by: Lukas Plank <128675670+lu-pl@users.noreply.github.com> Co-authored-by: Focke <richi.fechner@web.de> Co-authored-by: Richard Focke Fechner <richardfechner@posteo.net> Co-authored-by: Vincent Emonet <vincent.emonet@gmail.com>
1 parent bcdc7a6 commit 1b77686

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+1213
-210
lines changed

.github/workflows/validate.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
strategy:
2626
fail-fast: false
2727
matrix:
28-
python-version: ["3.9", "3.10", "3.11", "3.12"]
28+
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
2929
os: [ubuntu-latest, macos-latest, windows-latest]
3030
# This is used for injecting additional tests for a specific python
3131
# version and OS.

CHANGELOG.md

Lines changed: 70 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,68 @@
1+
## 2025-10-30 RELEASE 7.4.0
2+
3+
This release addresses a couple of bugs and improves the testing matrix by adding python 3.12, 3.13 and 3.14 to the test matrix.
4+
5+
This is also the first RDFLib release to use MkDocs for documentation.
6+
7+
Pull requests merged:
8+
9+
- chore(v7): upgrade ci and dev/test deps by @edmondchuc in [#3288](https://github.com/RDFLib/rdflib/pull/3288)
10+
- feat: v7 mkdocs by @edmondchuc in [#3287](https://github.com/RDFLib/rdflib/pull/3287)
11+
- fix: set changed size when iterating the store's graphs by @edmondchuc in [#3281](https://github.com/RDFLib/rdflib/pull/3281)
12+
- lazy fix of issue pytest failure on python 3.13.8 - Removing of xfail raise restriction by @WhiteGobo in [#3275](https://github.com/RDFLib/rdflib/pull/3275)
13+
14+
## 2025-10-24 RELEASE 7.3.0
15+
16+
This release delivers several important fixes and enhancements to RDFLib’s Dataset implementation, resolving long-standing issues and improving consistency across serialization and SPARQL operations. It also introduces new deprecation notices for certain Dataset methods and attributes, which will be removed in the next major release. In addition, this version includes a range of improvements to SPARQL result parsing, typing, and literal handling.
17+
18+
### Features
19+
20+
- Added `Dataset.__iadd__` support
21+
- Dataset's default serialize format is now `trig`
22+
- Datasets can now add graphs backed by different stores
23+
24+
### Fixes and Improvements
25+
26+
- Fixed an issue where the `RecursiveSerializer` would output undeclared prefixes for predicates that contained the base as a substring
27+
- Prevented prefix generation for predicates corresponding to the base namespace
28+
- SPARQL Update now correctly inserts into the default graph
29+
- Dataset.parse now returns Self
30+
- N-Quads serialization no longer includes the RDFLib internal default graph identifier
31+
- Static type checkers can now infer the type of `Term.__new__`
32+
- Removed automatic date conversion for gYear and gYearMonth literals
33+
- Optional clauses in SPARQL queries can now bind variables
34+
- Fixed reevaluation logic in SPARQL Update between update loops
35+
36+
### Maintenance
37+
38+
- Added deprecation notices to certain Dataset methods and attributes
39+
- Use Dataset.graphs instead of Dataset.contexts method
40+
- Use Dataset.default_graph instead of Dataset.default_context
41+
- Deprecate Dataset.identifier entirely.
42+
- Updated type hints for Graph.open() with SPARQLUpdateStore configuration
43+
- SPARQL Result Parsing Improvements
44+
- Simplified and modernized the SPARQL result parsing system:
45+
- These changes maintain backward compatibility while making the SPARQL API more flexible and extensible.
46+
47+
Pull requests merged:
48+
49+
- feat: add Dataset `__iadd__` support by @edmondchuc in [#3268](https://github.com/RDFLib/rdflib/pull/3268)
50+
- fix: RecursiveSerializer- outputs undeclared prefix for predicates that contains the base as a substring by @edmondchuc in [#3267](https://github.com/RDFLib/rdflib/pull/3267)
51+
- fix: allow static type checkers to infer term's `__new__` type by @edmondchuc in [#3266](https://github.com/RDFLib/rdflib/pull/3266)
52+
- fix: SPARQL Update inserts into the default graph by @edmondchuc in [#3265](https://github.com/RDFLib/rdflib/pull/3265)
53+
- chore: add deprecation notice to Dataset methods and attributes by @edmondchuc in [#3264](https://github.com/RDFLib/rdflib/pull/3264)
54+
- fix: Dataset.parse now returns Self by @edmondchuc in [#3263](https://github.com/RDFLib/rdflib/pull/3263)
55+
- fix: dataset nquads serialization including RDFLib internal default graph identifier by @edmondchuc in [#3262](https://github.com/RDFLib/rdflib/pull/3262)
56+
- patch for reevaluation in sparql modify between update loops. with test by @WhiteGobo in [#3261](https://github.com/RDFLib/rdflib/pull/3261)
57+
- feat: change dataset's default serialize format to trig by @edmondchuc in [#3260](https://github.com/RDFLib/rdflib/pull/3260)
58+
- feat: allow adding graphs backed by different stores to the same dataset by @edmondchuc in [#3259](https://github.com/RDFLib/rdflib/pull/3259)
59+
- fix(v7): remove Literal.toPython date conversion for gYear/gYearMonth (#3115) by @edmondchuc in [#3258](https://github.com/RDFLib/rdflib/pull/3258)
60+
- sparqls optionals clause can now bind variables. with test. issue 2957 by @WhiteGobo in [#3247](https://github.com/RDFLib/rdflib/pull/3247)
61+
- fix: skip prefix generation for predicates corresponding to base namespace by @edmondchuc in [#3244](https://github.com/RDFLib/rdflib/pull/3244)
62+
- Run the example queries agains the local fuseki by @white-gecko in [#3240](https://github.com/RDFLib/rdflib/pull/3240)
63+
- Adjust the type hint for Graph open to reflect a SPARQLUpdateStore configuration by @white-gecko in [#3239](https://github.com/RDFLib/rdflib/pull/3239)
64+
- SPARQL result parsing by @white-gecko in [#2796](https://github.com/RDFLib/rdflib/pull/2796)
65+
166
## 2025-09-19 RELEASE 7.2.1
267

368
A tiny clean up release.
@@ -169,26 +234,12 @@ For the full list of included PRs, see the preparatory PR:
169234

170235
## 2025-01-10 RELEASE 7.1.2
171236

172-
A minor release that bumped up a few dev dependencies and achieved a few small but notable improvements, particularly with longturtle sorting:
173-
174-
Feature PRs:
175-
176-
* [PR #2963](https://github.com/RDFLib/rdflib/pull/2963) Big typing updates
177-
* [PR #2964](https://github.com/RDFLib/rdflib/pull/2964) Defined Namesapce warnings fix
178-
* [PR #2971](https://github.com/RDFLib/rdflib/pull/2971) convert uses of Optional and some Union usage to union operator |
179-
* [PR #2989](https://github.com/RDFLib/rdflib/pull/2989) Fixed incorrect ASK behaviour for dataset with one element
180-
* [PR #2997](https://github.com/RDFLib/rdflib/pull/2997) sort longturtle blank nodes
181-
* [PR #3008](https://github.com/RDFLib/rdflib/pull/3008) deterministic longturtle serialisation using RDF canonicalization + n-triples sort
182-
* [PR #3012](https://github.com/RDFLib/rdflib/pull/3012) Dataset documentation improvements
183-
184-
Dependency bumps:
237+
A minor release that inadvertently removed support for Python 3.8. This release
238+
how now been deleted.
185239

186-
* ruff from 0.71 -> 0.8.6
187-
* orjson 3.10.10 ->
188-
* pytest-cov to 6.0.0
189-
* coverage to 7.6.10
190-
* pytest to 8.3.4
191-
* poetry to 2.0.0
240+
All the improved features initially made available in this release that were
241+
compatible with Python 3.8 have been preserved in the 7.1.3 release. The main
242+
additions to 7.1.2 not preserved in 7.1.3 are updated type hints.
192243

193244
## 2024-10-17 RELEASE 7.1.1
194245

CITATION.cff

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ authors:
7272
- family-names: "Stuart"
7373
given-names: "Veyndan"
7474
title: "RDFLib"
75-
version: 7.2.1
76-
date-released: 2025-09-19
75+
version: 7.4.0
76+
date-released: 2025-10-30
7777
url: "https://github.com/RDFLib/rdflib"
7878
doi: 10.5281/zenodo.6845245

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ Help with maintenance of all of the RDFLib family of packages is always welcome
4545
## Versions & Releases
4646

4747
* `main` branch in this repository is the current unstable release - version 8 alpha
48+
* `7.4.0` a few small fixes, add test matrix for active python versions, and move v7 documentation to MkDocs
49+
* `7.3.0` many fixes and usability improvements, particularly for the Dataset class. See changelog for details
4850
* `7.2.1` tiny clean up release, relaxes Python version requirement
4951
* `7.2.0` general fixes and usability improvements, see changelog for details
5052
* `7.1.4` tidy-up release, possibly last 7.x release

Taskfile.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ tasks:
272272

273273
pip-compile:
274274
cmds:
275-
- cmd: "{{.PIP_COMPILE}} --quiet --annotate --emit-options --no-strip-extras --resolver=backtracking {{.CLI_ARGS}}"
275+
- cmd: "{{.PIP_COMPILE}} --quiet --annotate --emit-options --resolver=backtracking --no-strip-extras {{.CLI_ARGS}}"
276276

277277
docker:prepare:
278278
cmds:

admin/README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,11 @@
33
Tools to assist with RDFlib releases, like extracting all merged PRs from GitHub since last release and printing them into MArkdown lists.
44

55
To make a release of RDFLib, see the [Developer's Guide](https://rdflib.readthedocs.io/en/latest/developers.html).
6+
7+
## PR Changelog Summary
8+
9+
An alternative to the `get_merged_prs.py` script is to use the GitHub CL to get the list of PRs and pipe it into the `pr_markdown.py` script. The following command retrieves the list of PRs merged since the last release (`2025-09-19`) from a particular branch (`7.x`).
10+
11+
```bash
12+
gh api '/search/issues?q=repo:rdflib/rdflib+is:pr+is:merged+base:7.x+merged:>2025-10-24&per_page=100' | jq '{total_count, incomplete_results, items: [.items[] | {number, title, pull_request_merged_at: .pull_request.merged_at, pull_request_url: .pull_request.html_url, username: .user.login}]}' | poetry run python admin/pr_markdown.py
13+
```

admin/pr_markdown.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import json
2+
import sys
3+
from dataclasses import dataclass
4+
5+
6+
@dataclass
7+
class PR:
8+
number: int
9+
title: str
10+
pull_request_merged_at: str
11+
pull_request_url: str
12+
username: str
13+
14+
def __repr__(self):
15+
return f"{self.title} by @{self.username} in [#{self.number}]({self.pull_request_url})"
16+
17+
18+
try:
19+
json_data = json.load(sys.stdin)
20+
prs = [PR(**pr) for pr in json_data["items"]]
21+
for pr in prs:
22+
print(f"- {pr}")
23+
except json.JSONDecodeError as e:
24+
print(f"Error parsing JSON: {e}")
25+
sys.exit(1)
26+
except Exception as e:
27+
print(f"Error: {e}")
28+
sys.exit(1)

docs/CONTRIBUTING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,8 @@ Some ways in which you can contribute to RDFLib are:
8888

8989
## Technical contributions
9090

91-
If you would like to make technical contributions to RDFLIb, the _main_ way to do
92-
this is via creating Pull Requests to fix bugs or add features.
91+
Contributions that involve changes to the RDFLib repository have to be made with
92+
pull requests and should follow the [RDFLib developers guide](./developers.md).
9393

9494
Please read the [RDFLib developers guide](./developers.md) for this.
9595

docs/developers.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -430,13 +430,13 @@ RDFLib 5.0.0 maintained compatibility with Python versions 2.7, 3.4, 3.5, 3.6, 3
430430

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

433-
* Updated version and date in `CITATION.cff`.
434-
* Updated copyright year in the `LICENSE` file.
435-
* Updated copyright year in the `docs/conf.py` file.
436-
* Updated main branch version and current version in the `README.md` file.
437-
* Updated version in the `pyproject.toml` file.
438-
* Updated `__date__` in the `rdflib/__init__.py` file.
439-
* Accurate `CHANGELOG.md` entry for the release.
433+
* Updated version and date in [`CITATION.cff`](../CITATION.cff).
434+
* Updated copyright year in the [`LICENSE`](../LICENSE) file.
435+
* Updated copyright year in the [`mkdocs.yml`](../mkdocs.yml) file.
436+
* Updated main branch version and current version in the [`README.md`](../README.md) file.
437+
* Updated version in the [`pyproject.toml`](../pyproject.toml) file.
438+
* Updated `__date__` in the [`rdflib/__init__.py`](../rdflib/__init__.py) file.
439+
* Updated [`CHANGELOG.md`](../CHANGELOG.md) entry for the release with admin tools as described in [`admin/README.md`](../admin/README.md).
440440

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

docs/index.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ If you are familiar with RDF and are looking for details on how RDFLib handles i
5656
* [Upgrade 6 to 7](upgrade6to7.md)
5757
* [Upgrade 5 to 6](upgrade5to6.md)
5858
* [Upgrade 4 to 5](upgrade4to5.md)
59+
* [Security Considerations](security_considerations.md)
5960

6061
## Versioning
6162

@@ -73,6 +74,8 @@ Given a version number `MAJOR.MINOR.PATCH`, increment the:
7374
* [Developers guide](developers.md)
7475
* [Documentation guide](docs.md)
7576
* [Code of Conduct](CODE_OF_CONDUCT.md)
77+
* [Persisting N3 Terms](persisting_n3_terms.md)
78+
* [Type Hints](type_hints.md)
7679
* [Decisions](decisions.md)
7780

7881
## Source Code

0 commit comments

Comments
 (0)