Python installation and compatibility¶
Release status
Tip 0.13.0 is the current package version. Pin as shown below, or build from a git checkout for unreleased tip APIs.
Supported runtime¶
| Component | Support |
|---|---|
| Interpreter | CPython 3.10, 3.11, 3.12, 3.13, and 3.14 |
| Operating system | Linux, macOS, and Windows wheel targets built in CI |
| Architecture | The architecture encoded by an available PyPI wheel |
| Python dependencies | None required at runtime |
| Static typing | Bundled py.typed marker and .pyi declarations |
| Package format | Binary wheel only; no source distribution on PyPI |
Each release wheel is installed and imported on its matching Python version in
CI. Compatibility means a wheel exists for the exact Python, operating-system,
and architecture tags selected by pip.
Recommended installation¶
Create an isolated environment and upgrade pip before installing:
Confirm the installed runtime before deployment:
import oxiland
assert tuple(map(int, oxiland.__version__.split("."))) >= (0, 12, 0)
assert oxiland.Model().backend == "memory"
Reproducible application builds¶
Pin Oxiland in the same lock or constraints workflow as the rest of the application:
For environments that require artifact integrity, download the wheel and
SHA256SUMS from the matching GitHub release, verify the checksum, and retain
the GitHub build-provenance attestation with deployment evidence. You can also
generate hashes with your dependency-locking tool and install with pip hash
checking. Do not copy a wheel between platforms based only on the version
number; wheel tags include the CPython ABI, operating system, and architecture.
When building containers, resolve dependencies for the image's actual platform and libc environment. A wheel downloaded for macOS, Windows, or a different Linux architecture is not portable to the container.
Diagnosing installation failures¶
Use verbose pip output to see which tags were considered:
Common causes are:
- running PyPy instead of CPython;
- using Python older than 3.10 or newer than the published matrix;
- targeting an architecture for which no wheel was published;
- using an old
pipthat does not recognize the wheel's platform tag; - forcing source-only installation with
--no-binary.
Because published packages are wheels only (no source distribution), pip
should not compile Oxiland as a fallback. On an unsupported target, choose a
supported runtime or build from a repository checkout.
Building from a checkout¶
Source builds are a contributor and platform-porting workflow—and the way to evaluate tip APIs before a PyPI tag. They require a Rust toolchain, Maturin, and the repository source:
git clone https://github.com/eddiethedean/oxiland.git
cd oxiland/python
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip maturin
maturin develop --release
python -c "import oxiland; print(oxiland.__version__)"
See Contributing for the complete test and quality-check workflow. Application users installing a published wheel do not need Maturin, Cargo, or a Rust compiler.
Upgrades¶
Read the changelog before changing minor versions. Oxiland is pre-1.0, so a minor release may contain documented API changes. See also the upgrading guide. Persistent deployments should follow the upgrade runbook.