Skip to content

gimli.units: Add version 0.4.1 - #3396

Draft
luhenry wants to merge 1 commit into
mainfrom
gimli.units
Draft

luhenry wants to merge 1 commit into
mainfrom
gimli.units

Conversation

@luhenry

@luhenry luhenry commented Oct 15, 2026 •

Copy link
Copy Markdown
Member

Cython extension that statically links vendored expat and UDUNITS-2 for object-oriented unit conversion. Upstream publishes no riscv64 wheel.

Mirrors upstream's test.yml build-wheels job, checked out at the release tag since upstream stopped publishing an sdist at 0.3.3.

Differs from upstream

  • Adds riscv64 to CIBW_ARCHS/CIBW_BUILD - upstream only builds x86_64/aarch64
  • CIBW_ENVIRONMENT repeats UDUNITS2_PREFIX and adds PIP_EXTRA_INDEX_URL - overriding it drops upstream's own value otherwise

Testing

  • same as upstream

License: wheel bundles expat (MIT) and UDUNITS-2 (free, BSD-style UCAR licence); upstream's license-files names only its own LICENSE.md, so the patch adds both.

Patches

  • 0001-pyproject-widen-license-files-to-cover-vendored-expat-udunits2.patch - To upstream. Without it neither vendored licence ships in the wheel; reproduces on every platform, not riscv64-only.

CI running on cp312/cp313/cp314, manylinux and musllinux.

Unit-conversion candidate distinct from the already-published cf-units
(SciTools/Iris climate stack): gimli.units is CSDMS's object-oriented
Cython interface to UDUNITS-2, used for generic earth-science unit
conversion rather than CF-convention data.

Builds directly from an upstream checkout (mirroring upstream's own
test.yml cibuildwheel job) since upstream stopped publishing an sdist
at 0.3.3; expat 2.6.0 and UDUNITS-2 2.2.28 are vendored under extern/
and compiled to static libs via CMake in the project's own
before-build commands, with no external dependency beyond a C
compiler and cmake (both already in the manylinux_riscv64 image) -
unlike cf-units, no EPEL workaround is needed since upstream already
builds UDUNITS-2 from source on every platform.

Widens license-files to ship the vendored expat/UDUNITS-2 notices
alongside gimli.units' own LICENSE.md, matching the netcdf4/cf-units
precedent.
@luhenry
luhenry marked this pull request as draft October 16, 2026 00:03

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant