feat!: require Python 3.14 for the paperspec package
The specification pins the Unicode 16.0 character data (spec/01 §1.4), which Python 3.14 is the first to ship; Python 3.12 has 15.0 and 3.13 has 15.1, so text with characters added in 16.0 could normalize differently there. The tools already required 3.14; the package now does too. - pyproject.toml: requires-python >= 3.14, with the 3.14 classifier. - The package and tools docstrings, tools/README.md and the changelog say 3.14 instead of 3.12. pixi.lock still needs `pixi lock` (see the previous commit); its paperspec entry also records the old requires-python. pixi run check passes; no computed value changed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
5 files changed
+7
-5
No files matched your search
+1
-1
@@ -69,7 +69,7 @@ A node's five values depend only on its own subtree, so after a correction the o
|
||||
|
||||
Other repositories of the project do not reimplement the specification: they install this repository as the Python package `paperspec` (`pip install .`, or a git pin) and import the oracle from it, so that every key, identifier, canonical JSON string, package check and database form comes from one piece of code.
|
||||
The library surface they use is `keys`, `text`, `jcs`, `package`, `db`, `schema` and `rights`, with the schemas, SQL and vectors as package data (`importlib.resources.files("paperspec") / "sql" / "doc.sql"`).
|
||||
Those modules run on Python 3.12 with the standard library alone, except that `schema` needs `paperspec[schema]` (`jsonschema` and `referencing`) and the HKDF and Ed25519 functions of `crypto` need `paperspec[crypto]`; `paperspec[tools]` installs both.
|
||||
Those modules need Python 3.14, the first with the Unicode 16.0 character data the specification pins, and otherwise only the standard library, except that `schema` needs `paperspec[schema]` (`jsonschema` and `referencing`) and the HKDF and Ed25519 functions of `crypto` need `paperspec[crypto]`; `paperspec[tools]` installs both.
|
||||
The package version comes from git tags through setuptools-scm, and `pixi run -e dev wheel` builds the wheel into `dist/`.
|
||||
When `scienting-core` exists it takes this role behind the same vectors, and the import changes without any computed value changing.
|
||||
Independent implementations follow the [specification](../spec/README.md) and test themselves against the [vectors](../vectors/README.md).
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
Importing this package checks that the tools can run here, and puts `src/` first on the path, so that
|
||||
`import paperspec` gets this checkout's reference implementation rather than an installed copy.
|
||||
The tools need Python 3.14 and the packages `cryptography` and `jsonschema`; the `paperspec` package
|
||||
itself does not, and other programs install it on its own.
|
||||
itself needs Python 3.14 but neither package, and other programs install it on its own.
|
||||
"""
|
||||
|
||||
import importlib.util
|
||||
|
||||
Reference in new issue
Block a user