This repository builds standalone installers for Tomviz from conda-forge packages.
| Platform | Format | Notes |
|---|---|---|
| macOS x64 | .dmg |
Unsigned — sign/notarize internally before distribution |
| macOS ARM | .dmg |
Unsigned — sign/notarize internally before distribution |
| Windows | .msi, .zip |
MSI is unsigned — sign internally before distribution |
| Linux | .tar.gz |
Relocatable bundle, extract anywhere |
| Linux (RHEL8/9) | .rpm |
Installs to /opt/tomviz; relocatable via --prefix |
| Linux | .flatpak |
Single-file bundle, org.freedesktop.Platform runtime |
All Linux formats wrap the same relocatable conda-forge bundle (package.py
conda-pack), so they stay in lockstep: the.tar.gzis the raw bundle, the.rpmdrops it into/opt/tomvizwith desktop integration, and the.flatpakcopies it into the sandbox's/app.
- Check: A scheduled GitHub Action polls conda-forge every 6 hours for new tomviz releases
- Build: When a new version is detected, it creates a conda environment with tomviz, uses
conda-packto make it relocatable, and wraps it in platform-specific bundles - Release: Uploads installers as GitHub Releases
cd packaging
conda env create -f environment.yml
conda activate tomviz-package
python package.py --tomviz-version 2.3.1
cpack --config CPackConfig.cmake # .tar.gz / .dmg / .msiBoth consume the bundle staged by package.py (_build/install/tomviz):
cd packaging
python package.py --tomviz-version 2.3.1 --python-version 3.13
# RPM (relocatable, installs to /opt/tomviz)
bash linux/build_rpm.sh --staged _build/install --version 2.3.1 --out _build
# Flatpak (single-file bundle)
bash flatpak/build_flatpak.sh --staged _build/install --version 2.3.1 --out _buildThe committed linux/tomviz.spec and flatpak/org.tomviz.Tomviz.yaml are the
configuration files required to rebuild each package (per the NSLS-II SOW).
Build + test locally via Docker (handles RHEL containers / flatpak sandbox;
uses linux/amd64 emulation on Apple Silicon):
bash packaging/linux/build_and_test_rpm_local.sh 2.3.1 3.13 # RPM on Rocky 8 + 9
bash packaging/flatpak/build_and_test_flatpak_local.sh 2.3.1 3.13 # Flatpak smoke testBoth mirror the CI tests: structural verification, install, headless smoke test under software GL, and (for the RPM) a relocation test at a non-default prefix.
Releases in this repo are built automatically for every conda-forge update, but they are not auto-published to OpenChemistry/tomviz. The macOS DMGs and Windows MSI produced by CI are unsigned, and publishing unsigned binaries to the user-facing repo would trigger Gatekeeper/SmartScreen warnings for end users.
Instead, specific releases are hand-picked, signed, and published manually:
- Pick a release from this repo's GitHub Releases page.
- Download the macOS DMGs (x64 and ARM) and the Windows MSI.
- Sign and notarize the DMGs, and sign the MSI, using the internal signing process.
- Create a matching release on
OpenChemistry/tomvizand upload the signed DMGs and MSI along with the Linux artifacts from this repo's release.