Elyra v0.7.0: Den kjedelige oppdateringen som betyr mest
Det er hele poenget.
Hva som endret seg
Pakke Før Etter TypeScript 5.9 6.0 marked 15.0 18.0 vitest 3.2 4.1 diff 8.0 9.0
I tillegg er TypeScript native compiler (tsgo) oppdatert til siste versjon, og build target er løftet fra ES2022 til ES2024.
Hvorfor det betyr noe
Avhengighetsgjeld er usynlig — helt til den ikke er det. For hver måned du hopper over en major-versjon, blir oppgraderingen vanskeligere. Breaking changes hoper seg opp. Gapet mellom det du er på og det økosystemet forventer vokser. Til slutt ligger du tre major-versjoner bak, og oppgraderingen er et prosjekt i seg selv.
Elyra holder seg oppdatert. Da TypeScript 6 kom, oppgraderte vi samme uke. Ikke fordi vi trengte en bestemt feature, men fordi kostnaden ved å oppgradere nå er null, og kostnaden ved å oppgradere senere er ukjent.
TypeScript 6
Den største bumpen. TypeScript 6 bringer strengere typeinferens, nye standardoppførsler, og deprecation av noen legacy-opsjoner. Elyras kodebase passerte uten en eneste typefeil.
Den eneste endringen som trengtes var å løfte build target fra ES2022 til ES2024. TUI-ens Unicode-breddeberegning bruker regex v-flagget (for korrekt emoji- og zero-width-tegn-deteksjon), som krever ES2024. Targetet var uansett overmodent for en bump — Node 20+ har støttet ES2024-features siden lansering.
experimentalDecorators fungerer fortsatt i TypeScript 6 (deprecated for 7). web-ui-pakken bruker Lit-dekoratorer, så dette kjøper tid fram til TC39-dekoratormigreringen.
marked 18
Tre major-versjoner i ett hopp (15 til 18). Markdown-rendereren er kjerneinfrastruktur — hvert agent-svar går gjennom den. Endringene på tvers av v16, v17 og v18 inkluderte fjerning av CJS-bygget, restrukturering av list tokens, og strengere håndtering av trailing whitespace.
Elyras egendefinerte tokenizer (som håndterer strict strikethrough-parsing) og hele token-renderingspipelinen fungerte uten modifikasjon. Den vendrede marked.min.js som brukes i HTML-eksport vil kanskje trenge en oppdatering senere, men runtime-rendereren er ren.
vitest 4
Test runner-oppgraderingen. vitest 4 omarbeidet pool-systemet, fjernet noen deprecated config-opsjoner, og endret mock-navngivning. Elyras testsuites — over 60 testfiler på tvers av fire pakker — passerte uten endringer. Ingen deprecated config-opsjoner var i bruk, ingen snapshots inneholdt mock-navn.
diff 9
Den enkleste oppgraderingen. Elyra bruker diffLines() og diffWords() for fildiff og intra-linje-highlighting. Begge funksjonene er uendret i v9. Breaking changes-ene (patch-formattering, ES5-fjerning) påvirker ingen kodesti i Elyra.
Hva som gjorde dette smertefritt
Fire major-bumps uten en eneste kodefiks er ikke flaks. Det er en konsekvens av hvordan kodebasen er strukturert:
Minimal API-overflate. Elyra bruker diff til to funksjoner, ikke tjue. Den bruker marked gjennom en ren renderings-abstraksjon, ikke spredte inline-kall. Når du berører mindre av et biblioteks API, er sannsynligheten lavere for å treffe breaking changes.
Oppdaterte targets. Bygget var allerede på ES2022 med strict: true og Node16 module resolution. Ingen legacy-opsjoner, ingen deprecated mønstre. TypeScript 6's nye standardverdier matchet det Elyra allerede gjorde eksplisitt.
God testdekning. Å kjøre npm run check etter hver oppgradering viste umiddelbart om noe var ødelagt. Tilbakemeldingssløyfen mellom installer ny versjon og vit om den fungerer var under 30 sekunder.
xAI-fotnoten
Den eneste kodeendringen i denne utgivelsen var oppdatering av test-modellreferanser. xAI fjernet grok-2 og grok-2-latest fra API-et sitt mellom builds, så tester som refererte til de modellene måtte peke til grok-4.3 i stedet. Dette har skjedd tre ganger nå på tvers av utgivelser — modell-API-er er mer volatile enn bibliotek-API-er.
Det er derfor Elyras modelliste auto-genereres fra live API-data heller enn å være hardkodet. Den genererte filen endrer seg; koden som bruker den, gjør det ikke.