Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Repository bloated (~100MB+ clone) by committed Rust native build artifacts

Chiusa
#647 0 commenti 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
30/100
Tipo di issue
Refactoring
Chiarezza
Specificata chiaramente
Stato di attività
Tranquilla
Stack tecnologico
git, rust

Direzione di ricerca

Inizia dai percorsi tracciati ios/tc_helper.xcframework/, android/app/src/main/jniLibs/ e android/main/app/src/main/jniLibs/, quindi leggi rust/README.md, rust/build_android.sh e rust/build_ios.sh. Controlla il lavoro di pulizia in sospeso prima di modificare qualsiasi cosa. Il lavoro è completato quando i binari generati non sono più tracciati né rigenerati accidentalmente e il maintainer ha esaminato separatamente la riscrittura della cronologia di git-filter-repo.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Problem

A fresh clone of this repository is 100MB+, and .git alone is ~129MB. The
bloat comes almost entirely from compiled native libraries that are checked
into git
. These are build outputs of the rust/ crate (tc_helper) and are
fully regenerable, so they should never have been committed.

Where the size comes from

Largest blobs across history (git rev-list --objects --all | git cat-file --batch-check):

Blob Approx size (per copy) Copies in history
ios/tc_helper.xcframework/.../ios-arm64_x86_64-simulator/.../tc_helper ~48 MB 3
android/app/src/main/jniLibs/arm64-v8a/libtc_helper.so ~29–30 MB 3
ios/tc_helper.xcframework/ios-arm64/.../tc_helper ~23 MB 3
android/app/src/main/jniLibs/armeabi-v7a/libtc_helper.so ~21 MB 2
android/main/app/src/main/jniLibs/arm64-v8a/libtc_helper.so (stray path) ~9 MB 1
android/app/src/main/jniLibs/**/libcrc_fast-*.so small a few

All of these are produced by building the rust/ crate (cargo ndk for
Android, an xcframework build for iOS). They are not source.

Proposed fix (two parts)

Part 1 — stop tracking them going forward (PR, mergeable now)

A PR is on the way that:

  • removes the tracked binaries from the working tree,
  • git-ignores android/app/src/main/jniLibs/ and ios/tc_helper.xcframework/,
  • documents and scripts how to regenerate them (rust/build_android.sh,
    rust/build_ios.sh, plus updated rust/README.md).

This stops future bloat but does not shrink existing clone size on its
own, because the old blobs still live in history.

Part 2 — reclaim existing history (maintainer action, force-push)

To actually shrink the repo, the historical blobs must be stripped, which
rewrites every commit SHA and requires a force-push to main. This cannot
be done via a normal PR — only a maintainer can do it. Recommended procedure
using git-filter-repo:

# Work on a fresh mirror clone so nothing local is at risk.
git clone --mirror https://github.com/CCExtractor/taskwarrior-flutter.git
cd taskwarrior-flutter.git

# Strip the build-artifact paths from ALL history.
git filter-repo \
  --invert-paths \
  --path ios/tc_helper.xcframework \
  --path android/app/src/main/jniLibs \
  --path android/main/app/src/main/jniLibs

# Inspect the result (repo size, history) before pushing.
git count-objects -vH

# Publish the rewritten history (overwrites all refs on the remote).
git push --force --mirror

A size-based alternative that catches any other stray binaries:
git filter-repo --strip-blobs-bigger-than 5M (verify it doesn't drop
legitimate assets such as fonts or app icons first).

Caveats for Part 2 — please read before running:

  • Every commit SHA changes. All open PRs must be rebased/recreated, and every
    fork diverges and must re-sync (or re-fork).
  • Best done right after the Part 1 PR is merged, and ideally announced to
    contributors in advance.
  • GitHub keeps old objects reachable for a while; you may want to ask GitHub
    Support to run gc afterward to fully reclaim space on the remote.

Happy to adjust the PR or the rewrite paths as needed.

Lingua principale
Dart
Stelle
244
Fork
179
Merge medio
20m
PR unite (30g)
3

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di CCExtractor/taskwarrior-flutter

Tutte le issue di CCExtractor/taskwarrior-flutter

Issue simili

Altre issue su Dart

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.