Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DNM: Proposal for unifying and improving labels in TiDB, TiKV, and PD repos #11729

Closed
wants to merge 5 commits into from

Conversation

nrc
Copy link
Contributor

@nrc nrc commented Aug 13, 2019

For discussion only. See the document for description, etc: rendered

PTAL everyone!

Leave comments by reviewing

For discussion only
@nrc nrc added type/question The issue belongs to a question. proposal status/DNM labels Aug 13, 2019
@nrc nrc requested review from siddontang and shenli August 13, 2019 07:14
@CLAassistant

This comment has been minimized.

@winkyao
Copy link
Contributor

winkyao commented Aug 13, 2019

IMHO, category/label is better because it's more readable.

labels.md Outdated Show resolved Hide resolved
labels.md Outdated
errmsg #a7c938 T: Error message #1d76db
for new contributors #c2e0c6 D: Mentor #0e8a16
help wanted #159818 S: HelpWanted #e6e6e6
needs-cherry-pick-2.1 #000000 T: CherryPick-2.1 #1d76db
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This label means the PR needs to be cherry-picked to the 2.1 release branch.

labels.md Outdated
status/future #fbca04 ?
type/1.0 cherry-pick #c2e0c6 *
type/2.0 cherry-pick #99d0ef *
type/2.1 cherry-pick #9bfff5 * <T: CherryPick-2.1>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this label means the PR is a cherry-pick on the 2.1 release-branch.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is this used for? I.e., why does it matter if a PR has been cherry-picked?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ping @zz-jason question ^

Copy link
Contributor

@winkyao winkyao left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rest LGTM

Copy link
Contributor

@winkyao winkyao left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

.

labels.md Outdated Show resolved Hide resolved
labels.md Show resolved Hide resolved
labels.md Show resolved Hide resolved
labels.md Outdated Show resolved Hide resolved
labels.md Outdated Show resolved Hide resolved
labels.md Outdated Show resolved Hide resolved
labels.md Outdated
status/DNM #b60205 S: DNM #e6e6e6
status/LGT1 #d4c5f9 * <S: Waiting on review>
status/LGT2 #5319e7 * <S: Waiting on review>
status/LGT3 #330099 * <S: Waiting on review>
Copy link
Member

@zz-jason zz-jason Aug 13, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typically, we use these kind of labels to tell whether we can approve the PR after we comment a LGTM on the PR. If the PR is labeled with LGT1, then we can approve the PR when we comment another LGTM.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are these useful? It seems to me, you can see this from looking at the GitHub reviews (which I guess didn't exist when these labels were created?). And I think a reviewer or author no longer has to merge/approve the PR since the bot should do that automatically once a PR has enough reviews and passing CI.

labels.md Show resolved Hide resolved
labels.md Show resolved Hide resolved
@codecov

This comment has been minimized.

@nrc
Copy link
Contributor Author

nrc commented Aug 13, 2019

I've updated to take comments into account and make spacing and capitalisation more consistent. I haven't changed the naming scheme yet.

Do others prefer category/label too?

@shenli
Copy link
Member

shenli commented Aug 13, 2019

I've updated to take comments into account and make spacing and capitalisation more consistent. I haven't changed the naming scheme yet.

Do others prefer category/label too?

I prefer category/lable. Kubernetes follows this way. See: https://github.com/kubernetes/kubernetes/issues

@nrc
Copy link
Contributor Author

nrc commented Aug 13, 2019

Now with category/label

labels.md Outdated Show resolved Hide resolved
Copy link

@Hoverbear Hoverbear left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally LGTM, this feels very familiar from all the times I browsed rust repos. :)

@shenli
Copy link
Member

shenli commented Aug 14, 2019

The labels look good to me. But I have another question. Where should we put this document? In some dir of the TiDB repo or in the community repo?

@nrc
Copy link
Contributor Author

nrc commented Aug 14, 2019

The labels look good to me. But I have another question. Where should we put this document? In some dir of the TiDB repo or in the community repo?

I wasn't planning to keep this document, just make the changes to the labels and close this PR.Do you want to keep it?

@Hoverbear
Copy link

I'd like to see the TiKV portion go to our RFCs repo. :) Let's get two approvals form the TiKV maintainers first so we can be sure to merge it without change.

cc @BusyJay @zhangjinpeng1987 @siddontang @sunxiaoguang PTAL and let us know if you are willing to merge this as-is as a TiKV RFC.

@nrc
Copy link
Contributor Author

nrc commented Aug 15, 2019

ping @zz-jason I've addressed some of your comments in the labels doc and have replied to other comments inline. PTAL

@nrc
Copy link
Contributor Author

nrc commented Aug 19, 2019

re-ping @zz-jason are you satisfied with the answers to your questions?

## TiKV

```
C: Build #d1fad7 component/build #d1fad7
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like these two conflicts to each other: "We use a C: label scheme for all repos" "Current labels and colours are on the left, proposed are on the right"

C: Txn #d1fad7 component/transactions #d1fad7
C: Util #d1fad7 component/util #d1fad7
C: gRPC #d1fad7 component/gRPC #d1fad7
D: Easy #0e8a16 difficulty/easy #0e8a16
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that we previously used labels like "Component: Copr". However it is too long so changed to "C: Copr".

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Too long means there is a length limit on GitHub or it didn't look good?

Copy link
Member

@breezewish breezewish Aug 21, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It didn't look good, since usually there will be many labels and long labels makes the issue / PR list looks disheveled. Also short label is less distractive:

TiDB PR list

image

vs TiKV PR list

image

labels.md Show resolved Hide resolved
component/bench #d1fad7
C: TiKV-Client #d1fad7 component/TiKV client #d1fad7
C: TiKV-Ctl #d1fad7 component/TiKV ctl #d1fad7
C: Titan #d1fad7 component/Titan #d1fad7
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like we can merge C: RocksDB and C: Titan into C: Engine

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@siddontang
Copy link
Member

@Hoverbear

I am not sure whether putting it in RFC is good or not. But to unify the labels for all Repos, I think we should use a place to put it.

@siddontang
Copy link
Member

Thanks, @nrc

here I just see the color number like #0e8a16, but what does it really look like? How can we know it?

@@ -0,0 +1,220 @@
# Goals

* synchronise labels between repos
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we need to capitalize the first letter?
/cc @dcalvin

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should - but it does not matter here, as the point of this document is to finalize the labels.

labels.md Show resolved Hide resolved
@nrc
Copy link
Contributor Author

nrc commented Aug 23, 2019

here I just see the color number like #0e8a16, but what does it really look like? How can we know it?

Here's what each label looks like. All labels in the same category would have the same colours.

Screen Shot 2019-08-23 at 4 21 32 PM

@nrc
Copy link
Contributor Author

nrc commented Sep 2, 2019

@siddontang what do you think of the colours in #11729 (comment)?

@zz-jason are you happy with the answers to your questions inline?

@zz-jason
Copy link
Member

zz-jason commented Sep 3, 2019

LGTM

Copy link
Member

@breezewish breezewish left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the status of #11729 (comment) ?

@nrc
Copy link
Contributor Author

nrc commented Sep 5, 2019

What's the status of #11729 (comment) ?

@winkyao @shenli and @siddontang prefer category/label, @breeswish prefers C: label, I don't think anyone else has voiced an opinion.

Copy link
Member

@siddontang siddontang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

/cc @zhouqiang-cl, please pay attention to this PR, which may affect CI, benchbot, etc.

@zhouqiang-cl
Copy link
Contributor

ok

@zz-jason
Copy link
Member

What's the status of #11729 (comment) ?

@winkyao @shenli and @siddontang prefer category/label, @breeswish prefers C: label, I don't think anyone else has voiced an opinion.

I vote for category/label


```
C: Build #d1fad7 component/build #d1fad7
C: Build-Time #d1fad7 component/build time #d1fad7
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

look like build time is a subset of build

C: Copr #d1fad7 component/coprocessor #d1fad7
C: Doc #d1fad7 component/docs #d1fad7
C: PD-Client #d1fad7 component/PD client #d1fad7
C: Perf #d1fad7 component/perf #d1fad7
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

since now full names are preferred then it should be component/performance?

C: Doc #d1fad7 component/docs #d1fad7
C: PD-Client #d1fad7 component/PD client #d1fad7
C: Perf #d1fad7 component/perf #d1fad7
C: Raft #d1fad7 component/raft #d1fad7
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It should be Raft instead of raft?

C: Test/Bench #d1fad7 component/test #d1fad7
component/bench #d1fad7
C: TiKV-Client #d1fad7 component/TiKV client #d1fad7
C: TiKV-Ctl #d1fad7 component/TiKV ctl #d1fad7
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TiKV control?

C: gRPC #d1fad7 component/gRPC #d1fad7
D: Easy #0e8a16 difficulty/easy #0e8a16
D: Medium #f4b169 difficulty/medium #0e8a16
D: Mentor #31c639 difficulty/mentor #0e8a16
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BTW I'm curious what is a "mentor" difficulty XD

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we remove this label?

S: CanMerge #4be524 status/bot merge #e6e6e6
S: DNM #DDDDDD status/DNM #e6e6e6
S: Discussion #fbca04 type/discussion #1d76db
S: Duplicate #dddddd status/closed dup #e6e6e6
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It should be the full name "status/closed for duplicate"?

P: Low #eeee00 priority/low #eb6420
P: Release-blocker #f25c8e priority/blocker #eb6420
S: BotClose #c6054c status/bot close #e6e6e6
S: CanMerge #4be524 status/bot merge #e6e6e6
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bot close is closed by bot but bot merge is not merged by bot, so I think they should not looks to be similar at least.

S: Duplicate #dddddd status/closed dup #e6e6e6
S: HelpWanted #fbca04 status/help wanted #e6e6e6
S: Invalid #dddddd status/closed invalid #e6e6e6
S: LGT1 #66d7ee status/waiting on review #e6e6e6
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like normal PRs should mostly be in a "waiting on review" status and then this label does not have much meaning?

T: CherryPick #1d76db * <type/cherry pick 2.1 or type/cherry pick 3.0>
T: Contributor ⭐️ #1d76db type/contributor ⭐️ #1d76db
T: Enhancement #1d76db type/enhancement #1d76db
T: NeedCherryPick-2.1 #333333 type/cherry pick 2.1 #1d76db
Copy link
Member

@breezewish breezewish Sep 10, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

T: NeedCherryPick is not the same as cheery pick. NeedCherryPick is a hint for bot which means bot will create a cherry pick PR for it later and this PR is usually NOT a cheery pick, while T: CherryPick means this PR is a cheery pick.

S: Waiting #DDDDDD status/waiting on author #e6e6e6
T: Bug #d93f0b type/bug #1d76db
T: BugFix #1d76db type/bug fix #1d76db
T: CHANGELOG #006b75 type/CHANGELOG #1d76db
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This label is rarely used and I think it can be removed.

D: Mentor #31c639 difficulty/mentor #0e8a16
P: Critical #ed0000 priority/high #eb6420
P: High #ed8888 priority/medium #eb6420
P: Low #eeee00 priority/low #eb6420
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think it's appropriate for different priorities to have the same color.

S: Discussion #fbca04 type/discussion #1d76db
S: Duplicate #dddddd status/closed dup #e6e6e6
S: HelpWanted #fbca04 status/help wanted #e6e6e6
S: Invalid #dddddd status/closed invalid #e6e6e6
Copy link
Member

@breezewish breezewish Sep 10, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In TiKV, Gray status is specifically marked for those PRs that is no need to take a look, e.g. invalid, working in progress, waiting for the author, do not merge, etc. Other status has different (i.e. vivid) colors that means it deserves a look. So it may be not appropriate for all status to have the same gray color.

@breezewish
Copy link
Member

breezewish commented Sep 10, 2019

Top most GitHub engineering projects, order by stars, are following these styles:

Project Stars #Rank Style
freeCodeCamp 304K 1 status: need update
vue 146K 3 need update
react 135K 4 Status: Need Update
bootstrap 135K 5 need update
tensorflow 132K 6 status: need update
oh-my-zsh 94K 10 Status: update
d3 86K 15 (no labels)
vscode 81K 16 need update
react-native 80K 17 Status: Need Update
electron 76K 20 status/need-update
create-react-app 71K 23 status: need update
node 63K 25 need update
go 62K 26 NeedUpdate
animate.css 61K 27 need update
angular 59K 29 status: need update
kubernetes 56K 31 status/need-update

Maybe neither S: Need Update nor status/need update is a good style, considering that in top 30 no repo is using that style. I suggest it to be Status: Need Update style because it's the most popular style for labels and has a category prefix.

status/all tests passed #2cbe4e * <status/bot merge>
status/can merge #2cbe4e status/bot merge #e6e6e6
status/future #fbca04 ?
type/1.0 cherry-pick #c2e0c6 *
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

By using labels like type/cherry pick 2.1 to identify whether a PR on the master branch needs to be cherry-picked to release 2.1, we also need labels to identify which branch the PR is submitted on.

A typical use case is we need to check whether there still some un-merged PRs on a release branch, such as release-2.1, before releasing a new version on that release branch.

How about using the following labels to identify which branch the PR is submitted on:

branch/release-2.0
branch/release-2.1
branch/release-3.0

@nrc
Copy link
Contributor Author

nrc commented Feb 27, 2020

Update @zhouqiang-cl has made (roughly) these changes to the TiKV repo.

@zz-jason
Copy link
Member

Hi @nrc, since all the repos are following this proposal, can we close or merge this PR?

@nrc nrc closed this Apr 22, 2020
@zhouqiang-cl zhouqiang-cl deleted the labels branch December 24, 2020 03:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
proposal type/question The issue belongs to a question.
Projects
None yet
Development

Successfully merging this pull request may close these issues.