9011250f99
Enhance the documentation in PACKAGING.md and PLATFORMS.md to clarify the supported Python versions and platforms for wheel and source distribution releases. Update the CI workflow in CI.yml to include separate jobs for building wheels on Linux, macOS, and Windows, as well as a job for building the source distribution. Ensure that the publish job verifies the presence of expected distributions before publishing to PyPI.
29 lines
954 B
Markdown
29 lines
954 B
Markdown
# Packaging and distribution
|
|
|
|
This document describes how ferro-ta is packaged and published.
|
|
|
|
## PyPI (pip)
|
|
|
|
Wheels are built by CI on release (see [RELEASE.md](RELEASE.md)).
|
|
Release publishing currently targets CPython 3.10, 3.11, 3.12, and 3.13 on:
|
|
|
|
- Linux x86_64 (`manylinux_2_17` / `manylinux2014`)
|
|
- macOS universal2 (covers Intel and Apple Silicon)
|
|
- Windows x86_64
|
|
|
|
Each release also publishes a source distribution (`sdist`) so compatible
|
|
environments outside the wheel matrix can still build from source.
|
|
|
|
Publishing uses PyPI Trusted Publishing via GitHub OIDC; no long-lived PyPI API
|
|
token is required.
|
|
|
|
Supported platforms and Python versions are documented in [PLATFORMS.md](PLATFORMS.md).
|
|
|
|
## npm (WASM)
|
|
|
|
The Node.js / browser WASM package is published to npm by the **wasm-publish** workflow on release.
|
|
|
|
## crates.io (Rust)
|
|
|
|
The pure-Rust library `ferro_ta_core` is published to crates.io by the CI job **publish-cratesio** on release.
|