-
Notifications
You must be signed in to change notification settings - Fork 191
Issues
An issue represents a proposed change to the project's code base.
Issue templates provide predefined sections for the two most common types of change requests:
- Bug report - a description of existing functionality that is not working as expected
- Feature request - a description of new functionality that does not yet exist
<type>: <subject line>
Each issue title should include a prefix with <type>:
followed by a <subject line>
.
chore: add JS sourcemaps
doc: improve clarity of DocBlocks
feat: add summary report for all forms
format: apply WordPress Coding Standards
fix: prevent white screen after donation
Each issue starts with a user story that communicates the goal from the perspective of specific type of user. Every user story includes three key elements formatted as follows:
As a <type of user>
, I want <some goal>
so that <some reason>
.
- As a donor, I want Apple Pay support so that I can complete mobile transactions faster.
- As an accountant, I want to export quarterly donations so I can import them into bookkeeping software.
- As a developer, I want to disable CSS so I can provide my own custom styles.
A great issue proposes a change and defines the conditions necessary to accept that change. These conditions, known as acceptance criteria, must be true in order to accept the change and close the issue. There is no partial acceptance; either a criterion is met or it is not.
- Acceptance criteria DO clearly define the conditions of satisfaction.
- Acceptance criteria DO NOT prescribe solutions to achieve these conditions.
Each issue may contain one or more types of acceptance criteria:
- Functional Criteria - behavior related to user tasks, functions, or business processes
- Non-functional Criteria - non-functional conditions such as design standards or documentation
- Performance Criteria - performance-related conditions that must be true
- Something happens when an action is taken.
- Something does not happen when an action is taken.
- Fixing behavior in Component A does not affect existing behavior in Component B.
An issue may be closed automatically via pull request or manually if the issue is no longer being pursued. When manually closing an issue, an explanation must be provided as a comment. If a team member disagrees with the issue's closure, then it may be re-opened with a new comment providing further explanation.
- Begin each issue title with a
<type>:
prefix. - Use the imperative mood.
- Wrap any code, such as
Class_Name
,method()
,$property
,$variable
, or@tag
, in backticks. - Write goal-oriented issue titles. Think about the problem that needs solved and turn it into a goal.
- Assign each issue an estimate of story points based on complexity. This number can be updated once the issue is better understood. Issues with unknown complexity should be assigned 3 story points to start.
- Follow the issue template within reason, removing optional sections that do not apply.
- Do not end issue titles with a period.
- Do not exceed 50 characters in issue title.
- Do not include multiple goals in a single issue.
-
Support/Marketing/Community
- Add issue
- Add label
-
Development
- Add issue
- Add label
- Add estimate
-
Senior Development
- Add issue
- Add label
- Add estimate
- Add assignee
- Add to sprint (milestone)
- Add to release
- Add to epic
This Wiki is focused on GiveWP development. For help using our WordPress plugin, head over to our website where you'll find Plugin Documentation and Support.