The original version of this page was created by Chris Hegarty and can be found here.
The primary purpose of the OpenJDK jdk-sandbox repository is to facilitate OpenJDK JDK Committers that are working on non-trivial changes, possibly JEP-scale effort, whose scope and duration make it necessary to collaborate with others in an open shared version control system, rather than just using privately shared patches or personal forks.
Working in the sandbox can facilitate rapid iterative development, as there is no requirement for changes to be reviewed or accompanied by bug numbers, i.e. jcheck is not enabled. Just create a new branch and start working. When the changes are ready for integration into the main-line, then they will need to follow the appropriate project integration rules. Any committer to the JDK project can push changes to the sandbox.
The sandbox repository is located https://git.openjdk.java.net/jdk-sandbox and changeset notifications are sent to the mailing list jdk-sandbox-changes. The master branch of the repository is protected (no-one can push to it) and is always in sync with the master branch in the jdk repository.
The remainder of this page will address common questions and guidance for using the sandbox.
What upstream repository is the jdk-sandbox sync'ed with?
How are changes propagated from the jdk repository?
The jdk repository is checked periodically, and any new changes are pushed to the corresponding branch in the jdk-sandbox repository.
What should I call my branch?
Branch names should contain the suffix '-branch', to clearly identify them from other metadata in the changeset.
Branch names JEP-XXX-branch and JDK-XXXXXXX-branch are, by courtesy, reserved for use of the corresponding JBS issues. Branch names prefixed with an OpenJDK username and a delimiter, by courtesy, are reserved for use of that OpenJDK user.
How do I create a new branch?
See the FAQ: How do I create a local branch?
How do I clone and check out a branch?
See the FAQ:
How do I update a branch with the latest changes from the master branch?
See the FAQ: How do I merge commits from another branch into the current branch?
How do I push a change to a branch?
See the FAQ: How do I push a local branch to a remote repository?
How do I show all commits on a given branch?
See the FAQ: How do I view commits on the current branch but exclude ones on the master branch?
How do I remove a branch?
See the FAQ: