Read this for general principles of good bug reporting:
- Search the issue tracker to see if your bug has already been reported.
- Sign up for a User Account on Jenkins.
- Get a build of Jenkins going.
- Make a test case next to the other test cases for the same component. There are two types of Jenkins test cases: a vanilla junit test, and a subclass of HudsonTestCase. (The javadoc for HudsonTestCase is not available online.) If you can write the test as a vanilla junit test, do so; there is far less overhead to setting up a junit test than a HudsonTestCase. If no test class for the class you're testing exists yet, make one. For instance, there is not currently a vanilla test for hudson.model.View, although there is a HudsonTestCase subclass, ViewTest, which tests hudson.model.View.
- Make your test case fail; that's the whole point here, that you're demonstrating something that fails but should work.
- File the bug.
- Fix the bug. Try to make a small, focused change.
Preferred patch submission:
- Create a new branch in your local git clone.
- Commit your changes in that branch.
- Push to your fork of Jenkins on github.com
- Submit a Pull Request via github.com
Alternate patch submission:
- Generate a patch.
- Go back to your bug report. Attach the patch to your bug report.
- Email a link to your issue to the dev list.