Drop the temporary datalad pin once a release carries datalad/datalad#7904
- Dominant language
- Python
- Stars
- 1
- Forks
- 4
- Avg merge
- 15h 39m
- Merged PRs (30d)
- 24
Description
## What
Every campaign env pins datalad to a commit on the canonical repo (`DATALAD_PIN` in `campaign_init.py`, the head sha of datalad/datalad#7904), promoted to a direct dependency of the generated campaign `pyproject.toml`.
The pin exists because released datalad 1.6.2 crashes in `save._inject_sub_info` when a `datalad run` command commits inside a subdataset that sits below a plain directory (our `derivatives/`), which kills every merge transition after the work is done and before the record is written.
No released datalad escapes it: 1.4 silently loses the run record in the same case instead of crashing.
Blocked on: a datalad release that carries datalad/datalad#7904 (still open at filing time).
## Removal sites
1. `mechababs/campaign_init.py`: the `DATALAD_PIN` constant and its `TEMPORARY PIN` comment block.
2. Same file, `render_pyproject`: drop `"datalad"` from the direct `deps` list and the `sources = {"datalad": DATALAD_PIN}` seeding, so datalad goes back to transitive via the `>=1.6` floor.
3. `tests/test_campaign_init.py`: delete `test_datalad_is_pinned_to_the_run_fix_branch` (marked TEMPORARY).
4. `pyproject.toml` (mechababs' own): raise the `datalad>=1.6` floor to the first release carrying the fix.
A bare `>=1.6` would still let a campaign resolve the broken 1.6.2.
## Why the pin is shaped the way it is
Pin the canonical repo at a sha, not the fork branch: `asmacdo/datalad` carries no tags, so a checkout of it versions below every dependency floor and breaks the lock (babs's `datalad>=0.17.2`).
A sha on `datalad/datalad.git` sees upstream's tags and versions correctly.
## Same shape
The e2e conftest's `DEFAULT_BABS` pins babs to git main until a babs release carries `PennLINC/babs#399`; drop both the same way.
Contributor guide
No contributing guide indexed for this repository
Research direction
First verify that a datalad release carries datalad/datalad#7904. Then update mechababs/campaign_init.py, tests/test_campaign_init.py, and pyproject.toml as listed, and inspect the e2e conftest's DEFAULT_BABS for the matching cleanup. Done means the temporary datalad pin and test are removed, the dependency floor targets the fixed release, and campaigns resolve datalad transitively.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- tooling
- Issue type
- Refactor
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 52/100