Keluar dari diskusi di https://github.com/AdoptOpenJDK/openjdk-build/pull/2125#pullrequestreview -504661752
Lokasi untuk perubahan parameter konfigurasi adalah sesuatu yang perlu kita berikan panduan. Saya menemukannya saat menyusun bagian FAQ ini karena semuanya saat ini berada di salah satu dari tiga tempat. Yang akan digunakan tergantung pada siapa yang kita ingin terpengaruh dan bagi saya pengetahuan kita telah menghindari kejelasan tentang di mana perubahan harus dilakukan yang telah menyebabkan kebingungan di masa lalu. Ringkasan cepat:
| Lokasi | Dampak |
| --- | --- |
| file keren (sesuai PR ini) | Hanya jika dijalankan melalui jaringan pipa jenkins kami |
| skrip konfigurasi khusus platform | Mereka yang menggunakan build-farm / make-adopt-build-farm.sh (termasuk pipeline kami) - harus merupakan barang khusus untuk mesin kami |
| build.sh | Siapa pun (termasuk pengguna akhir) yang menjalankan makejdk-any-platform.sh |
Jadi itu tergantung apa yang kita inginkan dari baris terakhir itu. Jika itu untuk memungkinkan pengguna untuk mereplikasi adopsi build dengan opsi konfigurasi yang sama sejauh mungkin, maka saya pikir itu harus dalam build.sh tetapi jika kita ingin menjadi opsional bagi pengguna yang membangunnya sendiri maka pipeline jenkins bukanlah pilihan yang buruk. Tetapi kami harus benar-benar menjelaskan kepada orang baru tentang proyek di mana perubahan harus dilakukan misalnya melalui pembaruan ke FAQ.
Kita harus membahas kapan harus menggunakan setiap jenis, mengutip contoh kapan hal-hal harus ditambahkan di masing-masing dari tiga tempat di atas.
Saya akan menyarankan:
freetype
alsa
, dan jalur dev X11 ditentukan di sana (mungkin mereka harus ada di skrip platform). Saya akan menyarankan bahwa untuk dampak maksimum jika kita ingin adoptopenjdk secara konsisten dibangun dengan cara tertentu sehingga pengembang dapat mereplikasi sebagian besar opsi konfigurasi default kita yang memengaruhi bagaimana OpenJDK dibangun harus ada di sini (atau salah satu skrip yang disebut form it)Memahami tempat untuk membuat perubahan pada skrip build secara keseluruhan juga merupakan bagian dari https://github.com/AdoptOpenJDK/openjdk-build/issues/957 tetapi saya membuat ini untuk sedikit membatasi ruang lingkup agar masalah penting ini diklarifikasi
Kami juga memiliki masalah yang terbuka untuk membagi file kami di antara repo, saya pikir itu akan membantu ...
Saya tidak terlalu yakin dengan memecah-belah seperti itu, tetapi terlepas dari itu kita perlu memutuskan di mana seharusnya berada, dan mendokumentasikannya akan menjadi langkah pertama yang sepele (Yah, memutuskan akan menjadi langkah pertama yang baik, kemudian kita dapat mendokumentasikannya)
Opsi konfigurasi yang ditetapkan di skrip build.sh dan groovy harus digabungkan ke dalam skrip platform, dan menurut saya skrip tersebut harus dipindahkan ke bawah makejdk-any-platform.sh. Meneruskan satu flag (misalnya --use-default-config-args) dapat memicunya, atau menghilangkan flag itu akan menonaktifkannya (jadi skrip hanya menggunakan argumen konfigurasi pengguna).
Hal-hal ini merupakan ide yang bagus karena:
Ketika saya mencoba mengimplementasikan tindakan build-jdk, saya mulai dari readme dan menggunakan makejdk-any-platform.sh untuk membangun jdk, yang berarti konfigurasi-platform-spesifik tidak terlihat.
Saya bertanya-tanya apakah kita dapat memindahkan file di bawah konfigurasi-platform-spesifik ke tingkat yang sama dari build.sh jadi jenkins, tindakan git-hub, pengguna untuk membangun jdk secara asli, dll., Apa pun lingkungan sistem build itu, juga dapat menggunakan saya t? Konfigurasi khusus platform tersebut adalah khusus platform, bukan khusus jenkins, saya kira.
Skrip Groovy adalah skrip build khusus jenkins, yang akan dibagi menjadi repo terpisah https://github.com/AdoptOpenJDK/openjdk-build/issues/1108?
Parameter Groovy jenkins telah diklarifikasi di README.md dari repo jenkins melalui https://github.com/AdoptOpenJDK/ci-jenkins-pipelines/pull/67. Pengguna sekarang harus memiliki pemahaman yang baik tentang parameter apa yang tersedia dan di mana yang baru harus dibuat. # 2506 menyesuaikan FAQ di sisi proyek ini.
Sekarang saya bermaksud menyesuaikan FAQ repo ini (openjdk-build) untuk mengklarifikasi bahwa parameter spesifik jenkins harus diselesaikan di https://github.com/AdoptOpenJDK/ci-jenkins-pipelines/pull/67 di mana parameter berbasis mesin dan parameter global harus dilakukan di file platform dan build.sh
masing-masing
https://github.com/AdoptOpenJDK/openjdk-build/pull/2518 telah digabungkan, menyelesaikan perubahan dokumen. Ini harus menangani siapa saja yang ingin menambahkan parameter baru ke proyek. Bagian terakhir dari masalah ini adalah melihat parameter dan lokasi yang ada, mengevaluasi masing-masing untuk kesesuaiannya di lokasinya saat ini dan, berdasarkan evaluasi ini, jika perlu dipindahkan ke lokasi lain. Namun ini akan menjadi banyak pekerjaan dan saya tidak mungkin memiliki waktu untuk menyelesaikan tugas ini dalam jangka waktu yang wajar mengingat beberapa tugas dengan prioritas lebih tinggi yang saya tangani saat ini.
Karena itu, saya akan menghapus tugas saya dan menyerahkan kepada orang lain untuk mengevaluasi kembali parameter yang ada.