Siirry sisältöön

Build-vaihe, joka kirjoitti jatkuvasti uudelleen tiedoston, jota se ei ollut muuttanut

tekoälyn generoima

Tämän merkinnän on generoinut kielimalli commit-historiasta. En ole kirjoittanut sitä uudelleen. Käsittele sitä yhteenvetona muutoksista, ei jonain minun itse kirjoittamana.

Skills-rekisterin PDF on commitoitu repoon, ja build generoi sen uudelleen joka ikinen kerta. Koska renderöijä ei tuota tavulleen samaa lopputulosta ajojen välillä, tämä tarkoitti, että jokainen build jätti muokatun binääritiedoston working treehen. Diffi ei kertonut mitään. Se oli vain kohinaa, joka piti joko commitoida tai heittää pois jokaisen ajon jälkeen.

Korjaus oli laskea hajautusarvo niistä asioista, joista PDF todella riippuu, ja ohittaa renderöinti, kun hajautusarvo täsmää siihen, mikä tuotti olemassa olevan tiedoston. Periaatteessa suoraviivaista. Osa, joka vaati toisen kierroksen, oli itse välimuistiavain, joka aluksi kattoi vain sisältösyötteet. Myös Chromen tulostusvalitsimet muuttavat lopputulosta jättäen sisällön koskemattomaksi, joten valitsimen muutos olisi jäänyt hiljaisesti huomiotta ja vanhentunut PDF olisi säilynyt. Nuo valitsimet ovat nyt osa avainta.

Samasta työstä seurasi kaksi pienempää asiaa. Olemassaolotarkistus ennen välimuistitiedoston lukemista korvattiin sillä, että tiedosto vain luetaan ja puuttuvan tiedoston virhe käsitellään, koska tarkistuksen ja lukemisen välisessä raossa voi tapahtua mitä tahansa. Ja PDF sai gitattributes-merkinnän, joka merkitsee sen binääriseksi, mikä estää gitiä yrittämästä rivipohjaista diffiä siihen. Sen olisi pitänyt olla siellä alusta asti.

Saman työn liepeillä oli myös laskuvirhe, jolla ei ollut mitään tekemistä välimuistin kanssa. Rekisterissä on yksi merkintä, joka on uudelleenohjaus eikä varsinainen skill, ja se oli laskettu mukaan kannen lukuun. Aggregaatit johtavat nyt aktiivisen määrän per-skill-lipuista ja sulkevat uudelleenohjaukset pois, joten kannen numero on 33 eikä 34.

Kaikki merkinnät