Bilanir í byggingarkerfum vegna breytinga á eftirlitstölum skjalasafna á GitHub

GitHub breytti því hvernig það býr til sjálfkrafa mynduð „.tar.gz“ og „.tgz“ skjalasafn á útgáfusíðum, sem leiddi til breytinga á eftirlitstölum þeirra og gríðarlegra bilana í sjálfvirkum byggingarkerfum sem athuga skjalasafn sem hlaðið er niður frá GitHub gegn fyrri til að staðfesta heilleika geymdar eftirlitssummur, til dæmis, settar í lýsigögn pakka eða í byggingarforskriftum.

Frá og með útgáfu 2.38 innihélt Git verkfærakistan sjálfgefið innbyggða útfærslu á gzip, sem gerði það mögulegt að sameina stuðning við þessa þjöppunaraðferð á milli stýrikerfa og bæta árangur við sköpun skjalasafna. GitHub tók upp breytinguna eftir að hafa uppfært útgáfuna af git í innviði þess. Vandamálið stafaði af því að þjappað skjalasafn sem búið er til með innbyggðu zlib-undirstaða gzip útfærslunni eru tvöfaldur frábrugðinn skjalasafninu sem búið er til af gzip tólinu, sem leiddi til mismunandi eftirlitssumma fyrir skjalasafn sem búið var til með mismunandi útgáfum af git þegar "git archive" skipun.

Í samræmi við það, eftir að hafa uppfært git í GitHub, fóru örlítið mismunandi skjalasafn að birtast á útgáfusíðunum sem stóðust ekki staðfestingu með því að nota gömlu eftirlitstölurnar. Vandamálið birtist í ýmsum byggingarkerfum, samfelldum samþættingarkerfum og verkfærum til að búa til pakka úr frumkóða. Til dæmis var samsetning um 5800 FreeBSD tengi, sem frumkóðar voru sóttir af GitHub, bilaðir.

Til að bregðast við fyrstu kvörtunum um gallana, vitnaði GitHub upphaflega til þeirrar staðreyndar að varanlegar eftirlitsupphæðir fyrir skjalasafn voru aldrei tryggðar. Eftir að sýnt var fram á að gríðarlega mikil vinna þyrfti til að uppfæra lýsigögnin í ýmsum vistkerfum til að endurheimta byggingarkerfin sem breytingin varð fyrir, skiptu fulltrúar GitHub um skoðun, sneru breytingunni til baka og skiluðu gömlu aðferðinni við að búa til skjalasafn.

Git verktaki hefur ekki enn komist að ákvörðun og eru aðeins að ræða mögulegar aðgerðir. Valmöguleikar sem taldir voru voru meðal annars að fara aftur í að nota sjálfgefna gzip tólið; bæta við „--stable“ fánanum til að viðhalda samhæfni við gömul skjalasafn; tengja innbyggðu útfærsluna við sérstakt skjalasafn; að nota gzip tólið fyrir gamla skuldbindingar og innbyggðu útfærsluna fyrir skuldbindingar sem byrja frá ákveðnum dagsetningu; tryggir aðeins stöðugleika sniðs fyrir óþjappað skjalasafn.

Erfiðleikarnir við að taka ákvörðun skýrast af því að það að snúa aftur til símtals í utanaðkomandi tól leysir ekki alveg vandamálið um óbreytanleika eftirlitssummans, þar sem breyting á ytra gzip forritinu getur einnig leitt til breytinga á skjalasniði. Eins og er hefur verið lagt til sett af plástra til endurskoðunar sem skilar gömlu hegðuninni sjálfgefið (kallar utanaðkomandi gzip tól) og notar innbyggða útfærslu þar sem gzip tól er ekki til í kerfinu. Plástrarnir bæta einnig við skjölin að nefna að stöðugleiki „git archive“ úttaksins er ekki tryggður og sniðið gæti breyst í framtíðinni.

Heimild: opennet.ru

Bæta við athugasemd