upgrade gitsheets 1.4.1 → 2.x (Rust core), pairing with upstream per-sheet refresh (gitsheets#184)
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- git, rust, typescript
Direzione di ricerca
Inizia con la guida alla migrazione di gitsheets 2.x e con l’issue upstream #184, quindi esamina apps/api/src/store/store.ts, apps/api/src/routes/attachments.ts, apps/api/src/lib/data-repo-lock.ts, apps/api/src/store/public.ts, importer.ts e people.ts. Il lavoro è completato quando l’API viene eseguita su 2.x, le soluzioni alternative per la cache obsoleta vengono rimosse dove il supporto upstream lo consente e i casts annotati vengono verificati rispetto alla nuova API.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
The API is pinned to `gitsheets ^1.4.1` — a full major version behind the 2.x line, which replaced the JS engine with a Rust core (canonical TOML, schema validation, and tree ops all native; measured ~4–5× faster on large-sheet commit workloads, with byte-identical output). A migration guide ships with 2.x.
Beyond the version bump, the upgrade is the right moment to retire three workarounds that all trace to the stale-`Sheet`-cache gap tracked upstream as JarvusInnovations/gitsheets#184:
- `apps/api/src/store/store.ts` — `swapPublic()` and the funnel-all-reads-through-memory rule exist because direct `sheet.query*()` after a transact reads the pre-commit tree (documented in `specs/behaviors/storage.md` under "Direct gitsheets reads after a transact").
- `apps/api/src/routes/attachments.ts` — deliberately bypasses `Sheet.getAttachment()` and streams via raw `git cat-file` to dodge the same cache.
- `apps/api/src/lib/data-repo-lock.ts` — a parallel mutex because gitsheets' internal one isn't exposed for non-transact git ops.
Ideally the upgrade lands alongside (or drives) the upstream #184 implementation so those can be deleted rather than ported.
Also worth checking during the upgrade: the `asValidator()` cast in `apps/api/src/store/public.ts` (Zod v4 vs `StandardSchemaResult` structural mismatch) and the `BlobObject.write(hologit, buf as unknown as string)` casts (`importer.ts`, `people.ts`) — the 2.x API surface (`BlobHandle`, typed error classes) may eliminate both.
- Lingua principale
- TypeScript
- Stelle
- 1
- Fork
- 1
- Merge medio
- 1g 20h
- PR unite (30g)
- 25
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di CodeForPhilly/codeforphilly-ng
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
-
MarkdownEditor toolbar: use Radix Toolbar from radix-ui instead of the hand-rolled roving tabindex Apertaenhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
Tutte le issue di CodeForPhilly/codeforphilly-ng
Issue simili
-
comp/desktop P3 type/bug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
NousResearch/hermes-agent#118866 ·
-
Browser Waiting for: Product Owner
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
getsentry/sentry-javascript#24577 · 1 commento ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
agilepathway/label-checker#640 ·
-
Plugin stuck at "loading" on DSH 0.1.6-alpha.2 — turnTail list slot registration missing options.id Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
-
Add 2021 Cup data to website Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
chrisparsons83/flexspotff#153 ·