Gagal dina ngawangun sistem alatan parobahan dina arsip checksums on GitHub

GitHub ngarobih cara ngahasilkeun arsip ".tar.gz" sareng ".tgz" sacara otomatis dina halaman sékrési, anu nyababkeun parobihan dina pamariksaan sareng kagagalan ageung dina sistem ngawangun otomatis anu pariksa arsip anu diunduh tina GitHub ngalawan anu sateuacana pikeun mastikeun integritas. checksums disimpen, contona, disimpen dina pakét metadata atawa dina ngawangun Aksara.

Dimimitian ku sékrési 2.38, toolkit Git kalebet palaksanaan gzip anu diwangun sacara standar, anu ngamungkinkeun pikeun ngahijikeun dukungan pikeun metode komprési ieu dina sistem operasi sareng ningkatkeun kinerja nyiptakeun arsip. GitHub nyandak parobihan saatos ngapdet versi git dina infrastrukturna. Masalahna disababkeun ku kanyataan yén arsip anu dikomprés anu dibangkitkeun ku palaksanaan gzip basis zlib anu diwangun binér béda ti arsip anu diciptakeun ku utilitas gzip, anu nyababkeun bédana checksum pikeun arsip anu diciptakeun ku vérsi git anu béda nalika ngalaksanakeun éta. paréntah "git archive".

Sasuai, sanggeus ngamutahirkeun git di GitHub, arsip rada béda mimiti dipintonkeun dina kaca release, nu teu lulus verifikasi ngagunakeun checksums heubeul. Masalahna muncul dina sababaraha sistem ngawangun, sistem integrasi kontinyu, sareng alat pikeun ngawangun bungkusan tina kode sumber. Salaku conto, rakitan ngeunaan 5800 palabuhan FreeBSD, kodeu sumber anu diunduh tina GitHub, rusak.

Nanggepan keluhan awal ngeunaan gangguan, GitHub mimitina nyarios kanyataan yén pamariksaan permanén pikeun arsip henteu pernah dijamin. Saatos ditingalikeun yén sajumlah ageung padamelan bakal diperyogikeun pikeun ngapdet metadata dina sagala rupa ékosistem pikeun mulangkeun fungsionalitas sistem ngawangun anu kapangaruhan, wawakil GitHub ngarobih pikiranna, ngabalikeun parobihan sareng ngabalikeun metode kuno pikeun ngahasilkeun arsip.

Pamekar Git henteu acan nyandak kaputusan sareng ngan ukur ngabahas tindakan anu mungkin. Pilihan anu dianggap kalebet balikkeun kana ngagunakeun utilitas gzip standar; nambahkeun bendera "--stable" pikeun ngajaga kasaluyuan jeung arsip heubeul; linking palaksanaan diwangun-di ka format arsip misah; ngagunakeun utiliti gzip pikeun commits heubeul jeung palaksanaan inline pikeun commits mimitian ti tanggal nu tangtu; ngajamin stabilitas format ngan pikeun arsip anu teu dikomprés.

Kasusah nyandak kaputusan dijelaskeun ku kanyataan yén balik deui ka telepon ka utilitas éksternal henteu lengkep ngarengsekeun masalah immutability checksum, sabab parobahan dina program gzip éksternal ogé tiasa nyababkeun parobahan dina format arsip. Ayeuna, sakumpulan patches geus diajukeun pikeun review nu mulih kabiasaan heubeul sacara standar (nelepon hiji utilitas gzip éksternal) jeung ngagunakeun palaksanaan diwangun-di henteuna a utiliti gzip dina sistem. Patch ogé nambihan kana dokuméntasi anu disebatkeun yén stabilitas kaluaran "arsip git" henteu dijamin sareng formatna tiasa robih di hareup.

sumber: opennet.ru

Tambahkeun komentar