ci: drop redundant release test run + patch bart26g Dependabot vulns#84
Merged
Conversation
Tests are already gated on PRs by ci.yml (required fast check) and nightly (full suite). Re-running the fast suite on the merge-to-main push duplicated cost without adding signal, so the release workflow now publishes and deploys docs without re-testing. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
All 18 open Dependabot alerts were in the bart26g/ paper subproject lockfile (none in the shipped spotoptim package). Bump vulnerable transitive deps to patched versions: idna 3.11->3.17, mistune 3.2.0->3.2.1, urllib3 2.6.3->2.7.0, jupyterlab 4.5.6->4.5.7, notebook 7.5.5->7.5.6, jupyter-server 2.17.0->2.19.0. Also restamps the main uv.lock spotoptim version (0.12.1->0.12.4) to match pyproject. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
objective_remote() called requests.post() with no timeout. When the remote server is unreachable and packets are dropped (as on GitHub runners, vs an immediate connection-refused locally) the socket hangs indefinitely — the fast test suite ran 20+ minutes instead of ~1 and had to be cancelled. Add a default (connect, read) timeout of (10, 120)s, exposed as a `timeout` parameter. Defense in depth: set pytest-timeout's global timeout=300 so no single test can hang the suite, and mark the networked test_objective_remote as slow so the fast PR gate skips it (the nightly full run still exercises it, now bounded by the timeout). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The fast suite took ~52 min on CI while running ~48s locally. Cause: pytest-xdist (-n auto) starts one worker per core, and each worker's numpy/scipy/torch BLAS pool also spawned threads-per-core, so tiny linear-algebra tests thrashed (67-83s for tests that are <1s locally — a ~65x systemic slowdown). Pin OMP/OPENBLAS/MKL/NUMEXPR/VECLIB thread pools to 1: as a top-level env block in ci.yml (guaranteed before any process starts) and via os.environ.setdefault at the top of tests/conftest.py (so local runs and the pre-push hook benefit too, before numpy is imported). This does not affect SpotOptim's own n_jobs/thread-pool parallelism, only native BLAS threads. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Context
Follow-up to #83. Two issues surfaced right after that merge:
maintriggered the Release workflow, which re-ran the fast test suite that the PR's CI check had just run. Two parallel runs testing the same code on the same commit — wasted minutes on the publish path with no added signal.1. Reduce CI/Release redundancy (
release.yml)Why it's safe to remove: tests are already gated on every PR by
ci.yml(the required fast check) and run in full nightly. The Release pipeline only runs onpushtomain, i.e. after a PR merged green — so re-testing the merge commit duplicated work.release.ymlnow publishes and deploys docs without re-testing.2. Patch Dependabot vulnerabilities (
bart26g/uv.lock)All 18 alerts were in the
bart26g/paper subproject lockfile (a Quarto/arXiv manuscript with its own jupyter-based deps) — none in the shippedspotoptimpackage. Bumped the vulnerable transitive deps to patched versions:Dependabot re-scans
bart26g/uv.lockonce this lands onmainand should close all 18 alerts. Also restamps the mainuv.lockspotoptimversion0.12.1 → 0.12.4to matchpyproject.toml(the lock had drifted after the semantic-release bump).Commit types
ci:andchore(deps):— neither triggers a semantic-release version bump.🤖 Generated with Claude Code