![]() | {{#switch:|User|User talk=This user {{#ifeq:ITK|ITK/Procedure for Contributing Bug Fixes||sub}}page is currently inactive and is retained for historical reference. {{#if: |It was last updated {{{last}}}.}} If you want to revive discussion regarding the subject, you might try contacting the user in question or seeking broader input via a forum such as the village pump.|#default={{#switch:{{{type}}}|policy=This former Wikipedia policy, no longer backed by community consensus, is retained for historical reference.|guideline=This former Wikipedia guideline, no longer backed by community consensus, is retained for historical reference.| |section=This section is currently out-of-date and may contain errors but is retained for historical reference. {{#if: || For peer-reviewed, authoritative guidance on ITK, see The ITK Software Guide.. Additional guidance can be found via the mailing lists.}} |woundup=This page has been closed down by community consensus, and is retained only for historical reference. For peer-reviewed, authoritative guidance on ITK, see The ITK Software Guide. If you wish to restart discussion on the status of this page, seek community input via the mailing lists].|#default=This section is currently out-of-date and may contain errors but is retained for historical reference. {{#if: || For peer-reviewed, authoritative guidance on ITK, see The ITK Software Guide. Additional guidance can be found via the ITK Discourse.}}}} {{#if: |{{{comment}}}|}} {{#if: |It was last updated {{{last}}}.}} }} | {{#if: | {{#if:| }}{{#if:| }}{{#if:| }}{{#if:| }}{{#if: | }}Shortcut{{#if:|s}}: {{#if:
| {{#ifexist: | | }}}} }} |
{{#switch:|User|User talk=|#default={{#ifeq:{{{category}}}|no||}}}}
Please see the Software Process section of the ITK Software Guide and our CONTRIBUTING guide.
Most bugs are introduced as secondary effects from attempts to fix other bugs
This procedure is intended to prevent such secondary effects from happening.
Anyone can report a bug. ITK uses JIRA for bug tracking.
A bug progresses through the following stages in roughly this order.
Stage | Who's Responsible | Description |
new | Anyone can report a bug | The description of the bug |
assigned | Anyone can assign a bug | A developer has been assigned to the bug |
feedback | Assignee and Reporter | The Assignee requests additional info on the bug |
confirmed | Assignee | The Assignee can reproduce the bug |
resolved | Assignee | The Assignee fixed the bug |
closed | Reporter(preferred) or Assignee | The resolution is acceptable |
Be sure to select the Project in the upper left hand corner. Fill in every entry possible in the report. If you know who should handle this report, then select the developer from the Assign To pull down. As the issue progresses through its life cycle, you will be notified via e-mail.
The issue report should be very clear, and when possible it should be accompanied with a small piece of code (and data) that permits to easily replicate the problem. If you have a suggested fix, please include it.
Follow our Git instructions to get started with development. The following steps take place at this point of the Git instructions.
When a bug is found, the following questions should be raised
Why wasn't it found before?
The most likely answer is that we were missing a test for the specific case in which the bug is visible. In other words, the bug passed unnoticed due to the lack of testing some special case.
Therefore a test for that specific case must be added, before attempting to fix the bug. This test will ensure that once the test is fixed, it will never reappear without being noticed.
As soon as the test is added, it will be failing, showing that the test actually detects the problem.
Modify the code of your local build until the new test is passing.
This is necessary for detecting secondary effects that may result from the code fixes.
It is IMPOSSIBLE to anticipate secondary effects. The code modifications that seem to be the most innocuous, commonly result in plenty of secondary effects. Do not rely on your "mental compilation" skills. The only way to verify that the "code fix" doesn't break something else is to actually run a full Experimental build.
Verify that the code changes do not produce any compilation problems, or make any other tests fail.
A full coverage of platforms requires to wait until the next day to see all the Nightly submissions.
If the Nightly tests are clean (as far as this commit is concerned) then close the bug, and mark it as fixed.