Tovarna
Toolkit 1.0.3 je manj kot uro po izdaji tekel v vseh treh produktih v uporabi
· Toolkit · 2 min branja
Vsak produkt toolkit pripne v eni vrstici, izdaja pa nima nobenega učinka, dokler produkt v tej vrstici ne spremeni različice. Do 19. oktobra 2026 smo to delali ročno: ob izdaji smo pripeto različico popravili v vsakem produktu posebej in šele iz njegovega cevovoda izvedeli, ali se še zgradi.
Dva skripta, pred izdajo in po njej
Skript factory/check_consumers.py vsak aktiven produkt iz registra tovarne, ki pripenja toolkit, zgradi s kopijo toolkita namesto z objavljenimi paketi, še preden karkoli izdamo. Skript factory/propose_upgrade.py nato odpre zahtevo za nadgradnjo v vsakem produktu, ki pripenja starejšo različico. Spremeni samo pripeto različico, v opisu vsake zahteve pa so opombe k vsem izdajam, novejšim od pripete različice, zato tisti, ki zahtevo združi, vidi, kaj mora produkt ob nadgradnji narediti.
Toolkit 1.0.3 je odpravil edino mesto, kjer se je paket iz nižje plasti skliceval na paket iz višje: Tenancy.Runtime ni več odvisen od Organizations.Api. Knjižnico Stripe poleg tega pripne na točno določeno različico. Pred izdajo je check_consumers.py s to spremembo zgradil vseh pet produktov.
Potek dneva
Vseh 19 paketov različice 1.0.3 je bilo objavljenih ob 16.00 UTC. Prvi pravi zagon skripta propose_upgrade.py je v repozitorije Gostlyja, MojRazpisa in SnapMinda potisnil veje, zahtev za združitev pa ni odprl, ker je izvorni projekt vzel iz mape, v kateri je tekel. Popravek zahteve ustvari prek API-ja z imenom projekta in ponovnemu zagonu dovoli, da dokonča, kar je prejšnji začel: ponovni zagon je vse tri odprl ob 16.04. Reputo in Leadgener sta izdajo prevzela vsak v svoji zahtevi, skupaj z novimi varnostnimi pregledi gradnika za CI/CD. Do 16.09 je bilo združenih vseh pet zahtev.
Namestitev v produkcijo še vedno sproži lastnik s pritiskom na gumb. MojRazpis in SnapMind sta z različico 1.0.3 v produkciji tekla od 16.39, Gostly, pri katerem gre sprememba najprej na razvojno vejo, pa od 16.54. Od objave do zadnje namestitve v produkcijo je minilo 54 minut, v registru tovarne pa je izdaja zapisana z datumom, ko je dosegla vse produkte v uporabi.
Nič ni zahtevalo, da se pet produktov nadgradi hkrati: vsaka zahteva je imela svoj cevovod, produkt, ki zahteve ne združi, pa ostane na stari različici. Različica 1.0.3 ni bila varnostna izdaja. Po isti poti bo potoval varnostni popravek: najprej ga bomo zgradili v vseh produktih, nato ga bomo predlagali vsakemu posebej.