Retirado da discussão em https://github.com/AdoptOpenJDK/openjdk-build/pull/2125#pullrequestreview -504661752
O local para alterações nos parâmetros de configuração é algo sobre o qual precisamos fornecer orientação. Eu me deparei com isso ao montar esta seção do FAQ , já que as coisas estão atualmente em um dos três lugares. O que usar depende de quem queremos ser afetados e, pelo meu conhecimento, evitamos deixar claro onde as alterações devem ser feitas, o que já causou confusão no passado. Resumo rápido:
| Localização | Impacto |
| --- | --- |
| arquivos bacanas (de acordo com este PR) | Somente quando executado por meio de nossos pipelines Jenkins |
| scripts de configurações específicas da plataforma | Aqueles que usam build-farm / make-adopt-build-farm.sh (incluindo nossos pipelines) - devem ser específicos para nossas máquinas |
| build.sh | Qualquer pessoa (incluindo usuários finais) que esteja executando makejdk-any-platform.sh |
Portanto, depende de como queremos que seja a última linha. Se for para permitir que os usuários replicem as compilações adotadas com as mesmas opções de configuração que nós, na medida do possível, então acho que deveria estar no build.sh, mas se quisermos que seja opcional para os usuários que criam eles próprios, então os pipelines jenkins não são uma escolha ruim. Mas devemos realmente deixar claro para novas pessoas no projeto onde as alterações devem ser feitas, por exemplo, por meio de uma atualização do FAQ.
Devemos discutir quando usar cada tipo, citando exemplos de quando as coisas devem ser adicionadas em cada um dos três lugares acima.
Eu sugeriria:
freetype
alsa
e caminhos de desenvolvimento X11 definidos lá (talvez eles devam estar nos scripts de plataforma). Eu sugeriria que, para um impacto máximo, se quisermos adotar um sistema de construção consistente de uma maneira específica que os desenvolvedores possam replicar a maioria de nossas opções de configuração padrão que afetam como o OpenJDK é construído, deve estar aqui (ou um dos scripts chamados de forma)Compreender onde fazer alterações nos scripts de construção em geral também faz parte de https://github.com/AdoptOpenJDK/openjdk-build/issues/957, mas estou criando isso para limitar um pouco o escopo e esclarecer esse importante problema
Também tivemos um problema aberto para dividir nossos arquivos entre repositórios, acho que ajudaria ...
Eu não estava muito convencido de fragmentar assim, mas, independentemente disso, precisaríamos decidir o que deveria estar onde, e documentá-lo seria um primeiro passo trivial (bem, decidir seria um bom primeiro passo, então podemos documentar)
As opções de configuração definidas nos scripts build.sh e groovy devem ser mescladas com os scripts da plataforma e acho que os scripts devem ser movidos para makejdk-any-platform.sh. Passar um único sinalizador (por exemplo --use-default-config-args) pode acioná-los, ou omitir esse sinalizador pode desabilitá-los (então os scripts usam apenas os argumentos de configuração do usuário).
Essas coisas são uma boa ideia porque:
Quando tentei implementar a ação build-jdk, comecei a partir do readme e usei makejdk-any-platform.sh para construir o jdk, o que significa que as configurações específicas da plataforma são invisíveis.
Gostaria de saber se poderíamos mover arquivos em configurações específicas de plataforma para o mesmo nível de build.sh para que jenkins, ações git-hub, usuários para construir jdk nativamente, etc., não importa quais ambientes de sistema de construção sejam, também poderiam usar isto? Essas configurações específicas da plataforma são específicas da plataforma, não específicas do Jenkins, suponho.
Os scripts Groovy são scripts de construção específicos do jenkins, que serão divididos para separar o repo https://github.com/AdoptOpenJDK/openjdk-build/issues/1108?
Os parâmetros do Groovy jenkins foram esclarecidos no README.md do repositório jenkins via https://github.com/AdoptOpenJDK/ci-jenkins-pipelines/pull/67. Os usuários agora devem ter um bom senso de escopo sobre quais parâmetros estão disponíveis e onde novos devem ser criados. # 2506 ajusta o FAQ neste lado do projeto.
Agora pretendo ajustar o FAQ deste repositório (openjdk-build) para esclarecer que os parâmetros específicos do jenkins devem ser feitos em https://github.com/AdoptOpenJDK/ci-jenkins-pipelines/pull/67 onde os parâmetros baseados na máquina e parâmetros globais devem ser feitos nos arquivos da plataforma e build.sh
respectivamente
https://github.com/AdoptOpenJDK/openjdk-build/pull/2518 foi mesclado, completando as alterações do documento. Isso deve lidar com qualquer pessoa que deseja adicionar novos parâmetros ao projeto. A parte final desta edição será examinar nossos parâmetros e localizações existentes, avaliando cada um quanto à sua apropriabilidade em sua localização atual e, com base nessa avaliação, se eles precisam ser movidos para outro local. No entanto, isso dará muito trabalho e é improvável que eu tenha tempo para concluir esta tarefa em um período de tempo razoável, considerando as várias tarefas de alta prioridade que estou realizando no momento.
Como tal, vou remover minha atribuição e transferir para outra pessoa para reavaliar nossos parâmetros existentes.