- Participants: users, contributors and maintainers.
- We're looking for users.
- README.md and CONTRIBUTING.md
- Why open source?
- Collect better feedback on our software from users.
- Gather direct insights into how users use our software.
- Developers are empowered to:
- fix problems and answer questions themselves and maybe even blog about it
- open detailed and actionable issues for us
- Direct channel to product team.
- Some things don't change:
- CSS is as important as ever; not all developers want to use GitHub.
- We'll still use DevOps for work item tracking.
- CI is provided by DevOps Pipelines.
- Most issues are to ask for help.
- Issue templates: help users help us.
- Cross-references and @-mentions help people find related issues and learn.
- Respond to feature requests too, perhaps with an @-mention.
- Above all else be patient.
- We know much more about our software.
- They might not write English in the way we expect.
- Most users come around. See e.g. Azure/azure-sdk-for-go#3111
- Users opening issues are our MVPs.
- Issues are also a knowledge base for later searchers to provide complete answers.
- Key Performance Indicators (KPIs):
- Time to first response.
- Time to resolution.
- Suggestion: IcM assignee also handles GitHub issues.
- PR templates: help contributors help us.
- Typical flow is fork then PR rather than branch then PR, because contributors can't push branches.
- Tests should be included and CI must pass; we can help if needed. This is why we need public CI results.
- Squash and rebase, but retain the original commit and author!
- Significant PRs should be assigned to one maintainer for interaction and eventual merge (or close).
- TODO: establish standards for commit messages.
- Keep a clean history.
- Suggestion: don't force-push. Don't change the commit associated with a tag.
- Suggestion: avoid merge commits by always rebasing.
- Special files: https://www.google.com/search?q=github+special+files
- CODEOWNERS: https://help.github.com/en/articles/about-code-owners
- CONTRIBUTING.md
- ISSUE and PR templates
- Labels - help categorize and rationalize issues. No hierarchy.
- Milestones - help customers understand when an update will be available.
- Wikis - Long-form instructions which will be needed again. Could also go in
./doc
. - Actions