Skip to content

Developer Guide

yfxhust edited this page Jun 25, 2019 · 9 revisions

Repositories

Source code of Alibaba Dragonwell8 was derived from the OpenJDK 8u forest. So just like the OpenJDK 8u forest, there are multiple git repositories in Alibaba Dragonwell8's code base.

Get the source

The repository where you are reading this Wiki is the top repository of the code base, it meant to be the starting point of new developers.

To get all the source code, just

git clone git@github.com:alibaba/dragonwell8.git
cd dragonwell8
bash get_source_dragonwell.sh -s github

Build

User can directly use make.sh to build Alibaba Draonwell 8.

If seeing problem, refer to OpenJDK Build Readme or report issue to Alibaba Dragonwell.

Issues and pull requests

Issues/PullRequests are enabled on repository basis, which means if you wanna file a bug or contribute a patch to HotSpot module, you have to go to the dragonwell8_hotspot sub-repo to operate.

Synchronize with upstream

There is a plan to synchronize with upstream periodically when there is a stable update release. There is also a plan to push as many Dragonwell patches as possible to upstream OpenJDK community. So the non-openjdk patches in Dragonwell repositories may change, but the final code will be kept consistent as much as possible.

Create an issue

There is an issue template when you try to create a new issue, please do follow that template. Otherwise, the issue may be ignored or closed without notice.

Create a pull request

There is a commit message template for git commit command at,

.github/commit_message_template

Please do follow that template. Otherwise, the pull request may be ignored. The command to use this file may be

git commit -a -t .github/commit_message_template

Before starting a pull request, it is mandatory to create an issue beforehand, the issue number will be used in the Issue: field of the commit message.

Each pull request should include only one git commit. you may use git commit -a --amend && git push -f to overwrite the commit when fixing a review comment. That's to keep aligned with the existing development process.

Only rebase approach will be used to merge an incoming pull request. Which makes life easier when rebasing onto upstream releases.