The submit repos allows committers to submit a change for automatic build and test. This allows non-Oracle committers to build and test on the platforms supported by Oracle.
The submit repos are modeled after JDK sandbox repo. The default branch of the submit repo is automatically sync'd with its upstream repo; submit is sync'd with jdk/jdk and submit-hs is sync'd with jdk/hs. When a branch is updated in the submit repo, it is automatically run through a predefined set of builds and tests. Once the build and test is done, a status email is sent to the committer.
A Simple Example
The example below, uses the defpath.py Mercurial extension. This extension is available from the Code Tools project.
Say you need to make a simple fix to the hotspot README file in order to fix bug JDK-7000001. The following would do it:
- What should I call my branch?
- How should I create a branch?
- How do I update my branch with the latest upstream changes?
- How should I push a branch?
- What happens when I push my changes?
- How are changes from upstream brought into the submit repo?
- If all the tests pass, will my change be automatically be pushed to the main-line JDK repo?
- Should I close my branch?
- How can I show all changes for my branch?
- How do I report problems?
What should I call my branch?
Name your branch with the JBS id of your fix/enhancement. The submit repo will only build and test branches matching the following regular expression:
How should I create a branch?
Create a branch in each repository that you need to change. For example, if your fix requires changes in both the jdk and hotspot repos, you could do this:
Branches without code changes will not be picked up and built.
How do I update my branch with the latest upstream changes?
Before you push a branch to the submit repo, you should merge in the latest upstream changes onto your branch.
How should I push a branch?
The first time you push a new branch to the submit repo, you need to use the "--new-branch" option like this:
Subsequent pushes to your branch in the submit repo do not need the "--new-branch" option.
If your local repo has several fixes under development and you're ready to push only one, you can do that with the "--branch" option:
What happens when I push my changes?
When changes are pushed to a branch in the submit repo, a job is created on an internal Oracle system to build and test those changes. A job usually takes a couple of hours to complete. When your job is finished you will get an email describing what happened. If there are failures reported in the email, contact an Oracle engineer, providing the ID/URL in your email message. The Oracle engineer will be able to access internal logs and help you resolve the problem.
How are changes from upstream brought into the submit repo?
Changes from the default branch of the JDK main-line repo (jdk/jdk) are pulled into the submit repo automatically.
If all the tests pass, will my change be automatically be pushed to the main-line JDK repo?
No. You'll need to do that yourself.
Should I close my branch?
Once you no longer have any need for the branch, you should close it. Do the following:
How can I show all changes for my branch?
To see all the changes for a branch named "JDK-4040458" you can do this:
How do I report problems?
If you have problems with submit repo, please send mail to email@example.com