GitHub on muutnud automaatselt genereeritud arhiivide «.tar.gz» ja «.tgz» loomise meetodit versiooni vĂ€ljalasetel, pĂ”hjustades nende kontrollsummade muutumise ja ulatuslikke tĂ”rkeid automatiseeritud kogumisĂŒsteemides, mis kontrollivad GitHub'ist alla laaditud arhiivide terviklikkust varem salvestatud kontrollsummadega, nĂ€iteks metapakettide andmetes vĂ”i kogumiskavades.
Alates versioonist 2.38 on Git'i tööriistakomplekti vaikimisi integreeritud gzip'i teostus, mis vĂ”imaldab ĂŒhtlustada selle tihendamismeetodi toetust erinevates operatsioonisĂŒsteemides ja parandada arhiivide loomise tulemuslikkust. GitHub vĂ”ttis muudatuse pĂ€rast git'i versiooni uuendamist oma infrastruktuuris omaks. Probleem tekkis, kuna zlib'i pĂ”hjal loodud integreeritud gzip'i teostuse loodud tihendatud arhiivid erinesid binaarselt gzip'i utiliidi loodud arhiividest, mis pĂ”hjustas erinevaid kontrollsummasid erinevate git'i versioonide puhul, kui kĂ€ivitada kĂ€su «git archive».
Seega, pĂ€rast git'i uuendamist GitHub'is hakati versiooni vabastamisel pakkuma veidi erinevaid arhiive, mis ei lĂ€binud vanu kontrollsummasid. Probleem ilmnes erinevates kogumissĂŒsteemides, pideva integratsiooni sĂŒsteemides ja paketihaldustööriistades. NĂ€iteks on katkenud ligikaudu 5800 FreeBSD porti kogumine, mille lĂ€htekood laaditi GitHub'ist alla.
Esialgete kaebuste peale esitas GitHub'i esindajad esmalt viite, et arhiivide pĂŒsivad kontrollsummad ei olnud kunagi garanteeritud. PĂ€rast seda, kui selgus, et muudetud, et sĂŒsteemide töövĂ”ime taastamine, mis oli muutustest mĂ”jutatud, nĂ”uab tohutut tööd erinevate ökosĂŒsteemide metainformatsiooni uuendamiseks, muutis GitHub'i esindajad oma seisukohta, tĂŒhistasid muudatuse ja tagastasid vanema arhiivide genereerimise meetodi.
Git arendajad ei ole veel mingile lahendusele jĂ”udnud ja arutavad vaid vĂ”imalikke samme. Arutati selliseid variante nagu vaikimisi gzip utiliidi kasutamise tagasi pööramine; flagi ââstableâ lisamine, et sĂ€ilitada ĂŒhilduvus vana arhiiviga; sisseehitatud rakenduse sidumine eraldi arhiiviformaadiga; gzip utiliidi kasutamine vanade commit'ide jaoks ja sisseehitatud lahenduse kasutamine commit'ide jaoks alates teatud kuupĂ€evast; formaadi stabiilsuse tagamine ainult mittekompressitud arhiivide puhul.
Otsuse vastuvĂ”tmise keerukus tuleneb sellest, et tagasi pöördumine vĂ€lise utiliidi kutse poole ei lahenda tĂ€ielikult kontrollsummade muutumatuse probleemi, kuna vĂ€lise programmi gzip muudatused vĂ”ivad samuti viia arhiiviformaadi muutumiseni. Praegu on ĂŒlevaatamiseks ette nĂ€htud patchide kogum, mis tagastab vaikimisi vana kĂ€itumise (vĂ€lise utiliidi gzip kutse) ja kasutab sisseehitatud lahendust, kui sĂŒsteemis puudub utiliid gzip. Patchid lisavad ka dokumentatsioonis mĂ€rkuse, et âgit archiveâ vĂ€ljundi stabiilsust ei garanteerita ja formaat vĂ”ib tulevikus muutuda.
Allikas: opennet.ru
