This guide is to help you get started contributing to the Eclipse Lyo project.
Lyo uses Git for source control. Getting both EGit for Eclipse and the git command line tools are recommended.
The Lyo project's Git repositories.
Gerrit and Lyo
Lyo uses Gerrit to accept, review and approve code contributions from the community. NOTE: Please see the Eclipse Gerrit guide for information on configuring EGit or the command line to push to the Eclipse Gerrit instance. You will need to get your unique Gerrit userid by following those instructions. Using ssh to communicate is required and involves registering your public SSH key with Gerrit as described in the instructions.
The Lyo Gerrit ssh repository URLs to push to are:
Where <userid> is the user ID received when following the instructions in the Eclipse Gerrit guide . It is not your Bugzilla user ID.
Building and running the code
For information on how to build and run the various components in Lyo in a development environment, please see the following guides:
- Building and running OSLC4J applications
- Building and running the reference implementations (RIOs)
- Building and running the OSLC test suite
- Building and running the OSLC Bugzilla sample
Lyo contribution process
You're ready to contribute a bug fix or some new functionality to Lyo? Great. Here's what you need to do:
- Make sure there is a Bugzilla bug open for the work that you are doing. Make a comment in the bug or on the mailing list that you want it assigned to you.
- Pull the latest Lyo code from the appropriate Lyo git repository per the instructions in the "Building and running the code" secition above.
- Code your change - make sure you update any copyright headers as needed. Use existing source if you need to place a new copyright header. Make sure it references both the EPL and EDL licenses (see Lyo/Licenses for more details about this particular choice of dual licensing in Eclipse lyo).
- Commit your change locally - all commits must include the Bugzilla number in the commit message. Your commit must have the Gerrit Change-Id string in the last paragraph.
- Push the code to the appropriate Lyo Gerrit repository.
- Visit the Gerrit review instance and login
- Click on your new review request and add some reviewers
- Add at least one of the project committers (fiedler.mf@gmail-dot-com or spadgett@us-dot-ibm-dot-com are good choices) as a reviewer
- Add any others you think would be able to provide a valuable review
- (Optional) send a notification to the lyo-dev mailing list that the change is ready for review.
After the change is reviewed, it may require additional work or amendment based on the review comments. See the EGit User's Guide for information on amending commits.
Once your change is approved, there is nothing more for you to do - the committers will push the change to the appropriate repository and others can then fetch or pull it.
Git best practices for making a change
The following steps should help minimize the amount of merging you and the committers will have to do to integrate your change
- Before making any changes, make sure you have the latest code from Eclipse
- EGit: In the Git repositories view, right click the repository where you be making a change and select Pull
- Command Line: cd to the git repository and then git pull
- Create a new branch to make your change on
- EGit: Expand the repository -> Branches, right click Local -> Switch To -> New Branch. Name your branch "BugXXXXX where XXXXXX is the Bugzilla number.
- Command Line: git checkout -b BugXXXXXX where XXXXXXX is the Bugzilla number
- Code your change
- Commit your change
- Merge your change back to the master branch
- Checkout the master branch
- EGit: Expand repository->Branches->Local, right click master and select Checkout
- Command Line: git checkout master
- (Optional, but good for the paranoid) Before merging, repeat the steps above to pull from Eclipse in case anything was committed while you were making your change, especially if your change took a long time.
- Merge your BugXXXXXX changes to master
- EGit: Expand repository->Branches->Local, right click master and select Merge. In the merge dialog, select Local->BugXXXXXX
- Command Line: git merge BugXXXXXX
- Checkout the master branch
- At this point you might have a merge conflict in your workspace. If so, resolve it manually and do a new commit for the merge changes.
- Push to Gerrit (see the previous section)
Older instructions on using GitHub with Lyo can be found here