diff options
author | Dmitry Tantsur <dtantsur@protonmail.com> | 2020-06-23 12:21:30 +0200 |
---|---|---|
committer | Dmitry Tantsur <dtantsur@protonmail.com> | 2020-06-23 14:48:46 +0200 |
commit | 2f5456759e176aff1402508096975424057dd943 (patch) | |
tree | 33cd97a5525f24f609f328c6978add0e64be21aa /doc | |
parent | a2ad31ddef6a3e19f608a5ee0540f8bacc95ec92 (diff) | |
download | ironic-2f5456759e176aff1402508096975424057dd943.tar.gz |
Add a bug reporting and triaging guide
Change-Id: If692795221661414b2990f8131433678402dd45b
Diffstat (limited to 'doc')
-rw-r--r-- | doc/source/contributor/bugs.rst | 128 | ||||
-rw-r--r-- | doc/source/contributor/contributing.rst | 4 | ||||
-rw-r--r-- | doc/source/contributor/index.rst | 1 | ||||
-rw-r--r-- | doc/source/index.rst | 2 |
4 files changed, 134 insertions, 1 deletions
diff --git a/doc/source/contributor/bugs.rst b/doc/source/contributor/bugs.rst new file mode 100644 index 000000000..548788776 --- /dev/null +++ b/doc/source/contributor/bugs.rst @@ -0,0 +1,128 @@ +Bug Reporting and Triaging Guide +================================ + +StoryBoard +---------- + +All ironic projects use StoryBoard_ for tracking both bugs and enhancement +requests (RFE). The `ironic project group`_ lists all our projects. + +.. note:: + Ironic is developed as part of OpenStack and therefore uses + the ``openstack/`` namespace. + +StoryBoard is somewhat different from traditional bug tracking +systems because every *story* is not linked to a project itself, but rather +through its *tasks*. A story represents an issue you are facing or an +enhancement you want to see, while tasks represent individual action items +which can span several projects. When creating a story, you'll also need to +create the first task. If unsure, create a task against ``openstack/ironic``. + +Reporting Guide +--------------- + +We are constantly receiving a lot of requests, so it's important to file a +meaningful story for it to be acted upon. A good story: + +* specifies **why** a change is needed. +* explains how to reproduce the described condition. + + .. note:: + Please try to provide a reproducer based on unit tests, :ref:`devstack + <deploy_devstack>` or bifrost_. While we try our best to support users + using other installers and distributions, it may be non-trivial without + deep knowledge of them. If you're using a commercial distribution or + a product, please try contacting support first. + +* should be understandable without additional context. For example, if you see + an exception, we will need the full traceback. + +* should not be too verbose either. Unfortunately, we cannot process a few days + worth of system logs to find the problems, we expect your collaboration. + +* is not a question or a support request. Please see :doc:`contributing` for + the ways to contact us. + +* provides a way to contact the reporter. Please follow the comments and + expect follow-up emails, but ideally also be on IRC for questions. + +An enhancement request additionally: + +* benefits the overall project, not just one consumer. If you have a case that + is specific to your requirements, think about ways to make ironic extensible + to be able to cover it. + +* does not unnecessary increase the project scope. Consider if your idea can be + implemented without changing ironic or its projects, maybe it actually + should? + +Triaging Guide +-------------- + +The bug triaging process involves checking new stories to make sure they are +actionable by the team. This guide is mostly targeting the project team, but we +would appreciate if reporters could partly self-triage their own requests. + +* Determine if the request is valid and complete. Use the checklist in the + `Reporting Guide`_ for that. + +* Is the request a bug report or an enhancement request (an RFE)? The + difference is often subtle, the key question to answer is if the described + behavior is expected. + + Add an ``rfe`` tag to all enhancement requests and propose it for the "RFE + Review" section of the `weekly meeting`_. + +* Does the RFE obviously require a spec_? Usually this is decided when an RFE + is reviewed during the meeting, but some requests are undoubtedly complex, + involve changing a lot of critical parts and thus demand a spec. + + Add a ``needs-spec`` tag to enhancement requests that obviously need a + spec. Otherwise leave it until the meeting. + +* Apply additional tags: + + * All hardware type specific stories should receive a corresponding tag (e.g. + ``ipmi``, ``idrac``, etc). + + * API-related stories should have an ``api`` tag. + + * CI issues should have a ``gate`` tag. + +The next actions **must only** be done by a core team member (or an experienced +full-time contributor appoined by the PTL): + +* Can the RFE be automatically approved? It happens if the RFE requests an + implementation of a driver feature that is already implemented for other + drivers and does not pose additional complexity. + + If the RFE can be automatically approved, apply the ``rfe-approved`` tag. + If unsure, never apply the tag! Talk to the PTL instead. + +* Does the RFE have a corresponding spec approved? If yes, apply the + ``rfe-approved`` tag. + +* In the end, apply the ``ironic-triaged`` tag to make the story as triaged. + +Expiring Bugs +------------- + +While we hope to fix all issues that our consumers hit, it is unfortunately not +realistic. Stories **may** be closed by marking all their tasks ``INVALID`` in +the following cases: + +* No solution has been proposed in 1 calendar year. + +* Additional information has been requested from the reporter, and no update + has been provided in 1 calendar month. + +* The request no longer aligns with the direction of the project. + +.. note:: + As usual, common sense should be applied when closing stories. + +.. _StoryBoard: https://storyboard.openstack.org +.. _ironic project group: https://storyboard.openstack.org/#!/project_group/ironic +.. _bifrost: https://docs.openstack.org/bifrost +.. _spec: https://specs.openstack.org/openstack/ironic-specs/ +.. _weekly meeting: https://wiki.openstack.org/wiki/Meetings/Ironic diff --git a/doc/source/contributor/contributing.rst b/doc/source/contributor/contributing.rst index 88f8449da..7295da979 100644 --- a/doc/source/contributor/contributing.rst +++ b/doc/source/contributor/contributing.rst @@ -36,11 +36,13 @@ The ironic project moved from Launchpad to `StoryBoard <https://storyboard.openstack.org/>`_ for work and task tracking. This provides an aggregate view called a "Project Group" and individual "Projects". A good starting place is the -`project group <https://storyboard.openstack.org/#!/project_group/75>`_ +`project group <https://storyboard.openstack.org/#!/project_group/ironic>`_ representing the whole of the ironic community, as opposed to the `ironic project <https://storyboard.openstack.org/#!/project/943>`_ storyboard which represents ironic as a repository. +See :doc:`bugs` for more details on how we track bugs. + Internet Relay Chat 'IRC' ------------------------- diff --git a/doc/source/contributor/index.rst b/doc/source/contributor/index.rst index 136827f94..0377bdb34 100644 --- a/doc/source/contributor/index.rst +++ b/doc/source/contributor/index.rst @@ -12,6 +12,7 @@ project. :maxdepth: 1 Developer Contribution Guide <contributing> + Bugs Reporting and Triaging Guide <bugs> Setting Up Your Development Environment <dev-quickstart> Priorities <https://specs.openstack.org/openstack/ironic-specs/#priorities> Specifications <https://specs.openstack.org/openstack/ironic-specs/> diff --git a/doc/source/index.rst b/doc/source/index.rst index 39d7481ee..d62cadeee 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -22,6 +22,8 @@ previous release of ironic, append the OpenStack release name to the URL; for example, the ``ocata`` release is available at https://docs.openstack.org/ironic/ocata/. +Found a bug in one of our projects? Please see :doc:`/contributor/bugs`. + Installation Guide ================== |