Labels, projects, and milestones roadmap
The .NET docs team makes extensive use of GitHub labels to organize our work. By filtering on combinations of labels, we can quickly focus on sections of interest on the .NET docs website. For example, we could filter to all of the open issues on the architecture guides with a query to is:issue is:open label:"dotnet-architecture/prod".
We use GitHub projects to organize sprints and other goal-oriented epics. We also use GitHub milestones to track work. It is best to think of projects for planning (issues), and milestones for work (pull requests).
This roadmap explains how we use these organizational tools and has links to handy filters we use to find areas of interest.
Labels
If this is your first experience contributing to dotnet/docs, start with the up-for-grabs issues. These are issues that have a more focused scope. They are a great way to make your first contribution. From the up-for-grabs view, you can further filter issues based on areas and priority. We've identified good issues for beginners with the good-first-issue if you want to try a smaller first contribution.
We use labels to classify issues in many different ways:
You can combine a label from each set (guide, release, priority) to create a narrow focus to find issues you want to work on.
Find issues for a single .NET guide
We use labels for each of the architecture e-books and for each .NET Guide. All ebooks are noted with the dotnet-architecture/prod label. Each book has a unique label that ends with /tech
.
Each .NET Guide is noted with the /prod
suffix and has a blue-gray background. Here are current issues filtered for each of the .NET guides.
- .NET Guide -
dotnet/prod
- .NET Fundamentals Guide (formerly .NET Standard Guide) -
dotnet-fundamentals/prod
- .NET Fundamentals Guide (formerly .NET Core Guide) -
dotnet-core/prod
- .NET Framework Guide -
dotnet-framework/prod
- API Reference -
dotnet-api/prod
- C# Guide -
dotnet-csharp/prod
- F# Guide-
dotnet-fsharp/prod
- Visual Basic Guide - `dotnet-visualbasic/prod
- ML.NET Guide -
dotnet-ml/prod
- Azure .NET SDK -
azure-dotnet/prod
- .NET for Apache Spark Guide -
dotnet-spark/prod
- .NET Desktop Guide -
dotnet-desktop/prod
Other product labels are defined for areas that cross repositories.
Find issues for one section of a guide
The .NET guides are large, so these labels further limit the scope by a section of a guide. Each .NET Guide subarea is noted with the /tech
suffix and has a light blue background. Many of these labels apply to multiple guides, while others are in only one guide. After filtering on an area, add one of these labels to further limit the scope of issues.
Releases
Issues tagged for a specific release are noted with the :checkered_flag: Release:
prefix and have a dark yellow background.
Priority
Priority labels are all Pri
followed by a single digit. Lower numbers are higher priority:
Pri0 - Critical priority
Security issue or legally required for compliance. We drop everything else to fix.
Pri1 - High priority
Essential for common scenarios. Or highly visible error on high page view article. We do these before P2 or P3 work.
Pri2 - Medium priority
Helpful for common scenarios but not blocking. We do these if quick and easy, or fit them in while addressing a P1 issue in the same article.
Pri3 - Low priority
Helpful for edge cases, trivial corrections for common scenarios, low page view article, or deprecated technology. Not worth our time but up for grabs for community contribution. A P3 issue may be closed if not addressed after two months.
What about the other labels
There are many other labels used by the content teams to manage different classifications of issues. If you're not on the content team, you can ignore these other labels.
Projects
Projects are intended for planning purposes, where prioritized work is automated through a Kanban board. Projects should only ever contain GitHub issues, not pull requests. Projects differ from milestones, in that milestones only contain pull requests.
We use projects in two ways:
Month YYYY
project types: These are Kanban boards for each month's working plan.- Examples, July 2020, August 2020, and so on.
- Long-running epics: These are used to organize tasks toward a goal when the work will occur over several months.
- Examples: .NET 5 Wave - Reorganization, .NET Languages (.NET 5 wave) , and so on.
Milestones
Milestones typically follow the same naming convention of projects Month YYYY
, but they're different from projects. We use milestones to track completed work. Milestones should not contain issues (potential work), but rather exclusively contain pull requests. The current milestone is automatically applied to new pull requests.