Repository navigation
task image: install the modules benchmark discovery lacks and retry discovery - #53
Merged
Merged
Conversation
… install it and retry Discovery errors name the module (No module named X, pandas optional deps, geopandas spatial index). Up to 3 rounds; installs pin every installed version and prefer releases from before the base commit date. Folders in the repo that ship the module (MDAnalysis testsuite) are installed editable. What was added is written to added_deps.json and lsv_init_results.json.
ArjunS07
merged commit Oct 8, 2026
2ff4722
into
survey/phase1-template-20261008
0 of 3 checks passed
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.
Purpose
58 survey tasks end
base_edited: the task image already has edits in a file that the oracle patch changes. All 58 edits come from the per-task build scripts that are stored with the base image (docker_build_pkg.shfor 57,docker_build_run.shfor wmayner/pyphi#127). For 38 tasks the script makes a speed change in the code the task targets. In 25 of them most added lines are equal to the oracle's lines, so the starting tree is already partly solved. This change lets a task image start from the base commit for those files, without a rebuild of the Docker Hub base image.How it works
flowchart LR A[formulacode/repo:pr<br/>tree edited by the stored build script] --> B[task Dockerfile:<br/>git checkout HEAD -- listed files] B --> C[rebuild.sh<br/>same command as rebuild-repo] C --> D{listed files<br/>still edited?} D -- yes --> E[build fails] D -- no --> F[LSV baseline, scrub_git, ...]base_restore.jsonmaps a task id to the repo files to restore.regen renderreads it by default. A task that is not in the file renders the same Dockerfile and the same environment files as before (checked byte for byte), so no other task image changes.Changes
template/environment/restore_base.sh(new). Runsgit checkout HEAD -- <paths>, adds apkg_resourcesmodule from pip's vendored copy when the env has none, runsrebuild.sh, and fails if a listed path is still edited.template/environment/Dockerfile. A step that runsrestore_base.shbefore the LSV baseline, only when the task has restore paths.adapter.py,utils.py.generate_task(restore_paths=...)andrender_dockerfile(restore_paths=...); paths are shell-quoted.restore_base.shandrebuild.share copied intoenvironment/only for those tasks.regen.py.--restore-paths FILE(defaultbase_restore.json;''turns it off).base_restore.json(new). 50 tasks: 38 with a speed change (25 own oracle, 12 speed changes written by the build agent or backported, 1 change from another PR: optuna#5496) and 12 with a compatibility edit that touches an oracle hunk or makes the oracle patch fail.Verification
pytest tests/docker/test_restore_base.py tests/docker/test_harbor_adapter_render.py tests/docker/test_scrub_git.py: 11 passed. The new tests check that the render without paths is unchanged, the step comes before the baseline,regenreads the file, and the script restores only listed files and fails when the rebuild fails or edits a file again.docker run, no image build):formulacode/deshaw-versioned-hdf5:330versioned_hdf5/backend.py.rejformulacode/numpy-numpy:9470numpy/lib/arraysetops.py.rejformulacode/tiledb-inc-tiledb-py:842tiledb/core.ccrebuild.shcannot findtiledb/tiledb.hThe TileDB-Py#842 result is correct behavior for this step: the agent's
rebuild-repocommand fails the same way in that image, so the task cannot be rebuilt and stays out.Notes
/overflow/arjun/survey/salvage/base_edited_plan.tsv._version.py, versioneer, Cython output).base_editedrule) is formula-code/formulacode-verified-rl#130.