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

Explicitly invite users to join the org after several merged PRs #13371

Closed
Katharine opened this issue Jul 9, 2019 · 32 comments
Closed

Explicitly invite users to join the org after several merged PRs #13371

Katharine opened this issue Jul 9, 2019 · 32 comments
Labels
area/github-management Issues or PRs related to GitHub Management subproject area/prow Issues or PRs related to prow kind/feature Categorizes issue or PR as related to a new feature. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. priority/backlog Higher priority than priority/awaiting-more-evidence. sig/contributor-experience Categorizes an issue or PR as relevant to SIG Contributor Experience.

Comments

@Katharine
Copy link
Member

Katharine commented Jul 9, 2019

What would you like to be added:
It would be nice to have trigger include a bold, explicit invitation to join the org in its ok-to-test message after you've made a few PRs (three? five?), perhaps something vaguely like this, totally off the top of my head:

We noticed you've done this a few times! Consider joining the Kubernetes org to skip this step, as well as gain LGTM and other bot rights rights. We recommend asking the approvers on your prior PRs to be your sponsors.

(It would also be nice if we had a document to link to that wasn't all about reasons you can't be a member...)

We can do a query like type:pr is:merged org:kubernetes author:$user before making the comment to determine if someone is qualified - this graphql query has a flat cost of 1:

query {
  search(query: "type:pr is:merged org:kubernetes author:katharine", type: ISSUE) {
    issueCount
  }
}

Alternatively, we can just always comment and leave the user to figure out whether they count, but I think this diminishes the effectiveness over a positive assertion.

Why is this needed:
Joining the org is pretty intimidating. On top of that, it is wildly unclear when people are eligible to join, and even if they clearly are, it often doesn't occur to them to actually do so. While this doesn't help contributors who do not make PRs who would be eligible for org membership, it would be helpful to those who do. The real bar is much lower than non-members tend to think it is.

We currently mention that "regular contributors should join the org to skip this step", but it's not at all noticeable and "regular contributors" is wildly open to interpretation.

(shoutout to @liztio for the concept)

@Katharine Katharine added kind/feature Categorizes issue or PR as related to a new feature. area/prow Issues or PRs related to prow labels Jul 9, 2019
@cblecker
Copy link
Member

cblecker commented Jul 9, 2019

It's not about number of PRs though. It's about the contributions you bring to the project.

50 spelling fix PRs isn't the same as 2-3 quality contributions.. or zero code contributions but regularly attending meetings, providing feedback, or taking on non-code tasks.

I recognize that imposter syndrome is a problem, but I don't believe it's one that bots can solve. I personally think it's more about the people involved.. including having reviewers/approvers actively reach out to folks they think qualify.

@liztio
Copy link
Contributor

liztio commented Jul 9, 2019

I don't think we're going to solve imposter syndrome entirely, but I don't think there's a lot of downsides to implementing this. If we end up getting completely flooded with unqualified people trying to join the org that's one thing, but I really doubt that's going to happen.

And relying on people to "notice" others' contributions is unlikely to be a good solution. How would we go about publishing such an initiative? We already know what we have now isn't working.

@Katharine
Copy link
Member Author

@cblecker: that applies just as much to our "regular contributors should join" message that we already give on every PR that a non-member makes. This just makes the existing suggestion more positive and less ambiguous. It doesn't auto-approve membership, it just suggests that you should consider applying. It's not attempting to solve all angles of the problem, just be more encouraging to some subset of likely qualified users with whom we happen to have a channel available.

I think it very unlikely that this is unlikely to have any negative consequences.

@markjacksonfishing
Copy link

I love this idea

@coderanger
Copy link
Member

This is delightful, even if we have to bikeshed about thresholds :)

@spiffxp
Copy link
Member

spiffxp commented Jul 9, 2019

/sig contributor-experience

My only nit is this doesn't recognize those folks who do great work that doesn't involve contributing code. However, measuring that is... more involved. Agree this is a step in the right direction.

Linking to the issue I've used as umbrella for all things OWNERS which I consider proxy for measuring/enforcing things related to contributor ladder kubernetes/community#1808

@k8s-ci-robot k8s-ci-robot added the sig/contributor-experience Categorizes an issue or PR as relevant to SIG Contributor Experience. label Jul 9, 2019
@cblecker
Copy link
Member

cblecker commented Jul 10, 2019

Making language more friendly (in general): 👍
This applies to both the bot message on the PR, as well as language improvements to the community-membership.md doc.

Still not convinced though that tying it to number of PRs is a pattern we want to use. We previously had PR numbers in the community membership document, and it just became a "goal" to hit. Not entirely closed to it, but I don't want to trade one negative behaviour (folks who are qualified not applying) for another.

As I bat this around in my head maybe something like the following:

  • X number of PRs, but higher than the "low" bar (15 for example)
  • And/Or a time since first PR search term (don't know if this would make it better or worse)
  • Don't publicize or refer to the number of PRs in the message. Some extra bolding or more suggestive messaging instead.

If we frame this more this to catch outliers.. those folks who are probably over qualified, but haven't applied yet.

It's just avoiding some number being the goal. I also don't want this to be a substitute for what should actually be happening, which is reviewers/approvers seeking folks to join the org (or for promotion to reviewer/approver, etc).

@spiffxp
Copy link
Member

spiffxp commented Jul 10, 2019

Some prior discussions when this has come up in the past

@nikhita
Copy link
Member

nikhita commented Jul 10, 2019

Some ideas here, very much open to dissenting opinions.

I think the root cause is that our membership requirements are ambiguous and the "bar" is not defined. If I'm applying for membership, I am not sure if I'm good enough, because I don't know what "bar" I'm supposed to be looking at. This has also led to the bar being inconsistently followed in different membership requests, which would make me even more confused if I was applying today.

We previously had PR numbers in the community membership document, and it just became a "goal" to hit.

I agree that looking at just the number of PRs isn't helpful because it's possible that all PRs are trivial (typo fixes, etc). I think what we are looking for is significant contributions. "Significant contributions" don't necessarily have to be PRs either.

IMHO one solution would be to:

  1. Concretely define how many significant contributions we expect, if these contributions are PRs (maybe 5/10/15?). If they are not PRs, the requester is free to describe their contributions as they'd like. This is a little similar to what we did for the last steering committee elections, but not centred around devstats (which can be easily gamed). Having a goal to hit 10 significant PRs is IMO not a bad thing. :)

  2. The decision of whether a contribution is significant enough would be left to the sponsor since they would be an approver/reviewer for the relevant subproject.

While not having concrete numbers around PRs makes sense, I think we should define some number around significant contributions, if they are PRs because that helps set some bar. At the same time, it also allows people to describe their non-code contributions.

This is also a little similar to what we have today -- a membership request requires a list of contributions (if this is PRs, we already expect these contributions to be non-trivial) and the request is good to go if the sponsors are cool with it. IMO the minimum number of significant PRs limitation just adds some structure to the current (loose) definition.

Additionally, we could also add an FAQ-like section in our membership document. Kind of reiterates what's already in the requirements but makes it less intimidating.

# Applying for membership

## Should I apply for membership?

If you have made at least 10 significant PRs _or_ any other significant contributions and plan to remain an active contributor, you should seriously consider applying for membership!

## How do I find sponsors?

Ask the reviewers/approvers on your PRs, or people that you have interacted with on issues, slack or meetings.

## How do I know if my contributions are significant enough?

Talk to your sponsors about it! Describe your contributions and ask them if they would be willing to sponsor you. You could also ask them about the kind of contributions that they'd expect for membership and what you can do to climb up the ladder.

Instead of adding a message on PRs when the author has >= X number of PRs, we could add the message to the needs-ok-to-test message on all PRs.

If you've made multiple contributions, consider joining the Kubernetes org to skip this step, as well as gain LGTM and other bot rights rights. We recommend asking the reviewers and approvers on your prior PRs to be your sponsors.

Wdyt?

@markjacksonfishing
Copy link

I agree with you @nikhita but 1 question I have is around this: If you have made at least 10 significant PRs: What is the criteria for significant PRs?
I feel that getting users to contribute in any fashion is a step in the right direction and even a doc fix is significant. Perhaps there can be levels or membership or mentorship to becoming an member. I have found that making people feel they are doing in any fashion will lead to greater things and we should be inviting more people.
Speaking from my own experience, I have found that becoming a member is much harder then expected and some SIG's for example are not very welcoming and this leads to disappointment. This is of course my opinion and outside of this discussion.

@nikhita
Copy link
Member

nikhita commented Jul 10, 2019

What is the criteria for significant PRs?
I feel that getting users to contribute in any fashion is a step in the right direction and even a doc fix is significant.

Significant = anything that would make reviewers/approvers go "I think the requester has made some non-trivial contributions and are an active contributor. Having them be a part of the org would be helpful because that'll allow them to be assigned to issues and lgtm PRs, eventually moving to become a reviewer".

The decision to whether a PR is significant enough or not would be left to the sponsor.

Doc fixes are definitely non-trivial! 👍

Come to think of it, I think calling it "significant" might be somewhat discouraging. Maybe just go with non-trivial? Not entirely sure, will need to noodle on this a bit more. :)

Speaking from my own experience, I have found that becoming a member is much harder then expected and some SIG's for example are not very welcoming and this leads to disappointment.

😞 happy to talk this over in #sig-contribex and look into improving this.

@markjacksonfishing
Copy link

Thank you for the response @nikhita it is truly appreciated.

@Katharine
Copy link
Member Author

Instead of adding a message on PRs when the author has >= X number of PRs, we could add the message to the needs-ok-to-test message on all PRs.

If you've made multiple contributions, consider joining the Kubernetes org to skip this step, as well as gain LGTM and other bot rights rights. We recommend asking the reviewers and approvers on your prior PRs to be your sponsors.

Wdyt?

We already have a message that says half of this. Rewording it is an option, but I don't think it is likely to help because nobody will read it in all the piles of bot noise that shows up on every PR. Especially since, by definition, we're trying to catch people who have seen this message many times and will not read it at all unless something is very obviously different.

As mentioned in the original issue, I prefer the filtering option because it lets us be more assertive - we might not know with certainty whether the contributions were "significant" (whatever that means), but if we can pick a point to change the message and include a bold instruction, I think that's a significantly more compelling comment than slightly adjusting a message that's always there.


As to the rest of the comment: I'm very in favour of having a positively worded document (or document section) that says when you should apply and explains how to get through the nuances of the system (e.g. finding sponsors). I don't think the existence or absence of that is directly in scope for this issue, though.

(I also think some of our existing requirements just don't accomplish anything and unnecessarily put people off, but that's way out of scope for this.)

@nikhita nikhita added the area/github-management Issues or PRs related to GitHub Management subproject label Aug 22, 2019
@nikhita nikhita added this to To Triage in ContribEx: github-management subproject via automation Aug 22, 2019
@fejta-bot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Nov 20, 2019
@michelle192837
Copy link
Contributor

/remove-lifecycle-stale

@fejta-bot
Copy link

Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle rotten

@k8s-ci-robot k8s-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Dec 28, 2019
@spiffxp
Copy link
Member

spiffxp commented Jan 1, 2020

/remove-lifecycle rotten

@k8s-ci-robot k8s-ci-robot removed the lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. label Jan 1, 2020
@fejta-bot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Mar 31, 2020
@michelle192837
Copy link
Contributor

/remove-lifecycle stale

I still think this would be a good, inclusive improvement.

@k8s-ci-robot k8s-ci-robot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Mar 31, 2020
@k8s-ci-robot k8s-ci-robot added the lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. label Jul 29, 2020
@fejta-bot
Copy link

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/close

ContribEx: github-management subproject automation moved this from To Triage to Done Aug 28, 2020
@k8s-ci-robot
Copy link
Contributor

@fejta-bot: Closing this issue.

In response to this:

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@michelle192837
Copy link
Contributor

/reopen

@k8s-ci-robot k8s-ci-robot reopened this Aug 28, 2020
@k8s-ci-robot
Copy link
Contributor

@michelle192837: Reopened this issue.

In response to this:

/reopen

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

ContribEx: github-management subproject automation moved this from Done to In progress Aug 28, 2020
@mrbobbytables mrbobbytables moved this from In progress to Sorted Backlog in ContribEx: github-management subproject Sep 21, 2020
@fejta-bot
Copy link

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/close

@k8s-ci-robot
Copy link
Contributor

@fejta-bot: Closing this issue.

In response to this:

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

ContribEx: github-management subproject automation moved this from Sorted Backlog to Done Sep 27, 2020
@spiffxp spiffxp moved this from Done to to-archive in ContribEx: github-management subproject Mar 10, 2021
@spiffxp
Copy link
Member

spiffxp commented Mar 10, 2021

/reopen
/remove-lifecycle rotten
/lifecycle frozen
I think contribex / github-management should shape this up into a help-wanted issue

@k8s-ci-robot
Copy link
Contributor

@spiffxp: Reopened this issue.

In response to this:

/reopen
/remove-lifecycle rotten
/lifecycle frozen
I think contribex / github-management should shape this up into a help-wanted issue

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@k8s-ci-robot k8s-ci-robot reopened this Mar 10, 2021
ContribEx: github-management subproject automation moved this from to-archive to In progress Mar 10, 2021
@k8s-ci-robot k8s-ci-robot added lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. and removed lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. labels Mar 10, 2021
@spiffxp spiffxp moved this from In progress to To Triage in ContribEx: github-management subproject Mar 10, 2021
@spiffxp
Copy link
Member

spiffxp commented Aug 17, 2021

/priority backlog
I don't have the bandwidth to scope this out into a help wanted issue, does anyone else?

@k8s-ci-robot k8s-ci-robot added the priority/backlog Higher priority than priority/awaiting-more-evidence. label Aug 17, 2021
@jberkus
Copy link
Contributor

jberkus commented May 31, 2024

migrated to the Prow repo

/close

@k8s-ci-robot
Copy link
Contributor

@jberkus: Closing this issue.

In response to this:

migrated to the Prow repo

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

ContribEx: github-management subproject automation moved this from To Triage to Done May 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/github-management Issues or PRs related to GitHub Management subproject area/prow Issues or PRs related to prow kind/feature Categorizes issue or PR as related to a new feature. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. priority/backlog Higher priority than priority/awaiting-more-evidence. sig/contributor-experience Categorizes an issue or PR as relevant to SIG Contributor Experience.
Development

No branches or pull requests