Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Hudson-ci/development
Hudson Continuous Integration Server | |
Website | |
Download | |
Community | |
Mailing List • Forums • IRC • mattermost | |
Issues | |
Open • Help Wanted • Bug Day | |
Contribute | |
Browse Source |
Information for Hudson Developers |
---|
Introduction
This page provides information for developers who either want to contribute to (or understand) Hudson and those wanting to write plugins for Hudson (see also Extending Hudson)
Contents
Core Development
Development for Hudson as a whole is split into two overarching projects. The Hudson core and primary plug-ins are maintained here at Eclipse. Although anyone can pull the source code for this project contributions are slightly more controlled (see Submitting a Patch for Non-Committers). The other half of the project is the Hudson-Plugins project at Java.net. This project is open to anyone who wants to create and maintain a plugin. Generally the plugins are all licensed with the MIT license rather than the EPL. This article relates to the code associated with the Eclipse maintained codebase.
Pre-Eclipse Code and Plug-ins
If you want to build a version of Hudson that preceeds the Eclipse releases then further information about the source code can be found here.
Source control
The Hudson Project maintains it's source code in a series of GIT repositories which partition the project into modules. The list below shows the set of repositories.
Working with the Source
To work with a particular module click on the link above for the repository that you want to work with. On the summary tab of that page you will see a section towards the bottom of the page (labelled Clone) which provides the list of clone targets.
For example, Hudson Core clone targets are:
- git://git.eclipse.org/gitroot/hudson/org.eclipse.hudson.core.git
- ssh://git.eclipse.org/gitroot/hudson/org.eclipse.hudson.core.git
- http://git.eclipse.org/gitroot/hudson/org.eclipse.hudson.core.git
To work with the source you should clone the appropriate repository:
For committers:
git clone ssh://dmills@git.eclipse.org/gitroot/hudson/org.eclipse.hudson.core.git |
For non-committers:
git clone http://git.eclipse.org/gitroot/hudson/org.eclipse.hudson.core.git |
git config http.proxy "http://proxy.example.com:80" |
Building from Source
To Do
Keeping in the Loop
As well as the Hudson Developers mailing list you can also subscribe to the hudson-commits mailing list to keep up with the latest checkins.
Procedures
Information for Committers
For general information about GIT at Eclipse refer to the GIT page in Eclipsepedia. This provides information on setting up SSH keys etc. Pay particular attention to the informtion on IP matters (Handling Git Contributions).
Submitting a Patch for Non-Committers
Anyone is welcome to provide input into the Hudson project, the strict IP procedures of the Eclipse foundation do mean, however, that the repositories are not open to all for random commits. If you are not yet an Eclipse committer then any code or patch that you want to contribute will need to be attached to an Eclipse BugZilla record so that it's provenance can be tracked. If in doubt about what to do, just send a mail to the Hudson Developer List.
Building the Patch
Let's suppose that you notice an incorrect URL in one of the help topics in the Hudson configuration page
git clone http://git.eclipse.org/gitroot/hudson/org.eclipse.hudson.core.git |
First ensure that git knows who you are (Important as this information will be included in the patch)
git config user.name "<Your Name>" git config user.email "<your_email@example.com>"
Then edit the file to correct the problem and test your changes of course. Once happy:
Double check the files marked as changed:
git status |
Add the changed file and generate the patch
git add file_you_tweaked git commit -m "Amended broken URL" git format-patch origin
This will report back a patch file name e.g. Amended-broken-URL.patch which will be present in the directory that you generated the patch for. Attach this file to the relevant BugZilla record.
Releasing a New Release in Eclipse
Becoming a Committer
Committers for the project are nominated on the basis of a meritocracy. You can read more about this in Eclipsepedia (Becoming a Committer). However, the key is to show your interest and value through contribution. Remember that it's not just hard-core code hacking in the guts of Hudson that needs to be done, opportunities to shine exist in all of the other areas of the project as well such as documentation and QA. Just pitch in and get involved.