cosanlab / cosanlab/nltools

Heads up: master history rewritten on 2026-04-21 — re-fetch your clone

Open
#454 0 comments 0 reactions 0 assignees View on GitHub
0.6.0
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.