matchai / spacefish

🚀🐟 The fish shell prompt for astronauts
https://spacefish.matchai.dev
MIT License
963 stars 79 forks source link

Let's Label the Stars! 🌠🏷️ #121

Closed Snuggle closed 5 years ago

Snuggle commented 5 years ago

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:

image

matchai commented 5 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? 😄

Snuggle commented 5 years ago

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.

matchai commented 5 years ago

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. 😄

matchai commented 5 years ago

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)

Snuggle commented 5 years ago

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".

Snuggle commented 5 years ago

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 2539

matchai commented 5 years ago

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: image

Snuggle commented 5 years ago

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.

matchai commented 5 years ago

That color scale seems to get a little muddy in the middle and might be as clear at a glance: image

How about salmon to deep pink? image

Or teal to blue? image

I think I'd prefer a simple blue color scale, actually. We could use a different color for status. image

Snuggle commented 5 years ago

I love the look of salmon to deep pink, but the hard difficulty label becomes hot pink. :yum: It would work though!

Snuggle commented 5 years ago

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.

matchai commented 5 years ago

Aah! Just realized I've been making swatches of 5 colors, but our scales have 4 values. 🤦‍♂️

How does this look?

Priority image

Difficulty image

Snuggle commented 5 years ago

image

Hmm...

matchai commented 5 years ago

I guess deep yellow is more suitable for type: image

Deep green for status? image

Snuggle commented 5 years ago

What colours are they? :yum:

matchai commented 5 years ago

Yellow: #fbca04 Green: #0e8a16

Thinking about it, maybe status should have varying colors depending on whether the PR is advancing or not... 🤔

Snuggle commented 5 years ago

image

Snuggle commented 5 years ago

Yeah, the label on line 16 is odd. Blocked or review needed shouldn't be green, green is associated with things progressing or advancing.

Snuggle commented 5 years ago

image Perhaps greyscale?

matchai commented 5 years ago

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

Snuggle commented 5 years ago

Sounds okay to me. 😊

matchai commented 5 years ago

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.

Snuggle commented 5 years ago

Oh my gosh, everything is labeled! I'm happy, thank you! 💞✨

Snuggle commented 5 years ago

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:

matchai commented 5 years ago

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. 😛