How to use Discussions, Issues, and Pull Requests #6075
jnfrati
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
This repository uses a discussion-first workflow for community bug reports and feature requests.
The short version:
Discussions are where we collect context, reproduce problems, understand impact, and avoid duplicates. Issues are for validated work that is ready for a maintainer or contributor to pick up. Pull requests are where the fix or implementation happens.
When to open a discussion
Open a discussion when you want to report a problem, request a feature, ask for help, or confirm whether something is expected behavior.
Choose the category that fits best:
If you are not sure whether something is a bug, start with Q&A / Support. We can move it into triage if it turns out to be a product issue.
Do not use public discussions for security vulnerabilities, secrets, private keys, internal hostnames, or sensitive logs. Use the repository security policy for vulnerability reports.
Before opening a new discussion
Please do three things first:
If a similar discussion already exists, upvote it and add your use case there instead of opening a duplicate. Extra reproduction details, affected versions, and deployment notes are useful even when the discussion already exists.
What makes a useful bug report
For Issue Triage, the most useful reports include:
For client-related reports, these commands are often helpful:
netbird version netbird status -dA netbird debug for 1m -AS -UUploaded debug bundles are automatically deleted after 30 days.
Intermittent issues are still useful, but they need enough detail to investigate: trigger, frequency, timing, timestamps, and any related logs.
What makes a useful feature request
For Ideas & Feature Requests, try to describe the problem before the solution.
A strong request explains:
Community signal matters. Upvotes, comments, real deployment details, and examples from other tools help us understand priority.
What happens during triage
After a discussion is opened, DevRel, maintainers, or community members may:
Not every discussion becomes an issue. Some are answered in Q&A, some turn out to be configuration problems, some are duplicates, and some need more information before engineering can act on them. That's fine, a well-answered discussion is still a useful outcome.
When a discussion becomes an issue
A discussion gets promoted to an issue once it's clear enough for someone to pick up and act on.
For a bug, that usually means:
For a feature request, that usually means:
When that happens, a maintainer or DevRel team member opens a validated issue linked back to the source discussion. It should include the summary, evidence, proposed scope, and acceptance criteria so whoever picks it up has everything they need.
The current issue label taxonomy is tracked separately in Issue label taxonomy.
From issue to pull request
Once an issue exists, it is the work item.
A maintainer or contributor can pick it up, discuss implementation details on the issue, and open a pull request in the repository where the fix belongs. The pull request should link the issue with a closing keyword when appropriate, for example:
The issue's acceptance criteria should guide review. When the PR is merged, the issue is closed. If the original discussion contains useful community context, maintainers may also post a short update there so people following the discussion know what changed.
Multi-repo flow
Community discussions live in
netbirdio/netbird, even when the affected component is maintained in another repository.During validation, maintainers decide where the implementation belongs. The resulting issue or pull request may be created in
netbirdio/netbird,netbirdio/dashboard,netbirdio/kubernetes-operator,netbirdio/docs, or another NetBird repository.You do not need to know the right repository before opening a discussion. Start with the discussion; routing is part of triage.
Maintainer-created issues
Maintainers can still open issues directly when the work is already validated or discovered internally. Examples include regressions found during development, planned maintenance, release blockers, or follow-up work from an existing PR.
Those issues should still be clear enough for someone else to understand the scope and acceptance criteria.
Lifecycle examples
Bug report
Feature request
Support question
The goal
The goal is a cleaner, more useful workflow for everyone:
Thanks for helping keep NetBird's issue tracker useful and actionable.
Beta Was this translation helpful? Give feedback.
All reactions