Skip to content

Repair the update_analysis3 CD job before the 1.8.0 tag - #678

Merged
rbeucher merged 1 commit into
mainfrom
fix/analysis3-update-job
Aug 27, 2026
Merged

Repair the update_analysis3 CD job before the 1.8.0 tag#678
rbeucher merged 1 commit into
mainfrom
fix/analysis3-update-job

Conversation

@rbeucher

Copy link
Copy Markdown
Member

The analysis3 update has never worked. Every CD run since the job was added ends the same way — pypi success, conda success, update_analysis3 failure — which is why the environment has been bumped by hand after each release, and presumably why the manual fallback was written into the release guide in #673.

moppy-v1.8.0rc1   success   (job skipped by design)
moppy-v1.7.20b    failure
moppy-v1.7.19b    failure
moppy-v1.7.18b    failure
...
moppy-v1.7.2b     failure

moppy-v1.8.0rc1 passed only because the new gating skips the job for a pre-release. On the moppy-v1.8.0 tag it runs for real, and would have failed.

Two bugs, one masking the other

1. A file that does not exist. The job staged environments/analysis3/solved.json. That file is not in ACCESS-Analysis-Conda — the directory holds pixi.toml, pixi.lock and environment.yml. rebuild-env is pixi workspace export conda-environment --from-lock-file > environment.yml with depends-on = ["ensure-locked"], so pixi run re-solves pixi.lock against the edited pixi.toml and exports environment.yml from it. Those three files are the whole change. Staging a fourth aborts the step:

fatal: pathspec 'environments/analysis3/solved.json' did not match any files
##[error]Process completed with exit code 128.

Identical output from moppy-v1.7.2b through moppy-v1.7.20b.

2. An unterminated if. The git diff --cached --quiet block never closed. Extracting the step and running bash -n:

syntax error: unexpected end of file from `if' command on line 21

This has never been seen because git add kills the job four lines earlier. Fixing only the pathspec would have moved the failure one line down. Every run: block in the workflow now passes bash -n.

Also

  • Drops solved.json from the manual procedure in releasing.rst and from the body of the PR the job opens against ACCESS-Analysis-Conda, so both match what rebuild-env actually regenerates.
  • Adds a moppy-v1.8.0 (unreleased) changelog entry. The date needs setting when you tag — I left it as (unreleased) rather than guess when that happens.

Docs build clean, no new warnings.

After merging

Tag moppy-v1.8.0 and watch update_analysis3 — it should open a PR in ACCESS-Analysis-Conda titled Bump access-moppy to 1.8.0 in analysis3 env. That will be the first time it has ever run to completion, so it is worth watching rather than assuming.

🤖 Generated with Claude Code

The analysis3 update has never worked. Every CD run since the job was added
has ended `pypi` success, `conda` success, `update_analysis3` failure, which
is why the environment has been bumped by hand after each release and why the
manual fallback exists in the release guide.

The job staged environments/analysis3/solved.json, which does not exist in
ACCESS-Analysis-Conda. `pixi run rebuild-env` re-solves pixi.lock against the
edited pixi.toml and exports environment.yml from it; those three files are
the whole change. Staging a fourth aborted the step with `fatal: pathspec
'environments/analysis3/solved.json' did not match any files`, exit 128,
identically from moppy-v1.7.2b through moppy-v1.7.20b.

Behind it the `git diff --cached --quiet` block was missing its closing `fi`.
That is a syntax error the earlier failure had been masking: fixing only the
pathspec would have moved the failure one line down. Every `run:` block in the
workflow now passes `bash -n`.

This did not affect moppy-v1.8.0rc1, where the job is skipped by design, but
it would have broken the moppy-v1.8.0 tag, where it runs for real.

Also drops solved.json from the guide's manual procedure and from the body of
the PR the job opens.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@rbeucher
rbeucher merged commit 832dbb4 into main Aug 27, 2026
2 checks passed
@codecov

codecov Bot commented Aug 27, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 78.2%. Comparing base (f2307f7) to head (a1dce61).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@          Coverage Diff          @@
##            main    #678   +/-   ##
=====================================
  Coverage   78.2%   78.2%           
=====================================
  Files         40      40           
  Lines       8827    8827           
  Branches    1665    1665           
=====================================
  Hits        6901    6901           
  Misses      1591    1591           
  Partials     335     335           
Flag Coverage Δ
unit 78.2% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant