Skip to content

Instantly share code, notes, and snippets.

@JunTaoLuo
Last active January 25, 2021 22:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JunTaoLuo/4e870ff12af55a0146ab3fbcf4bfd7e3 to your computer and use it in GitHub Desktop.
Save JunTaoLuo/4e870ff12af55a0146ab3fbcf4bfd7e3 to your computer and use it in GitHub Desktop.
ASP.NET Core area label consolidation

ASP.NET Core area label consolidation

Goals

Last week, we discussed the idea of consolidating some of the labels we use for issue management. The main goals of this effort are:

  1. Reduce the number of mis-tagged issues due to the confusion of which area labels should be applied
  2. Make the labels more clearly indicate which group/triage is responsible for tracking the filed issues

Update to area labels

Considering the above goals, we are proposing to conslidate some existing labels into area-servers and update the scope of area-infrastructure.

Specifically:

area-servers

This is a new area and will be owned by the Servers aka K-Core team. It will include all the functionality covered by the tags:

area-azure
area-caching
area-hosting
area-httpclientfactory
area-middleware
area-servers
area-websockets
part of area-platform

Issues that fall under these areas will continue to be triaged during the K-Core triage and replacement feature-* tags will be used for clarification and organization purposes. The features tags are optional and are not mandatory until triaged by the K-Core team. The features also ensure we don't lose granularity in organizing aspnetcore issues. Currently, some issues in area-platform are tagged as such since it affects aspnetcore as a whole. These issues will be tagged with area-servers without any specific feature tag. For example, dotnet/aspnetcore#27270

Naming

While there is some contention in using the name area-servers for this consolidated area, it was chosen for the following reasons

  1. It is general enough to encompass all of the merged areas but not overly so as to be ambiguous
  2. It matches with the labels used on stack-overflow

Alternatives considered:

area-servers

Due to it being an existing label, it doesn't clearly communicate that it now contains more areas. Also, it's not immediately obvious that servers also includes issues affecting caching, hosting and httpclientfactory. However, due to the feedback we got with regards to area-aspnetcore, we're opting for this instead.

area-aspnetcore

This is an overly general term and clashes with the repo name. It almost sounds like it should encompass all other areas instead of the ones listed above.

area-platform

This is also an existing label and has the same fault as area-server. This label is also too general and platform may mean a number of different things to different people. Given that this is a public label, it's best to avoid terminology that can be ambiguous.

area-runtime

Runtime is something that has more significance for internal teams since we have a better understanding of how the .NET Runtime and SDK is organized. However, externally, area-runtime suffers the same issue as area-platform in being ambiguous and means different things to different people. To add to the confusion, other areas such as mvc and signalr are shipped in-box in the ASP.NET Core runtime.

area-infrastructure

This existing area will be owned by the Build v-team and be updated to include all the functionality covered by the current tags:

area-infrastructure
area-installers
part of area-platform

Issues that fall under these areas will be triaged during the Build standup. A replacement feature-installers will replace the area-installers tag. The issues in area-plaform that are categorized as mechanically more related to infrastructure will be moved into this area. For example, dotnet/aspnetcore#25917

unaffected areas

The following areas will not change in content or ownership:

area-dataprotection
area-grpc
area-healthchecks
area-identity
area-signalr
area-blazor
area-commandlinetools
area-mvc
area-perf
area-razor.compiler
area-razor.tooling
area-security

Work Items

Here are the known work items:

  1. Replacing or removing the obsoleted area labels as listed above and move issues into the consolidated areas
  2. Update internal documentation and triage queries with the new area/feature labels
  3. Update Hubbup and PR labeling automation
@javiercn
Copy link

Thanks for putting this together.

I'm ok with the proposal in general. The only thing that I believe we need to find a better name is the area you want to use for the "top" level label.

area-aspnetcore is the most generic label name that we can pick. The repo is aspnetcore which is the same as the label, other parts that are not marked aspnetcore are also part of aspnetcore (identity, mvc, blazor, etc.)

From the list of things that you want to put into different areas

area-azure
area-caching
area-hosting
area-httpclientfactory
area-middleware
area-servers
area-websockets
part of area-platform

There are 4 areas that are related to networking (httpclientfactory, servers, websockets, hosting), so maybe we could group those into something like area-networking, area-network or similar.

For the rest of the labels (azure, caching, middleware) maybe we could group those into something like area-fundamentals, area-crosscutting or bundle them into area-middleware?

I think the difficulty trying to come up with a good name comes from the fact that we are trying to group things that are "too diverse" so specific names don't produce a good result.

If we are looking to minimize the amount of mislabeled items, while placing them in descriptive areas, maybe it makes sense to come up with more than one general group to place them in?

Then you can further add labels to be more specific.

@dougbu
Copy link

dougbu commented Jan 25, 2021

I agree w/ @javiercn. area-aspnetcore is more general than area-server[s], area-platform, and area-runtime because all of those will be interpreted in the context of the dotnet/aspnetcore repo. Do not use a name that appears to cover the entire repo.

Given comments suggesting these labels are not really intended for public consumption, why does it matter that area-server[s] and area-platform exist today:grey_question:

Personally, I favour area-server (singular) because it's new and consistent with the traiging team's responsibilities. Any of the other suggestions work too.

@Pilchie
Copy link

Pilchie commented Jan 25, 2021

Note - these labels are used by customers when they search for things, so having something that makes some sense is better.

@JunTaoLuo
Copy link
Author

We discussed this among ourselves and we felt area-servers is a better name for the consolidated area label. I'm going to update the document.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment