Closed Snuggle closed 6 years ago
Our labeling system definitely could do with some work. I would personally prefer a categorized label system, like the ones used here: https://github.com/yoshuawuyts/github-standard-labels, which provides a pretty full story at a glance (e.g. https://github.com/yoshuawuyts/github-standard-labels/issues/4). Thoughts? 😄
I like for the most part! The "greenkeeper" (I don't know what this is! And "starter" labels I feel are a tiny bit unpolished though.
I think duplicate could become "Status: Duplicate".
Perhaps "starter" could become "Type: Newbie-friendly"?
I also think it would be cool if we could add a couple space/fish themed puns, but I wouldn't want to sacrifice readibility.
Yep. greenkeeper
is for issues that are automatically made with Greenkeeper, so that shouldn't be needed.
I definitely think we should just use github-standard-labels as a starting point. I agree that starter
could be clarified as First-time Contributor
or Newbie-Friendly
(not sure what they intended it to mean 🤔). We should definitely add some domain-specific labels for common issue-types, such as Area: Compatibility
or Upstream
.
I'll draft what I think would be a good list later today. Feel free to give it a shot first, and we can compare lists. 😄
Thinking it over, below is the list I came up with. I removed a couple statuses from standard and added "Difficulty". With regards to duplicate being a status, I believe it is better qualified as a reason for a resolution than a status, so I probably wouldn't put it in the same category.
I'll also be installing https://github.com/probot/settings so that contributors can make PRs to change our labeling system. 😄
(light blue to dark blue) Difficulty: My First Commit Difficulty: Easy Difficulty: Medium Difficulty: Hard
(pale yellow to deep red) Priority: Low Priority: Medium Priority: High Priority: Critical
(all the same color - blue) Status: Abandoned Status: Available Status: Blocked Status: In Progress Status: Review Needed
(all the same color - bright yellow) Type: Bug Type: Documentation Type: Enhancement Type: Maintenance Type: Question
Duplicate (gray) Upstream Issue (any color - purple)
Status seems... Odd. What does Status: Available
mean? Available for what? This might make sense for pull requests but not really issues.
I'm not sure how I feel about My First Commit
. It could discourage people who are still pretty new to GitHub but not exactly experienced. Those who have contributed to maybe one or two projects before. It may also be a bit confusing if they don't know what "My First Commit" means, it could be a common phrase on GitHub for the project maintainer's first commit? Who knows. 😋
In addition, most people's "first commits" are all within their own repository, one for testing and learning how to use Git. Perhaps "first contribution" or "first contributors" instead? Or heck, even "first pull request".
Also, you've used the colour blue twice for two entire distinct categories. Perhaps the difficulty label should start at a pastel, very inviting and friendly pink (Pink is seen as a friendly colour!) but gradually shift towards darker pinks and even red for the hardest of difficulties. (Red is also associated with difficulty or as a warning of.)
v Coral friendly —— v Suitable for sardines —— v A trout's time —— v Salt-water fish only — v Only for astro-sharks
This might make sense for pull requests but not really issues.
Yep! Keep in mind that these labels will be applied to both issues and PRs. Most of the status labels are meant for PRs.
I'm not sure how I feel about My First Commit.
Yep, changing that is fine with me. How about Trivial, Easy, Medium, Hard?
Perhaps the difficulty label should start at a pastel, very inviting and friendly pink (Pink is seen as a friendly colour!) but gradually shift towards darker pinks and even red for the hardest of difficulties.
The red spectrum for difficulty might have too much crossover with priority, how I was thinking of it:
I like Trivial, Easy, Medium, Hard. Simple to understand and relatively intuitive.
How about a colour scale that starts with pink as being trivial, ends with dark purple being hard. As a guess, a colour scale that goes from #FFAAAA to #640064.
Then make upstream issue a bright flouresent orange, since we haven't used orange.
That color scale seems to get a little muddy in the middle and might be as clear at a glance:
How about salmon to deep pink?
Or teal to blue?
I think I'd prefer a simple blue color scale, actually. We could use a different color for status.
I love the look of salmon to deep pink, but the hard difficulty label becomes hot pink. :yum: It would work though!
The blue scale doesn't look visually distinct enough between each shade, in my opinion. The teal or pink ones all look very distinct though.
Aah! Just realized I've been making swatches of 5 colors, but our scales have 4 values. 🤦♂️
How does this look?
Priority
Difficulty
Hmm...
I guess deep yellow is more suitable for type:
Deep green for status?
What colours are they? :yum:
Yellow: #fbca04 Green: #0e8a16
Thinking about it, maybe status should have varying colors depending on whether the PR is advancing or not... 🤔
Yeah, the label on line 16 is odd. Blocked or review needed shouldn't be green, green is associated with things progressing or advancing.
Perhaps greyscale?
I don't know that we should have the status requiring action (Review Needed) to be gray, especially if it matches Duplicate.
How about: Abandoned - gray (Same action as duplicate) Blocked - white? Available - green Review Needed - pink/purple (get our attention!) In Progress - green
Sounds okay to me. 😊
I've gone ahead and created the labels.
Any feedback or final thoughts before we close this issue?
I decided to prefix ordered labels (D1 - Difficulty: Trivial
, D2 - Difficulty: Easy
, etc.) because otherwise, they weren't appearing in the correct order in the labels list here and in the prompt to add labels.
Oh my gosh, everything is labeled! I'm happy, thank you! 💞✨
Hmm... The Status: In Progress
seems a little redundant if we have the [WIP] bot as well.
Also uncertain about some of the more subjective labels. How should things be prioritized? The difficulty of pull requests also is a bit of a guessing game. :yum:
Status: In Progress
would be for the issue rather than the PR, so it still would come in handy when going through issues. I can see spacefish-bot automating label management in the future (removing status labels from merged PRs and issues, etc.) 🤖
My thoughts on priority are that something should be higher priority if it's a bug that causes functionality to diverge from upstream, medium priority if it would help us catch up to upstream behavior, low priority if it is a planned upstream feature or project maintenance (docs, ci, etc.) This is definitely something we can better document in CONTRIBUTING.md if we choose to stick with it.
Difficulty... Yeah. 🤔 Unless we know the cause of a bug at the time of creating the issue, we shouldn't give bugs difficulty. Otherwise, we would get to learn how to rate issue difficulty over time, much like a team calibrates with how they assign story points in an Agile setting.
I am by no means married to this labeling scheme. If we find it doesn't work, we can scrap it at any point for a more conventional one. 😛
Feature Request
Is your feature request related to a problem? Please describe. The current set of labels in this repository are just the standard, generic ones supplied by GitHub. They're no fun! Many of the labels can overlap somewhat and they can be a little confusing.
Describe the solution you'd like Would it be possible to port the labels that upstream uses, since they appear to be much more detailed and specific? :slightly_smiling_face:
I also believe it would be a good idea to keep a label called
upstream-issue
, for any issues that we're waiting on Spaceship to chart course before we fire the rockets and implement ourselves. :earth_africa: :rocket: