Hatch

  • Vlastný produkt
  • Beta
  • Windows
  • macOS
  • Linux

Rýchly správca závislostí a buildov pre Flutter napísaný v Ruste.

Hatch

O projekte

Hatch je nástroj príkazového riadka, ktorý číta malý manifest, paralelne rieši graf závislostí z pub.dev, ukladá ich do globálnej cache a pripína verziu Flutter SDK cez FVM. Je to jeden statický binárny súbor rozšíriteľný pluginmi, s licenciou MIT alebo Apache-2.0.

Čo Hatch robí

  • Paralelný PubGrub resolver pre balíky z pub.dev.
  • Odstraňuje z balíkov súbory, ktoré build nepotrebuje, a ukladá ich do globálnej cache zdieľanej všetkými projektmi na stroji.
  • Povinne overuje kontrolné súčty SHA-256.
  • Pripína verziu Flutter SDK cez FVM.
  • Skripty v manifeste a systém pluginov.
  • Plugin hatch-ios, ktorý je zatiaľ čiastočne funkčný, má zostaviť, podpísať a nahrať iOS aplikáciu do TestFlightu aj bez Macu.

Príkazy

  • Projekt: init, migrate (z pubspec.yaml do hatch.json), install, add, remove, update, why a run pre skripty.
  • Nástroje: fvm (list, use, install, sync), sdk-update, cache stats, cache prune a cache clear, plugin install, list a remove.
  • Prepínače: -v až -vvv, -q, --profile, --project-dir a --allow-unchecksummed.
  • Plugin ios: ios build --sign --upload.

Rýchlosť

Rýchlosť vychádza z piatich techník: cache podľa hashu manifestu, intervalová propagácia, ktorá preskočí plné riešenie pri bezkonfliktných závislostiach, paralelné sťahovanie metadát, paralelné riešenie nezávislých podgrafov a PubGrub pre zvyšok. Benchmarky sú v adresári benches/ v repozitári.

Aké problémy rieši

  • Pomalé riešenie závislostí, vďaka paralelnému resolveru a cache.
  • Nafúknuté balíky s adresármi example, test, doc a CI: Hatch ich pri rozbalení odstráni. Dá sa to vypnúť cez HATCH_DEBLOAT=0 alebo doladiť pre balík v súbore .hatch.json.
  • Duplicitné kópie balíkov v každom projekte, vďaka zdieľanej cache, ktorú možno presunúť cez HATCH_CACHE_DIR.
  • Rozdielne verzie na rôznych strojoch a v CI, vďaka FVM, súboru zámku a deterministickému riešeniu.
  • Neoverené sťahovania a nedôveryhodné skripty závislostí: povinný SHA-256 a potvrdenie pri prvom spustení, CI skripty štandardne zamieta.
  • Prihlasovacie údaje mimo manifestu: ukladajú sa do súboru hatch_auth.json mimo gitu alebo do premenných HATCH_NEST_*.

Stav

Hatch je zverejnený vo verzii 0.2.0 s licenciou MIT alebo Apache-2.0. Zdrojový kód a inštalačné balíky pre Windows, macOS a Linux sú na GitHube. Funguje riešenie z pub.dev, závislosti na lokálne cesty, odstraňovanie nepotrebných súborov, správa cache, kontrolné súčty, FVM, migrácia a skripty. Čiastočne funguje register pluginov, iOS build bez Macu a profily. Závislosti z gitu a súkromný register sú v pláne.

Technológia

Nástroj je napísaný v Ruste ako jeden statický binárny súbor.

Galéria

Použité technológie

Rust

Máte podobný projekt?

Kontaktujte nás a porozprávame sa o vašich nápadoch.

Kontaktovať nás