Thank you for your interest in AdoptOpenJDK/infrastructure!
We welcome and encourage all kinds of contributions to the project, not only code. This includes bug reports, user experience feedback, assistance in reproducing issues and more.
To provide secure, consistent, repeatable, and auditable infrastructure for the AdoptOpenJDK farm. See our full Mission Statement for more details.
- We prefer using prebuilt, Galaxy provided Ansible playbooks over NIHing our own
- We prefer using binaries from official repositories over building our own
- We prefer explicit comments within the code to explain our reasoning over implicit assumptions
- We embrace the Chaos Monkey
The infrastructure project contains:
- The Ansible Playbooks for bootstrapping the build and test hosts (including a way to test Ansible)
- The overriding Documentation for the build farm
You can propose contributions by sending pull requests (PRs) through GitHub. Following these guidelines will help us merge your pull requests smoothly:
-
Your pull request is an opportunity to explain both what changes you'd like pulled in, but also why you'd like them added. Providing clarity on why you want changes makes it easier to accept, and provides valuable context to review. If there is a link to an issue in the PR that contains these details that is sufficient.
-
Follow the commit guidelines found below.
-
We encourage you to open a pull request early, and mark it as "Work In Progress", by prefixing the PR title with "WIP". This allows feedback to start early, and helps create a better end product. Committers will wait until after you've removed the WIP prefix to merge your changes.
The first line describes the change made. It is written in the imperative mood, and should say what happens when the patch is applied. Keep it short and simple. The first line should be less than 70 characters, where reasonable, and should be written in sentence case preferably not ending in a period. Leave a blank line between the first line and the message body.
The body should be wrapped at 72 characters, where reasonable.
Include as much information in your commit as possible. You may want to include designs and rationale, examples and code, or issues and next steps. Prefer copying resources into the body of the commit over providing external links. Structure large commit messages with headers, references etc. Remember, however, that the commit message is always going to be rendered in plain text.
When a commit has related issues or commits, explain the relation in the message body. When appropriate, use the keywords described in the following help article to automatically close issues. https://help.github.com/articles/closing-issues-using-keywords/ For example:
Install OpenSSL in windows playbook
OpenSSL is required to compile java on windows, so the OpenSSL role will
ensure the 32bit and 64bit versions are both installed into C:\openjdk
Fixes: #1234
All changes should be made to a personal fork of AdoptOpenJDK/infrastructure for making changes.
- Fork this repository
- Create a branch off your fork
- Make the change
- Test it (see below)
- Submit a Pull Request
Only reviewers in the admin_infrastructure team have permission to merge requests for this openjdk-infrastructure
repo,
so please ask one of those team members to review your Pull Request.
TODO This has bit rotteed somewhat and needs to be looked at again.
We expect developers to test their Ansible changes in a test environment.
A default one for Ubuntu based systems is provided for you via VirtualBox / Vagrant.
See the guide below.
Project documentation in permanent form (e.g. Build Farm architecture) is stored in the docs folder.