Issu de la discussion sur https://github.com/AdoptOpenJDK/openjdk-build/pull/2125#pullrequestreview -504661752
L'emplacement des modifications des paramètres de configuration est quelque chose sur lequel nous devons fournir des conseils. Je suis tombé dessus en rassemblant cette section de la FAQ , car les choses se trouvent actuellement dans l'un des trois endroits. Lequel utiliser dépend de qui nous voulons être touchés et à mon avis, nous avons évité de préciser où des changements devraient être apportés, ce qui a déjà semé la confusion dans le passé. Résumé rapide:
| Localisation | Impact |
| --- | --- |
| fichiers groovy (selon ce PR) | Uniquement lors de l'exécution de nos pipelines Jenkins |
| scripts de configuration spécifiques à la plate-forme | Ceux qui utilisent build-farm / make-adopt-build-farm.sh (inc. Nos pipelines) - devraient être spécifiques à nos machines |
| build.sh | Toute personne (y compris les utilisateurs finaux) qui exécutent makejdk-any-platform.sh |
Cela dépend donc de ce que nous voulons que la dernière ligne soit. Si c'est pour permettre aux utilisateurs de répliquer les builds adopt avec les mêmes options de configuration que nous dans la mesure du possible, alors je pense que cela devrait être dans build.sh mais si nous voulons que ce soit facultatif pour les utilisateurs qui le construisent eux-mêmes, alors les pipelines jenkins ne sont pas un mauvais choix. Mais nous devrions vraiment indiquer clairement aux nouvelles personnes dans le projet où des modifications doivent être apportées, par exemple via une mise à jour de la FAQ.
Nous devrions discuter du moment où utiliser chaque type, en citant des exemples où des éléments doivent être ajoutés à chacun des trois endroits ci-dessus.
Je voudrais suggerer:
freetype
alsa
, et des chemins de développement X11 définis ici (peut-être qu'ils devraient être dans les scripts de la plate-forme). Je suggérerais que, pour un impact maximal, si nous voulons adopteropenjdk systématiquement construit d'une manière spécifique, les développeurs peuvent répliquer la plupart de nos options de configuration par défaut qui ont un impact sur la façon dont OpenJDK est construit devraient être ici (ou l'un des scripts appelés form it)Comprendre où apporter des modifications aux scripts de construction dans leur ensemble fait également partie de https://github.com/AdoptOpenJDK/openjdk-build/issues/957 mais je crée ceci pour limiter un peu la portée afin de clarifier ce problème important.
Nous avons également eu un problème ouvert pour diviser nos fichiers entre les dépôts, je pense que cela aiderait ...
Je n'étais pas trop convaincu par la fragmentation comme ça, mais quoi qu'il en soit, nous aurions besoin de décider de ce qui devrait être où, et documenter ce serait une première étape triviale (Eh bien, décider serait une bonne première étape, alors nous pouvons documenter)
Les options de configuration définies dans les scripts build.sh et groovy doivent être fusionnées dans les scripts de la plate-forme, et je pense que les scripts doivent ensuite être déplacés sous makejdk-any-platform.sh. Passer un seul indicateur (par exemple --use-default-config-args) pourrait les déclencher, ou omettre cet indicateur les désactiverait (donc les scripts n'utilisent que les arguments de configuration de l'utilisateur).
Ces choses sont une bonne idée car:
Quand j'ai essayé d'implémenter l'action build-jdk, j'ai commencé à partir de readme et j'ai utilisé makejdk-any-platform.sh pour construire jdk, ce qui signifie que les configurations spécifiques à la plate-forme sont invisibles.
Je me demandais si nous pouvions déplacer des fichiers sous des configurations spécifiques à la plate-forme pour être au même niveau que build.sh afin que jenkins, les actions git-hub, les utilisateurs pour créer jdk nativement, etc., quels que soient les environnements de système de construction, pourraient également utiliser il? Ces configurations spécifiques à la plate-forme sont spécifiques à la plate-forme, et non à Jenkins, je suppose.
Les scripts Groovy sont des scripts de construction spécifiques à Jenkins, qui seront divisés en référentiel séparé https://github.com/AdoptOpenJDK/openjdk-build/issues/1108?
Les paramètres de Groovy jenkins ont été clarifiés dans le README.md du repo jenkins via https://github.com/AdoptOpenJDK/ci-jenkins-pipelines/pull/67. Les utilisateurs doivent maintenant avoir une bonne idée de la portée des paramètres disponibles et de l'endroit où de nouveaux doivent être créés. # 2506 ajuste la FAQ de ce côté du projet.
J'ai maintenant l'intention d'ajuster la FAQ de ce repo (openjdk-build) pour clarifier que les paramètres spécifiques de jenkins doivent être effectués à l' adresse https://github.com/AdoptOpenJDK/ci-jenkins-pipelines/pull/67 où les paramètres basés sur la machine et les paramètres globaux doivent être effectués respectivement dans les fichiers de la plateforme et dans build.sh
https://github.com/AdoptOpenJDK/openjdk-build/pull/2518 a été fusionné, complétant les modifications de la documentation. Cela devrait gérer toute personne souhaitant ajouter de nouveaux paramètres au projet. La dernière partie de ce numéro consistera à examiner nos paramètres et nos emplacements existants, en évaluant chacun pour sa pertinence à son emplacement actuel et, sur la base de cette évaluation, s'ils doivent être déplacés vers un autre emplacement. Ce sera cependant beaucoup de travail et il est peu probable que j'aie le temps de terminer cette tâche dans un délai raisonnable compte tenu de plusieurs tâches de priorité plus élevée que je gère en ce moment.
En tant que tel, je supprimerai mon affectation et je laisserai à quelqu'un d'autre le soin de réévaluer nos paramètres existants.