Вырвано из обсуждения в https://github.com/AdoptOpenJDK/openjdk-build/pull/2125#pullrequestreview -504661752
Нам нужно дать указания относительно места изменения параметров конфигурации. Я столкнулся с этим, когда собирал этот раздел FAQ, так как в настоящее время все находится в одном из трех мест. Что использовать, зависит от того, кого мы хотим затронуть, и, насколько мне известно, мы избегали ясности в отношении того, где следует внести изменения, что уже приводило к путанице в прошлом. Краткое резюме:
| Расположение | Воздействие |
| --- | --- |
| Groovy файлы (согласно этому PR) | Только через наши трубопроводы Дженкинса |
| скрипты конфигурации для конкретной платформы | Те, кто использует build-farm / make-adopt-build-farm.sh (включая наши конвейеры) - должны быть специфичными для наших машин |
| build.sh | Всем (включая конечных пользователей), кто запускает makejdk-any-platform.sh |
Так что это зависит от того, какой мы хотим видеть последнюю строку из них. Если он позволяет пользователям копировать принятые сборки с теми же параметрами конфигурации, что и мы, насколько это возможно, то я думаю, что он должен быть в build.sh, но если мы хотим, чтобы он был необязательным для пользователей, создающих его самостоятельно, тогда конвейеры jenkins неплохой выбор. Но мы действительно должны прояснить для новых людей в проекте, где следует вносить изменения, например, через обновление FAQ.
Мы должны обсудить, когда использовать каждый тип, приводя примеры того, когда что-то должно быть добавлено в каждом из трех вышеуказанных мест.
Я бы посоветовал:
freetype
alsa
и пути разработки X11, определенные там (возможно, они должны быть в скриптах платформы). Я бы посоветовал для максимального воздействия, если мы хотим, чтобы accepttopenjdk был последовательно построен определенным образом, чтобы разработчики могли реплицировать большинство наших параметров конфигурации по умолчанию, которые влияют на то, как построен OpenJDK, должен быть здесь (или один из сценариев, называемых из него)Понимание того, где вносить изменения в сценарии сборки в целом, также является частью https://github.com/AdoptOpenJDK/openjdk-build/issues/957, но я создаю это, чтобы немного ограничить объем, чтобы прояснить эту важную проблему.
У нас также была проблема с разделением наших файлов между репозиториями, я думаю, это поможет ...
Меня не слишком убедила такая фрагментация, но независимо от того, что нам нужно будет решить, что и где должно быть, и документирование этого было бы тривиальным первым шагом (ну, решение было бы хорошим первым шагом, тогда мы сможем задокументировать)
Параметры конфигурации, установленные как в build.sh, так и в сценариях groovy, должны быть объединены в сценарии платформы, и я думаю, что затем сценарии следует переместить в makejdk-any-platform.sh. Передача одного флага (например, --use-default-config-args) может вызвать их, или пропуск этого флага отключит их (так что сценарии используют только аргументы конфигурации пользователя).
Это хорошая идея, потому что:
Когда я попытался реализовать действие build-jdk, я начал с readme и использовал makejdk-any-platform.sh для сборки jdk, что означает, что конфигурации, зависящие от платформы, невидимы.
Мне было интересно, можем ли мы перемещать файлы в конфигурациях для конкретной платформы, чтобы они соответствовали уровню build.sh, чтобы jenkins, действия git-hub, пользователи для сборки jdk изначально и т. Д., Независимо от того, какая это среда системы сборки, также могли использовать Это? Я полагаю, что эти конфигурации для конкретной платформы зависят от платформы, а не от Дженкинса.
Скрипты Groovy - это скрипты сборки jenkins, которые будут разделены на отдельные репозитории https://github.com/AdoptOpenJDK/openjdk-build/issues/1108?
Параметры Groovy jenkins были уточнены в README.md репозитория jenkins через https://github.com/AdoptOpenJDK/ci-jenkins-pipelines/pull/67. Теперь у пользователей должно быть хорошее представление о том, какие параметры доступны и где следует создавать новые. # 2506 регулирует FAQ на этой стороне проекта.
Теперь я намерен настроить FAQ этого (openjdk-build) репозитория, чтобы уточнить, что конкретные параметры jenkins должны быть выполнены на https://github.com/AdoptOpenJDK/ci-jenkins-pipelines/pull/67, где параметры на основе машины и глобальные параметры должны быть указаны в файлах платформы и build.sh
соответственно
https://github.com/AdoptOpenJDK/openjdk-build/pull/2518 был объединен, что завершает внесение изменений в документ. Это должно справиться с любым, кто хочет добавить новые параметры в проект. Заключительная часть этого вопроса будет заключаться в изучении наших существующих параметров и местоположений, оценке каждого из них на предмет его применимости в его текущем местоположении и, на основе этой оценки, необходимости их перемещения в другое место. Однако это будет большая работа, и у меня вряд ли будет время выполнить эту задачу в разумные сроки, учитывая несколько задач с более высоким приоритетом, с которыми я работаю в данный момент.
Таким образом, я удалю свое назначение и предоставлю кому-нибудь другому возможность повторно оценить наши существующие параметры.