Ongoing development on this project is managed by this project board: https://github.com/neontribe/www/projects/6.
Before a thing can be worked on it must be both created as an issue, and prioritised using a definition of done.
- Open the
Issues
tab and clickNew issue
and choose the right template.- anyone can create issues
Bug
is for bugsStory
is for new things, e.g. code, content to meet a user needTasks
is for simple actions such as dependency updates, they are often repeatable and related to maintenanceResearch
is for tasks that are not going to effect the site yetCatch-up Meeting
is for the weekly catchup meeting Prioritising issues
- Follow the template so that the issue can be understood by others
- the template explains what you need to fill out
- don't worry about having everything, fill in as much as you can and focus on the Definition of done
- There is no need to attach the card to the project board, that step only happens during a prioritising session.
This takes place during a weekly catchup meeting when we need more issues for the project board, or when someone asks for a particular issue to be considered.
-
View new issues using this filter: https://github.com/neontribe/www/issues.
-
Decide whether the Definition of done is ready for action on a given ticket.
- if further work is needed then assign a related action in the meeting notes
-
Take tickets that are ready for action and add to
Top priority issues
orBacklog
columns based on group instincts of user value.- not all tickets will be high enough priority to make it
- decisions from previous meetings should not be revisited in the weekly cycle
- if an issue is agreed to be 'high priority' but the approach to take is not yet decided add a 'requires discussion' label to the issue, AND add an action to the meeting to note that it will be discussed the following week, tagging people that may be particularly interested
-
Document reason for decision on tickets, so that it makes sense later.
From time-to-time we may decide to hold more in depth prioritisation meetings to involve more people and to look at bigger issues.
These differ for each type of issue:
Bug
ClearExpected Behaviour
is what we use for the definition of done. It also needs clearly documented steps to reproduce the error so we can check the error has been elminated.Story
the definition of done uses Acceptance Criteria, this can be quite broad, specifically when the ticket is first created. We expect that the Acceptance Criteria will be refined during both prioritisation, and development, so that the final goal is clear and testable.Task
the description of the task usually contains its own definition of done, additional things such as security notes may be relevant.Research
will depend on the context and may be a simple statement of research aims.
Any issues in the Top priority issues
column are important enough and have been prioritised.
When contributing to this project please do the following:
- Pick something near the top of the
Top priority issues
column, which you feel you have the time and confidence to tackle.- We expect you to learn while tackling issues, please don't be put off by a tasks' seeming complexity.
- Check the Definition of done for the ticket to see if you understand it.
- If you need more information please follow up with the person who spawned/created the task.
- Assign yourself and move the ticket to the
In progress
column. - Create a branch with a name to help match it to the ticket, e.g.:
307-contrib-docs
. - Work on the feature branch, make small commits which include the reason for each commit's change.
- We don't expect you to battle the problem alone, put any queries on the github issue and slack, people will help when they have time.
- When you're happy with the changeset/the commits you've made, and you're happy that the ticket passes its Definition of done create a pull request.
now.sh
will generate a build and deploy to a temporary URL which is available on your pull request page, along with the status of build.- ⭐ Check it ⭐
- Both you and reviewers should check that the changes you've made are available on the temporary URL.
- Await code review, see Review process
- Pull requests are the pull requester's responsibility, use slack and other channels to encourage people to review for you.
- Before you merge, it is your responsibility to respond to suggestions and change requests.
- It's not personal. Lots of comments can be a good thing, even if they're all suggesting changes.
Please make sure that you keep your activity up-to-date:
- take each ticket as far as you can, before taking another one (e.g. ready for code review)
- if the ticket needs to be put on hold because you've reached the limit of your availability or understanding then;
- put your findings/thoughts on the ticket
- put the branch name (if any) on the ticket
- unassign yourself and put it back in
Top priority issues
- if the ticket needs to be put on hold because you've reached the limit of your availability or understanding then;
Two or more tribers need to approve the pull request, often getting the person who wrote the ticket involved is best.
Review is about: checking for errors, checking that the work achieves the definition of done for the ticket, and also about suggestions for different solutions.
Always assume that the author is not trying to be an arsehole, isn't an idiot, and is probably operating under constraints that you don't understand. Be gentle and ask questions.
WIP:
is done using feature branch deploys on pull request