From b3b96b134a0dc03a651bb561bf0eef105041e24d Mon Sep 17 00:00:00 2001 From: Anthony Cueva Date: Tue, 3 Nov 2026 15:56:09 -0500 Subject: [PATCH] ci: reserve expensive build qualification for releases --- .github/workflows/python.yml | 3 +++ AGENTS.md | 11 +++++++++++ 2 files changed, 14 insertions(+) diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index d61c101..461f6ad 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -42,6 +42,7 @@ jobs: PYTHON wheels: + if: github.event_name == 'workflow_dispatch' || startsWith(github.ref, 'refs/tags/python-v') name: ${{ matrix.target }} / CPython abi3 needs: metadata strategy: @@ -112,6 +113,7 @@ jobs: python -c 'from hyper_viz import HifDocument; assert "s:a" in HifDocument.from_json("{\"incidences\":[{\"node\":\"a\",\"edge\":\"e\"}]}").to_hypergraph_json()' sdist: + if: github.event_name == 'workflow_dispatch' || startsWith(github.ref, 'refs/tags/python-v') name: Source distribution needs: metadata runs-on: ubuntu-latest @@ -146,6 +148,7 @@ jobs: desktop: + if: github.event_name == 'workflow_dispatch' || startsWith(github.ref, 'refs/tags/python-v') name: ${{ matrix.target }} / desktop viewer needs: metadata strategy: diff --git a/AGENTS.md b/AGENTS.md index 9ff81d6..a4ff69e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -53,3 +53,14 @@ cargo run --locked -p hyper-viz --example project_scene # headless, no window The first release build can take several minutes. [CONTRIBUTING.md](CONTRIBUTING.md) is authoritative for the test, clippy, fmt, and Python checks a change must pass, and for what belongs in this repository. + +## Hosted build costs + +Keep ordinary Rust/browser CI and Python package-version checks on PRs. The +Python wheel, source-distribution and desktop platform matrices run only on +`python-v*` tags or explicit manual dispatch of `python.yml`. Installed-viewer +integration still requires both native wheel matrices. Run applicable local +checks from CONTRIBUTING.md before merging and record results in the PR. +Before publishing, qualify the intended release source on every supported +platform. Manual qualification never publishes to PyPI; publication keeps its +existing tag-only condition and environment approval.