Background
The Tests workflow on main intermittently fails at the Install mighty step due to transient PyPI download errors — e.g. run 28341762815 failed while downloading pufferlib==2.0.6 (stream error received: unspecific protocol error detected) and passed on a plain re-run. The tests themselves never ran. This is a CI/dependency robustness problem,.
These overlap with the dependency-sweep feedback from the JOSS review (#122, #123 context).
Items
Background
The
Testsworkflow onmainintermittently fails at the Install mighty step due to transient PyPI download errors — e.g. run 28341762815 failed while downloadingpufferlib==2.0.6(stream error received: unspecific protocol error detected) and passed on a plain re-run. The tests themselves never ran. This is a CI/dependency robustness problem,.These overlap with the dependency-sweep feedback from the JOSS review (#122, #123 context).
Items
No file matched to [**/uv.lock,**/requirements*.txt]. The cache will never get invalidated.Without a lockfile the uv cache never persists deps, so every run re-downloads from PyPI — which is why a single flaky download fails the whole job. Adding a committeduv.lockwould make installs cached, reproducible, and flake-resistant.pufferlibinstall.pufferlib==2.0.6bundles large binary assets (e.g.resources/nmmo3/merged_sheet.png) whose download intermittently truncates. Consider install retries and/or makingpufferliban optional CI path so a transient pufferlib download can't fail the core test job.actions/checkout@v4,actions/setup-python@v5, andastral-sh/setup-uv@v5are being force-run on Node 24; bump to current major versions.set-outputcommand used in the workflow — migrate to$GITHUB_OUTPUTenvironment files.