GitHub mengalami ranap sistem binaan 

Github

Perubahan yang dibuat pada Github tidak seperti yang diharapkan

Baru-baru ini telah dilaporkan bahawa GitHub telah menukar kaedah menjana fail ".tar.gz" dan ".tgz" yang dijana secara automatik pada halaman pelancaran.

Perubahan ini menyebabkan perubahan pada jumlah semak dan ranap besar dalam sistem binaan automatik, yang mengesahkan integriti fail yang dimuat turun daripada GitHub terhadap jumlah semak yang disimpan sebelum ini, seperti yang diletakkan dalam metadata pakej atau skrip binaan.

Sehingga versi 2.38, Git, disertakan secara lalai pelaksanaan bersepadu gzip, Ini memungkinkan untuk menyatukan sokongan untuk kaedah pemampatan ini merentas semua sistem pengendalian dan meningkatkan prestasi penciptaan fail. GitHub mengambil perubahan selepas menaik taraf versi git pada infrastruktur mereka.

Mampatan lalai untuk fail Git telah berubah baru-baru ini. Akibatnya, fail yang dimuat turun daripada GitHub mungkin mempunyai jumlah semak yang berbeza walaupun kandungannya tidak berubah sepenuhnya.

GitHub tidak menjamin kestabilan checksum untuk fail yang dijana secara automatik. Ini ditandai dengan perkataan "Kod sumber (zip)" dan "Kod sumber (tar.gz)" dalam tab Versi. Jika anda perlu bergantung pada jumlah semak yang konsisten, anda boleh memuat naik fail terus ke Keluaran GitHub.
Ini dijamin tidak akan berubah.

Masalahnya ialah daripada fail tablet yang dihasilkan oleh pelaksanaan gzip zlib build adalah binari yang berbeza daripada fail yang dijana oleh utiliti gzip, yang menghasilkan jumlah semak yang berbeza untuk arkib yang dibuat oleh versi git yang berbeza apabila arahan "git archive" dilaksanakan.

Akibatnya, selepas mengemas kini git pada GitHub, fail yang sedikit berbeza mula muncul pada halaman keluaran yang gagal pengesahan dengan jumlah semak di atas.

Isu ini nyata dalam pelbagai sistem binaan, sistem integrasi berterusan dan kit alat untuk membina pakej daripada sumber. Sebagai contoh, kira-kira 5800 port FreeBSD telah rosak, sumbernya telah dimuat turun daripada GitHub.

Sebagai tindak balas kepada aduan pertama tentang kegagalan, Wakil GitHub pada mulanya menyatakan bahawa jumlah semak tidak pernah dijamin pemalar untuk fail.

Selepas ditunjukkan bahawa membuat sistem binaan yang terjejas oleh perubahan itu memerlukan sejumlah besar kerja untuk mengemas kini metadata merentas pelbagai ekosistem, GitHub telah berubah hati, mengembalikan perubahan dan kembali kepada kaedah penjanaan fail lama. .

Seperti yang diharapkan, orang mula mengeluh. Maklum balas awal daripada pekerja GitHub (dan penyumbang Git teratas) brian m. Carlson kurang memahami sepenuhnya:

Saya mengatakan bahawa dasar itu tidak pernah betul dan kami tidak pernah menjamin jumlah semak yang stabil untuk fail, sama seperti Git tidak pernah menjaminnya. Saya memohon maaf atas perkara yang tidak berfungsi di sini dan tidak ada komunikasi yang lebih jelas tentang perkara ini pada masa lalu, tetapi dasar kami tidak berubah sejak lebih 4 tahun.

Pembangun Git mereka belum membuat keputusan dan hanya membincangkan tindakan yang mungkin. yang Pilihan yang dipertimbangkan termasuk menggunakan utiliti gzip lalai; menambah bendera "–stabil" untuk mengekalkan keserasian dengan fail lama; pautkan pelaksanaan terbina dalam ke format fail yang berasingan; menggunakan utiliti gzip untuk komit lama dan pelaksanaan terbina dalam untuk komit dari tarikh tertentu; menjamin kestabilan format hanya untuk fail yang tidak dimampatkan.

Kerumitan keputusan dijelaskan oleh fakta bahawa berbalik kepada panggilan utiliti luaran tidak menyelesaikan sepenuhnya masalah invarian checksum, kerana perubahan dalam program gzip luaran juga boleh menyebabkan perubahan dalam fail.

Pada masa ini, terdapat set tampalan untuk semakan yang kembali kepada gelagat lalai (menggunakan utiliti gzip luaran) dan menggunakan pelaksanaan terbina dalam apabila utiliti gzip tidak terdapat pada sistem. Patch juga menambah nota pada dokumentasi bahawa output "git archive" tidak dijamin stabil dan formatnya tertakluk kepada perubahan pada masa hadapan.

Akhirnya sekiranya anda berminat untuk mengetahui lebih lanjut mengenainya, anda boleh menyemak butiran di pautan berikut.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab untuk data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.