GitHub on muutnud automaatsete .tar.gz ja .tgz arhiivide loomise meetodit vĂ€ljaannete lehtedel, mis on pĂ”hjustanud nende kontrollsummade muutumise ja massilised tĂ”rked automatiseeritud kogumissĂŒsteemides, mis kontrollivad allalaaditud GitHubi arhiivide terviklikkust eelnevalt salvestatud kontrollsummadega, nĂ€iteks pakettide metainfotest vĂ”i kogumisskriptidest.
Alates versioonist 2.38 on Git tööriistakomplekti sisse lĂŒlitatud vaikimisi sisseehitatud gzip teostus, mis vĂ”imaldab ĂŒhtlustada selle kompressioonimeetodi toetust erinevates operatsioonisĂŒsteemides ning suurendada arhiivide loomise tĂ”husust. GitHub vĂ”ttis muudatuse kasutusele pĂ€rast git versiooni vĂ€rskendamist oma infrastruktuuris. Probleemi pĂ”hjustas see, et sisseehitatud gzip teostuse, mis pĂ”hineb zlib-il, genereeritud arhiivid on binaarselt erinevad vĂ”rreldes gzip utiliidiga loodud arhiividega, mis viis kontrollsummade erinevusteni erinevate git versioonide kasutamisel kĂ€su âgit archiveâ tĂ€itmisel.
SeetĂ”ttu, pĂ€rast git'i vĂ€rskendamist anti GitHubis vĂ€lja veidi erinevad arhiivid, mis ei lĂ€binud vanade kontrolsummade kontrolli. Probleem ilmnes erinevates ehitussĂŒsteemides, pideva integreerimise sĂŒsteemides ja paketihalduse tööriistades, mis sĂ”ltusid lĂ€htekoodist. NĂ€iteks tekkis probleeme umbes 5800 FreeBSD sadama ehitusega, mille lĂ€htekood laaditi GitHubist.
Esimesele kaebusele tekkinud tĂ”rgete kohta viitasid GitHubi esindajad alguses sellele, et pĂŒsivad kontrolsummad arhiivide jaoks pole kunagi garanteeritud. PĂ€rast seda, kui nĂ€idati, et ehitussĂŒsteemide taastamiseks, mida muudatus mĂ”jutas, on vajalik tohutu töö metainformatsiooni uuendamiseks erinevates ökosĂŒsteemides, muutsid GitHubi esindajad oma arvamust, tĂŒhistades muudatuse ja naasdes vanasse arhiivide genereerimise meetodisse.
Git arendajad pole veel mingit lahendust leidnud ja arutavad vaid vĂ”imalikke tegevusi. Arutelu alla on vĂ”etud sellised vĂ”imalused nagu tagasi minemine vaikimisi gzip utiliidi kasutamise juurde; lisada lipp «âstable», et sĂ€ilitada ĂŒhilduvus vanade arhiividega; siduda sisseehitatud teostus eraldiseisva arhiiviformaadiga; kasutada gzip utiliiti vanade commitide puhul ja sisseehitatud teostust commitide puhul, alates teatud kuupĂ€evast; tagada formaadi stabiilsus ainult tihendamata arhiivide jaoks.
Otsuse langetamise keerukus tuleneb sellest, et tagasiviimine vĂ€lise utiliidi kutsumise juurde ei lahenda probleem kontrollsummade muutumatuse osas, kuna ka muudatus vĂ€lises gzip programmis vĂ”ib viia arhiiviformaadi muutumiseni. Praegu on ĂŒlevaatamiseks esitatud komplekt patĆĄe, mis taastab vaikimisi vanade kĂ€itumise (vĂ€lise gzip utiliidi kutsumise) ja kasutab sisseehitatud teostust juhul, kui sĂŒsteemis ei ole gzip utiliiti. Patchid lisavad ka dokumentatsiooni mĂ€rkuse, et «git archive» vĂ€ljundi stabiilsust ei tagata ning vorming vĂ”ib tulevikus muutuda.
Allikas: opennet.ru
