Introduction
Theres a few steps you need to go through if you want your bug fix applied to the Cooee core. Don't be scared away just yet! They're relatively painless steps that have been employed to maintain the quality of the code base. Even if you have some weird, strange concerns about the fix, submit it anyway! Even if it doesn't get applied to the main line, it may still be useful to someone else who has experienced your problem. Failing that, the Cooee team may be able to provide you with a previously implemented way of getting around your problem.
The steps
The steps for bug resolution are reasonably straight forward:
- Submit an issue to JIRA
- Attach your fix to the JIRA issue you created
- Attach a test case to the JIRA issue
- Add any information you're aware of concerning your fix that may effect other areas of Cooee
- Wait.
The Cooee team will then: - Review the issue
- Determine how critical and how complex the issue is
- Apply your patch and test cases
- If the team is happy with the outcomes, the fix is committed
Please check out the sections below for more detailed information regarding this process.
Notification of the Bug
When raising an issue in JIRA, please do the following:
- Check the issue you've raised hasn't been raised by someone else
- Ensure the details of your issue are clear, and the steps for reproduction are included.
Patches
When reporting a bug fix, it will make it double faster if will attach the patch file together with your report (instead of copy/pasting peaces of code). To create a patch file is quite easy once you have already solved the bug: just checkout the correspondent Cooee module from SVN repository (if you haven't already, if you have, update the code to the latest revision before changing the code), make the necessary changes in the source code and use Eclipse Team->Create Patch utility.
If your patch/fix includes additional classes that are not part of the Cooee library they must:
- Follow package conventions
- Follow Cooee's Licence
- Be appropriately documented with JavaDoc and comments
- Be appropriately formatted to follow with Cooee's current code style (basically Eclipse defaults)
Test Cases
Test Cases must:
- Provide FULL coverage of your patch
- Be JUNIT tests
- Follow Cooee's current test case packaging
- Have all external factors mocked out if they're required by the test
While the lack of test cases is not an locking condition for your patch/fix to be applied, having a test case attached can (and probably will) make it much faster for your changes be reviewed and incorporated.
Third Party Libraries
The addition of any new third party libraries must be clearly stated in the JIRA report. Any fixes that require third party libraries that are either incompatible with our licensing or not available via Maven may result in your patch not being included.
This doesn't mean your work will be dismissed. The Cooee team is much more likely to work with you (where they can) to get your patch to a state that it can be included. At the bare minimum, the patch will be provided via the Wiki for other members of the community to apply if need be.
Interference
If your patch causes interference with other aspects of Cooee, then you MUST provide the reasoning as to why this is happening and why your patch should still be included. However interference is most likely going to result in the patch not being included until the associated issues are resolved.
Waiting
Patience is a virtue. Write a new, sexy component for the Cooee sandbox while you wait. Or fix other bugs. Or spend time with the family and friends you neglected to work on this project.

Add Comment