`drop-dataset`: there is no way to undo `add-dataset`
- Dominant language
- Python
- Stars
- 1
- Forks
- 4
- Avg merge
- 15h 39m
- Merged PRs (30d)
- 24
Description
## What
`add-dataset` registers a source dataset × app bundle into a campaign (a statefile row per cell at a study; a catalog row + member footprint + gitlink at a superstudy).
Nothing reverses it.
The only way to remove a dataset from a campaign today is to hand-edit the statefile, which the design forbids, or to remove the member and re-add it, which takes the member's *sibling* cells down with it.
Live pressure: remove-and-re-add is currently also the only way to propagate a changed config to a member (see the config-propagation issue), so the missing verb is hit from two directions.
## What it has to decide, not design here
- A cell with derivatives already produced: drop the row and leave the derivative? Retire it (`retire-derivative --remove` / `--path`)? Refuse?
- A merged cell: same question, sharper — the derivative is registered in the study and may be published.
- At a superstudy: the catalog row, the member's footprint (`.mechababs/campaigns//`), the gitlink the super records, and a member that has since been pushed and uninstalled (not present locally, so nothing to edit in it).
- Whether `drop-dataset` is one verb with modes or several (drop-from-campaign vs retire-derivative already covering the data half).
## Constraints already in force
- `add-dataset` is a labeled plain save, not a `datalad run` record, because it resolves against the live world; the inverse is the same kind of act.
- The single-writer flock at the operated level covers it like every other mutating verb.
- No data removal without an explicit flag, per the `retire-derivative --remove` carve-out on the never-removes-data non-goal in `docs/spec.md`.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the existing add-dataset and retire-derivative entry points, then read docs/spec.md for the data-removal constraint. Trace the study and superstudy state described in the issue, including derivatives, merged cells, catalog rows, footprints, and gitlinks. Done means the inverse operation and its handling of each listed case are defined without relying on hand-editing or remove-and-re-add.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 28/100