con / con/mechababs

Drop the temporary datalad pin once a release carries datalad/datalad#7904

Open
#146 1 comment 0 reactions 0 assignees View on GitHub
automation blocked upstream
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.