How to interact with the issue tracker?
One good way to contribute to this package, is by creating or interacting with issues.
This package is hosted on gitlab, it uses the provided issue tracker. Anyone authorized can open a new issue. When opening an issue, there is a form to fill, detailing the issue. An issue can be about one of the following:
a broken feature, bug encountered
a feature not working as expected or intended
a feature improvement
a new feature suggestion
Properly describe the issue
It is important to describe the issue as clearly as possible:
The subject must be both clear and concise
The issue detailed description must contain the commit checksum or the version number of the code used when getting the issue
If the issue is about a bug, the detailed description should also contain all the information necessary to reproduce the bug (script launched, data used)
Analyze the issue
Not all issues require a quick development to solve, or even any development at all. However, they all need to be analyzed and answered quickly.
The first task for a manager or a developer is to analyze the issue, its
urgency and what it would entail. Generally the highest priority is
on the bugs/broken feature on the master
branch, then on bugs/broken
feature on the dev
branch, finally on the rest. Based on that, the
manager or a developer should decide when this issue will start being
worked on, and when it should be resolved (if it must be worked on at
all), or at least the conditions needed before resolving it (development
of another feature for example, release of a new version, etc). Then an
answer should be posted on the issue page to clearly state this
analysis.
If it is decided this issue will not be resolved in the near future, it should be indicated.
If it is decided this issue won’t be resolved or is completely irrelevant, it should be indicated too, and the issue should be closed. If not, a developer should be assigned with its resolution.
Assign the issue
If you are a contributor or even the main contributor managing the online git repository, you can assign the issue to a developer which is then tasked with resolving it. It is important to assign one issue to only one developer, to avoid unnecessary conflicts very probable when working on the same pieces of code at the same time.
Then the developer can interact with the person posting the issue.
The assigned developer will start by creating a temporary branch, dedicated to the work on this issue (see this).
Note: if the issue originates from the master
branch, and it
prevents the good usage of the code, its resolution is known as a
hotfix, and the changes made to resolve it will be brought on the
master
branch as soon as possible. Feature extensions or
suggestions on the other hand do not require a fast merge on master
and can be integrated in the regular development cycle on the dev
branch.
The developer must then reference the issue in any commits made related to it (see version number).
Close the issue
Depending on the project management organization, either the assigned developer or a manager reviewing the process, will close the issue once resolved.
Before closing the issue or declaring it resolved, the developer will
merge the temporary branch on the branch where the issue originated (e.g
dev
if issue on dev
, dev
and master
if hotfix on
master
).
In both cases, the assigned developer must indicates clearly by a post on the issue when the issue is resolved, along with the commit checksum or version number of the merge commit that solved it.
Alternatively, the assigned developer can mention in the message of the
last commit before merging on the common branches that it fixes the
issue. To do that, simply put Fix #n
or Close #n
on the last
line of the commit message (with n
the issue number). Then when
creating and applying the merge request, the issue will be closed
automatically.