summaryrefslogtreecommitdiff
path: root/docs/contributing/issues-features.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/contributing/issues-features.rst')
-rw-r--r--docs/contributing/issues-features.rst103
1 files changed, 79 insertions, 24 deletions
diff --git a/docs/contributing/issues-features.rst b/docs/contributing/issues-features.rst
index 9b6602f9..e57766fc 100644
--- a/docs/contributing/issues-features.rst
+++ b/docs/contributing/issues-features.rst
@@ -28,27 +28,31 @@ issue prior to opening a bug request.
Ensure the problem is reproducible
----------------------------------
-When you are able to verify that it is actually a bug, spend some time to
-document how to reproduce the issue. This documentation can be invaluable.
-
-When you wish to have a developer fix a bug that you found, helping them
-reproduce the issue is beneficial to everyone. Be sure to include information
-about the hardware you are using, commands that you were running, any other
-activities that you may have been doing at the time. This additional
-information can be very useful.
-
-* What were you attempting to achieve?
-* What was the configuration prior to the change?
-* What commands did you use? Use e.g. ``run show configuration commands``
-
-Include output
---------------
-
-The output you get when you find a bug can provide lots of information. If you
-get an error message on the screen, copy it exactly. Having the exact message
-can provide detail that the developers can use. Like wise if you have any log
-messages that also are from the time of the issue, include those. They may
-also contain information that is helpful for the development team.
+You should include the following information:
+
+* A sequence of configuration commands or a complete configuration file
+ required to recreate a setup where the bug occurs.
+ Please avoid partial configs: a sequence of commands is easy to paste into the console,
+ a complete config is easy to load in a VM, but a partial config is neither!
+ At least not until we implement a "merge from the CLI"
+ feature that allows pasting config file chunks into a session.
+* The behavior you expect and how it's different from the behavior you observe.
+ Don't just include command outputs or traffic dumps —
+ try to explain at least briefly why they are wrong and what they should be.
+* A sequence of actions that triggers the bug.
+ We understand that it's not always possible, but it makes developer's job a lot easier
+ and also allows any community member to independently confirm
+ that the bug still exists or if it's already fixed.
+* If it's a regression, tell us a VyOS version where the feature still worked correctly.
+ It's perfect if you can tell exactly which version broke it,
+ but we understand that it's not always easy or feasible — any working version is acceptable.
+
+If you aren't certain what the correct behavior is and if what you see is really a bug,
+or if you don't have a reproducing procedure that reliably triggers it,
+please create a post on the forum or ask in the chat first —
+or, if you have a subscription, create a support ticket.
+Our team and community members can help you identify the bug and work around it,
+then create an actionable and testable bug report.
Report a Bug
------------
@@ -64,15 +68,66 @@ request.
.. _feature_request:
-Feature Request
-===============
+Feature Requests
+================
You have an idea of how to make VyOS better or you are in need of a specific
feature which all users of VyOS would benefit from? To send a feature request
-please search Phabricator_ if there is already a request pending. You can
+please search Phabricator_ to check if there is already a request pending. You can
enhance it or if you don't find one, create a new one by use the quick link in
the left side under the specific project.
+You must create a task before you start working on a feature.
+Yes, even if it's a tiny feature — we use the task tracker to generate release notes,
+so it's essential that everything is reflected there.
+
+You must include at least the following:
+
+* A reasonably detailed description of the feature: what it is, how it's supposed to work,
+ and how you'd use it.
+ The maintainers aren't familiar with every feature of every protocol and tool,
+ and community contributors who are looking for tasks to work on will also
+ appreciate more information that helps them implement and test a feature.
+* Proposed CLI syntax, if the feature requires new commands.
+ Please include both configuration and operational mode commands, if both are required.
+
+You should include the following information:
+
+* Is the feature supported by the underlying component
+ (FreeRangeRouting, nftables, Kea...) already?
+* How you'd configure it by hand there?
+* Are there any limitations (hardware support, resource usage)?
+* Are there any adverse or non-obvious interactions with other features?
+ Should it be mutually exclusive with anything?
+
+It's fine if you cannot provide some of that information, but if you can,
+it makes the work of developers considerably simpler,
+so try to do the research to answer those questions.
+
+Task auto-closing
+=================
+
+There is a special status for tasks
+where all work on the side of maintainers and contributors is complete:
+"Needs reporter action".
+
+We assign that status to:
+
+* Feature requests that do not include required information and need clarification.
+* Bug reports that lack reproducing procedures.
+* Tasks that are implemented and tested by the implementation author,
+ but require testing in the real-world environment that only the reporter can replicate
+ (e.g., hardware we do not have, specific network conditions...).
+
+This is what will happen when a task is set to "Needs reporter action":
+
+* If there is no response from the reporter within two weeks,
+ the task bot will add a comment ("Any news?") to remind the reporter to reply.
+* If there is no response after further two weeks, the task will be automatically closed.
+
+We will not auto-close tasks with any other status
+and will not close tasks for the lack of maintainer activity!
+
.. _documentation: https://docs.vyos.io
.. _Slack: https://slack.vyos.io
.. _Forum: https://forum.vyos.io