SaltStack uses several label categories, as well as milestones, to triage incoming issues and pull requests in the GitHub issue tracker. Labels are used to sort issues by type, priority, severity, status, functional area, functional group, and targeted release and pull requests by status, functional area, functional group, type of change, and test status. Milestones are used to indicate whether an issue is fully triaged or is scheduled to be fixed by SaltStack in an upcoming sprint.
All issues are assigned to a milestone, whereas pull requests are almost never assigned to a milestone as the mean lifetime of pull requests is short enough that there is no need to track them temporally.
SaltStack uses milestones to indicate which issues are blocked on submitter or upstream actions, are approved, or are scheduled to be fixed or implemented in an upcoming sprint. If an issue is not attached to a sprint milestone, you are welcome to work on it at your own desire and convenience. If it is attached to a sprint milestone and you have already begun working on it or have a solution in mind or have other ideas related to the issue, you are encouraged to coordinate with the assignee via the GitHub issue tracker to create the best possible solution or implementation.
Approved
Blocked
Info Needed
, Question
, Expected Behavior
, Won't Fix For Now
, or Upstream Bug
.Under Review
<Sprint>
Neon
and there are five sprints until that release, the corresponding sprint
milestone will be called Ne 5
. See <topics/releases/version_numbers>
for a discussion of Salt's release
codenames.Labels are used to sort and describe issues and pull requests. Some labels are usually reserved for one or the other, though most labels may be applied to both.
New issues will receive at least one label and a milestone, and new pull requests will receive at least one label. Except for the functional area and functional group label categories, issues will generally receive only up to one label per category.
Issues are categorized into one of several types. Type labels are almost never used for pull requests. GitHub treats
pull requests like issues in many ways, so a pull request could be considered an issue with an implicit Pull Request
type label applied.
Feature
Bug
Duplicate
Upstream Bug
Question
Expected Behavior
An issue's priority is relative to its functional area. If a bug report, for example,
about gitfs
indicates that all users of gitfs
will encounter this bug, then a P1
label will be applied, even
though users who are not using gitfs
will not encounter the bug. If a feature is requested by many users, it may be
given a high priority.
P1
P2
P3
P4
Severity labels are almost always only applied to issues labeled Bug
.
Blocker
Critical
High Severity
Medium Severity
Many major components of Salt have corresponding GitHub labels. These labels are applied to all issues and pull requests as is reasonably appropriate. They are useful in organizing issues and pull requests according to the source code relevant to issues or the source code changed by pull requests.
Execution Module
File Servers
Grains
Multi-Master
Packaging
Related to packaging of Salt, not Salt's support for package management.Pillar
RAET
Returners
Runners
Salt-API
Salt-Cloud
Salt-SSH
Salt-Syndic
State Module
Tests
Transport
Windows
ZMQ
These labels sort issues and pull requests according to the internal SaltStack engineering teams.
Core
Platform
RIoT
Console
Documentation
Status labels are used to define and track the state of issues and pull requests. Not all potential statuses correspond
to a label, but some statuses are common enough that labels have been created for them. If an issue has not been moved
beyond the Blocked
milestone, it is very likely that it will only have a status label.
Bugfix - back-port
Bugfix - [Done] back-ported
label. Normally, new features should go into the develop and bug fixes into
the oldest supported release branch, see <which-salt-branch>.Bugfix - [Done] back-ported
Cannot Reproduce
Confirmed
Fixed Pending Verification
Info Needed
Pending Changes
Pending Discussion
The issue or pull request needs more discussion before it can be closed or merged. The status of the issue or pull request is not clear or apparent enough for definite action to be taken, or additional input from SaltStack, the submitter, or another party has been requested.
If the issue is not a pull request, once the discussion has arrived at a cogent conclusion, this label will be
removed and the issue will be accepted. If it is a pull request, the results of the discussion may require
additional changes and thus, a Pending Changes
label.
Won't Fix for Now
Every pull request should receive a change label. These labels measure the quantity of change as well as the significance of the change. The amount of change and the importance of the code area changed are considered, but often the depth of secondary code review required and the potential repercussions of the change may also advise the label choice.
Core code areas include: state compiler, crypto engine, master and minion and syndic daemons, transport, pillar rendering, loader, transport layer, event system, salt.utils, client, cli, logging, netapi, runner engine, templating engine, top file compilation, file client, file server, mine, salt-ssh, test runner, etc.
Non-core code usually constitutes the specific set of plugins for each of the several plugin layers of Salt: execution modules, states, runners, returners, clouds, etc.
Minor Change
Medium Change
Master Change
Expert Change
These labels relate to the status of the automated tests that run on pull requests. If the tests on a pull request fail and are not overridden by one of these labels, the pull request submitter needs to update the code and/or tests so that the tests pass and the pull request can be merged.
Lint
Tests Passed
These labels indicate miscellaneous issue types or statuses that are common or important enough to be tracked and sorted with labels.
Awesome
Help Wanted
Needs Testcase
Regression
Story
ZD
<Release>
<Release>
. See <topics/releases/version_numbers>
for a
discussion of Salt's release codenames.