Heads up: master history rewritten on 2026-04-21 — re-fetch your clone
- Dominant language
- Python
- Stars
- 130
- Forks
- 48
- Avg merge
- 6h 42m
- Merged PRs (30d)
- 34
Description
**TL;DR**: `master` history was rewritten on 2026-04-21 (commits stripped of large historical artifacts). If you have a local clone, re-fetch or re-clone.
## What happened
The `cosanlab/master` branch has been rewritten via `git filter-repo` to strip ~63 MB of bloat from commit history: old notebook snapshots with embedded image outputs, stale docs builds (`docs/auto_examples/`, `scripts/nilearn_cache/`), a forgotten `dist/*.egg`, and other files that were deleted years ago but left unreachable-yet-packed bytes in `.git`.
This was done in preparation for the 0.6.0 rewrite in #453 — the install-from-git path (`pip/uv install nltools @ git+...`) was fetching nearly 200 MB for every consumer.
## Effects
- **Every commit SHA on master has changed** (except pre-2015 root commits — nothing was stripped from them).
- **The tree at HEAD is byte-identical to pre-rewrite** — no code/content changes, just fewer artifacts in old commits.
- **All release tags (v0.3.*, v0.4.*, v0.5.*) remapped** to their rewritten equivalents. `git checkout v0.5.1` still gives you the v0.5.1 tree.
- **PyPI releases unaffected** — release artifacts are independent of commit SHAs.
- **GitHub Releases pages unaffected** — release URLs and asset downloads still work.
- **nltools.org docs unaffected** — served from `gh-pages`, which was not rewritten.
- **29 long-stale feature branches deleted** (add_divide, align_bug, bug_fix, documentation, modular, more_templates, etc. — all predating the 0.6.0 effort).
## If you have a local clone
Your clone still points at old commit SHAs that are no longer reachable from any branch or tag. To sync:
```bash
git fetch --all --prune --prune-tags
git reset --hard origin/master # if you were on master
# or delete your branch and re-clone
```
Local commits/branches you made on top of old master: cherry-pick them onto the new master, or use `git rebase --onto origin/master `.
## Rollback / recovery
Full pre-rewrite state is preserved at `backup/master-pre-rewrite-20260421` (annotated tag). If you need to reference an old commit by its pre-rewrite SHA, GitHub retains unreachable commits for ~90 days — you can still fetch them directly via `git fetch origin `.
Closing this issue once things stabilize. Feel free to tag me if something breaks.
Contributor guide
Assessment
This issue has not been assessed yet.