-
v0.2.1
StableAll checks were successfulCI / stable (pull_request) Successful in 1m36sCI / python bindings (3.11) (pull_request) Successful in 38sCI / msrv (1.90) (pull_request) Successful in 42sCI / audit (pull_request) Successful in 23sCI / msrv (1.90) (push) Successful in 43sCI / audit (push) Successful in 24sCI / stable (push) Successful in 1m37sCI / python bindings (3.11) (push) Successful in 39sRelease / wheel + c bundle (manylinux x86_64) (push) Successful in 1m44sRelease / build (cli + windows wheel + c bundle) (push) Successful in 2m14sRelease / publish (push) Successful in 23sreleased this
2026-09-05 08:29:21 +02:00 | 4 commits to main since this releaseAdded
- C bundles — tagged releases now attach
dm2-ffi-<ver>-x86_64-linux-gnu
and-x86_64-windows-gnuarchives, each with the cbindgen header, the shared
library, the crate README carrying theDm2Bufferownership contract, and
both licenses. The Linux one is built in the manylinux image, so it needs
only glibc 2.28. The 30-40 MB static archive is left out: it would grow the
compressed bundle elevenfold to duplicate what the shared library provides.
Changed
dm2-wasm— prepared for npm.build-npm.shbuilds the package for the
bundlertarget and publishes it under the namedm2-tools, matching the
PyPI distribution; the crate ships copies of the two licenses, which
wasm-pack bundles,build-npm.shlists infilesso npm actually packs
them, and CI diffs against the originals; andwasm-optnow optimises for
size (-Oz). CI gained awasm32-unknown-unknowncheck,
since a host build compiles the#[wasm_bindgen]layer inertly and cannot
catch a break in it.dm2-wasm— no longer published to crates.io (publish = false, and
0.2.0 deleted there). The bindings target JavaScript, which reaches them
through wasm-pack output rather than cargo, and the crates.io copy
documented nothing: docs.rs builds for x86-64, where every#[wasm_bindgen]
export is compiled out, so the page listed onlyWasmError. The crate stays
in the workspace and is built and tested exactly as before. Its unused
[workspace.dependencies]entry, which carried a version requirement no
crate consumed, is dropped.- Python bindings —
requires-pythonraised to>=3.11. 3.9 went EOL in
October 2025 and 3.10 follows in October 2026, so the old>=3.9floor
advertised runtimes that no longer get security fixes and that the suite
could not import anyway. Installing already requires a Rust toolchain to
build the cdylib, so a distro system Python was never the constraint. The
test helper now parses the manifests with the stdlibtomllibinstead of a
regex. Adds aclassifierslist so a PyPI upload carries version, platform
andTyping :: Typedtrove tags. - CI — new
pythonjob installs the bindings on a standalone CPython 3.11
(fetched by a pinned, hash-checkeduv) and runs their pytest suite, so the
declared floor and the hatchling cdylib-bundling hook are both exercised.
Previously nothing in CI touchedbindings/pythonat all. - Python bindings — the wheel is now tagged
py3-none-<platform>instead
ofcp3XX-cp3XX-<platform>. Nothing links against the CPython C API, so the
old tag demanded a separate wheel per interpreter minor for no reason; one
wheel per platform now installs on every supported Python. The build hook
also clears its_libstaging directory, which previously let a cross-built
wheel ship a second, wrong-platform library. - Python bindings — packaging metadata filled in:
[project.urls],
keywords, and the twoLICENSE-*files, which the wheel previously omitted
despite declaringLicense-Expression. - Release — tagged builds now attach Python wheels:
py3-none-manylinux_2_28_x86_64from a newwheel-linuxjob in the
manylinux image (auditwheelrelabels thelinux_x86_64tag PyPI rejects),
andpy3-none-win_amd64cross-built with mingw alongside the CLI. Wheels
only, no sdist — an sdist ofbindings/pythoncannot build, since the
cdylib it compiles lives in the cargo workspace above it. macOS and aarch64
Linux wheels are not built; seedocs/development.md. - Release — the workflow is now two build jobs feeding a
publishjob
through Forgejo'supload-artifactaction, instead of one job that built
and published in sequence. Assets are attached only once every build has
succeeded, so a failure can no longer leave a published tag missing one;
SHA256SUMS.txtcovers the wheels as well as the CLI archives; and a
workflow_dispatchrun leaves every asset downloadable from the run page.
Fixed
- Python bindings —
bindings/python/pyproject.tomlstill declared
0.1.1, so the 0.2.0 wheel carried pip metadata a version behind the
cdylib it bundles, and the suite's version assertion (hardcoded to the old
string) failed against it. The package version now tracks the workspace, and
the test derives both sides from the manifests instead of pinning a literal. - Python bindings —
tests/test_roundtrip.pyannotated a helper with a
PEP 604 union but omittedfrom __future__ import annotations, so importing
the module raisedTypeErroron the 3.9 and 3.10 thatrequires-python
claims to support. The suite only ever ran on 3.11+.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- C bundles — tagged releases now attach