Managing software issues

Please open notebook rsepython-s3r7.ipynb

Issues

Code has bugs. It also has features, things it should do.

A good project has an organised way of managing these. Generally you should use an issue tracker.

Some Issue Trackers

There are lots of good issue trackers.

The most commonly used open source ones are Trac and Redmine.

Cloud based issue trackers include Lighthouse and GitHub.

Commercial solutions include Jira.

In this course, we’ll be using the GitHub issue tracker.

Anatomy of an issue

Reporting a Bug

The description should make the bug reproducible:

If possible, submit a minimal reproducing code fragment.

look at this detailed answer about how to create a minimal example for $LaTeX$.

Owning an issue

Status

The status of an issue should be updated to reflect its current status:

Resolutions

Formally resolving an issue is both helpful to the project maintainers as you are able to keep better track of issues, but it is also feedback to those submitting issues.

Bug triage

Some organisations use a severity matrix based on:

The backlog

The list of all the bugs that need to be fixed or features that have been requested is called the “backlog”.

Development cycles

Development goes in cycles.

Cycles range in length from a week to three months.

In a given cycle:

GitHub issues

GitHub doesn’t have separate fields for status, component, severity etc.

Instead, it just has labels, which you can create and delete.

See for example Jupyter

Next: Reading - Software Licensing