Installation
pyproject.toml is the authoritative Python package metadata/build configuration. The small setup.py file exists only to register the native setuptools build hook.
The accepted native-wheel baselines cover CPython 3.9–3.14 on Linux x86_64 (manylinux_2_28_x86_64), macOS arm64 and x86_64 (macosx_11_0_*), and Windows AMD64 (win_amd64). 0.6.89.5 — PYPI_CROSS_PLATFORM_RELEASE_CLOSURE rebuilds those accepted profiles under one release version so PyPI can select the appropriate wheel automatically for pip install xstar-tools. The frozen science revision and public ABIs are unchanged.
The PyPI Linux, macOS, and Windows binary profiles omit the optional standalone Python-embedding plugin so distributable wheels do not acquire a Python-runtime library dependency. The default source/native installation profile remains full. Python-driven zone-cpp, the public C API, xstar-cpp, and XSTAR2XSPEC executables remain present. MPI remains opt-in and atdb.fits remains external. Package metadata uses the SPDX expression GPL-3.0-only and ships the GNU GPL Version 3 LICENSE file. Native macOS and Windows release wheels are built/tested on GitHub-hosted runners; local access to those operating systems is not required.
Python package installation
For a released package:
python -m pip install xstar-tools
For a source archive or checkout:
python -m pip install .
A Python-only installation is explicit:
XSTAR_TOOLS_NATIVE=off python -m pip install .
To require native compilation instead of allowing fallback:
XSTAR_TOOLS_NATIVE=required python -m pip install .
The native packaging hook stages xstar-cpp, xstar-xspec-initable, xstar-xspec-table, and xstar-xspec plus their platform-native shared libraries. It does not stage xstar-xspec-mpi, and it does not bundle atdb.fits.
XSTAR_TOOLS_NATIVE_JOBS=N controls Make parallelism used by the Python build hook.
The wheel/packaging policy is separate from the direct native source-build qualification described below; do not infer source-build support from an older wheel-policy milestone.
Conda packaging
0.6.90.1 — CONDA_NATIVE_HOST_QUALIFICATION qualifies the refreshed conda-forge v1 recipe natively on Linux x86_64, macOS arm64, and macOS Intel x86_64. CFITSIO is resolved from the conda environment rather than vendored. MPI, the standalone Python-embedding plugin, and atdb.fits are not part of the ordinary conda package. Windows conda packages are not supported. Windows native support remains on the accepted PyPI/MSYS2 UCRT64/MinGW-w64 path; MSVC and Windows MPI are not planned.
The public conda-forge package is available now. Install with:
conda install -c conda-forge xstar-tools
The current feedstock release is based on the published PyPI 0.6.89.5 source; 0.6.90.1 is the host-qualification/source milestone and is not assumed to exist on PyPI.
Native source builds
The current accepted source tree is qualified on four non-MPI hosts:
Platform |
Toolchain |
Status |
|---|---|---|
Linux x86_64 |
GCC / GNU Make |
ACCEPT |
macOS arm64 |
Apple Clang / GNU Make |
ACCEPT |
macOS x86_64 |
Apple Clang / GNU Make |
ACCEPT |
Windows x86_64 |
MSYS2 UCRT64 / MinGW-w64 GCC / GNU Make |
ACCEPT |
The accepted portability baseline is 0.6.88.6.1.2.1.
Linux
Typical prerequisites are:
a C++17 compiler;
GNU Make;
Python development support /
python3-config;CFITSIO development headers/libraries;
pkg-config.
On Debian/Ubuntu, CFITSIO development files are normally provided by libcfitsio-dev.
Build:
make -C src/xstar_tools/xstar/cpp -j4 PLATFORM=linux
macOS
Install:
brew install cfitsio pkg-config
Build:
make -C src/xstar_tools/xstar/cpp -j4 PLATFORM=macos
The qualified macOS build uses Apple Clang, .dylib libraries, @rpath install names, and @loader_path sibling discovery.
Windows
Use an MSYS2 UCRT64 terminal. The accepted dependency set and detailed build/run instructions are in Windows native installation and usage.
The normal build is:
make -C src/xstar_tools/xstar/cpp -j4 PLATFORM=windows
Windows MPI is not part of the accepted Windows contract.
Optional MPI build
MPI is not part of the normal build. On an MPI-capable Linux/HPC environment:
make -C src/xstar_tools/xstar/cpp mpi
or:
make -C src/xstar_tools/xstar/cpp xstar-xspec-mpi
The wrapper can be overridden with MPICXX=/path/to/mpic++.
Editable development checkout
python -m pip install -e '.[dev]'
For documentation dependencies:
python -m pip install -e '.[docs]'
Verify the installation
xstar-tools version
xstar-tools backends
xstar-tools doctor
For native binaries:
src/xstar_tools/xstar/cpp/xstar-cpp --version
src/xstar_tools/xstar/cpp/xstar-cpp --abi
Atomic data is separate
atdb.fits and coheat.dat are not silently downloaded as part of a normal model run. See Atomic-data setup for explicit setup and discovery precedence.