opensearch-project / .github

Provides templates and resources for other OpenSearch project repositories.
Apache License 2.0
29 stars 71 forks source link

Introducing "Maintainers in Training" program to introduce new maintainers #195

Open sandeshkr419 opened 6 months ago

sandeshkr419 commented 6 months ago

Is your feature request related to a problem? Please describe

OpenSearch is a vast repo with several complex internal features and requires in-depth knowledge of code bases pertaining to different segments such as search, indexing, plugins, cluster management. From a practical stand point, it is not feasible for all contributors or maintainers to gain expertise in all of them. Although we have 25 maintainers for this repo, the number of maintainers having expertise on major core areas like search, indexing can certainly have more experts helping out contributors with reviews and help speed up contributions.

Describe the solution you'd like

Proposing a Maintainer in Training (MiT) program that can assist contributors to step up as maintainers with a clear, actionable plan.

The Maintainers in Training in no way replaces the existing process to become a maintainer. This however intends to streamline the process of becoming a maintainer for active contributors. This will require existing maintainers to pair up with active contributors (number depending upon their bandwidth), to help them with implementation of the training plan by constantly providing them feedback over a period of time. The maintainers can then nominate the trainees to be part of maintainer group with supporting points through the existing process.

Nomination for MiT:

Can be initiated either by existing maintainers or by self. Issue Template highlighting nomination criteria for MiT nomination [to be drafted] - this can be used to track progress and note down feedback with MiT process.

Roles and Responsibilities:

[to be drafted based on feedback on this issue] In brief, paired up with a mentor, the mentee would assist in reviewing open PRs, discuss their feedback with the mentor, and mentor would have to provide feedback on the mentee’s assessment on their reviews. It is assumed that the mentee here is already an active contributor to the repo and has demonstrated good understanding on some areas of code base.

Feedback Template: [to be drafted] We would want to capture actionable feedback which can be taken into consideration by the mentee in next actions.

Related component

Other

Describe alternatives you've considered

No response

Additional context

Requesting feedback from active maintainers on their views and likelihood to participate in this practice. The goal is to pace up development in features and performance, increase engagement by having more maintainers for the repo. The Maintainers in Training program should ensure that the quality of feedbacks provided by new maintainers upholds high bar in quality but at the same time provide opportunity to demonstrate & hone these skills.

The above information after discussion will be drafted and should be appended to https://github.com/opensearch-project/OpenSearch/blob/main/MAINTAINERS.md

dblock commented 6 months ago

I like the idea of adding some words into https://github.com/opensearch-project/.github/blob/main/RESPONSIBILITIES.md about mentoring maintainers. However, I don't think we need any formal program, what stops you from doing what you propose today ad-hoc?

sandeshkr419 commented 6 months ago

Hi @dblock - The main blocker I see is absence of a feedback mechanism on my contributions on others contributions - not counting my own code contributions because they are anyway reviewed. So an active and dedicated feedback mechanism can help an active code contributor step up as maintainer. This in no way stopping someone from following their own path to be qualify as a maintainer.

Also, one more point which came out on 3/20 Search meetup (with @andrross, @reta) was that this might subdue the diversity that different maintainers bring with them as having a structure to qualify as a maintainer might narrow down the way people showcase their skills. I'd loop in @msfroh for his views as well as this idea was primarily a casual lunch chat on how other contributors can be coached for better reviews, so as to existing maintainers can prioritize their bandwidth better given the lack of expertise in core areas which creates a huge dependency on some maintainers more.

I do however agree that the process in no way should discourage the individuals to showcase their skills in their own way.

dblock commented 6 months ago

@sandeshkr419

I'd start small. I think it would be good to have a project-wide call to training/mentoring maintainers before we introduce any formal process How do you feel about adding a new section to https://github.com/opensearch-project/.github/blob/main/RESPONSIBILITIES.md called "Training Other Maintainers" (an additional responsibility)? I'd merge a change that describes in short the spirit of what you said above minus the whole process.

peternied commented 6 months ago

@sandeshkr419 I like the bias for action a focused pull request in the .github project would be a good way to kick off discussion and iterate towards agreement.

For your broader thoughts, maybe you could write up what you believe a contributor -> maintainer workflow looks like a post it on a personal blog? For me, I know my process for considering a nominating includes many subjective elements - that vary by repository that would be hard to capture well in project-wide guidance.

sandeshkr419 commented 5 months ago

Hi @dblock @peternied

Thanks for the inputs. I discussed the same in one of our previous Search meetup and the discussions were coherent with your views. Coming up with an additional maintainer responsibility (in .github project) seems like the accurate small step in this direction.

Let me draft up a small wording for review.

dblock commented 5 months ago

@sandeshkr419 I'm moving this to .github

dbwiddis commented 2 months ago

A bit slow to respond to this, but I want to both appreciate the intent (yay, let's bring more people onboard) and hesitate to formalize a process that creates a barrier.

I'm all for documenting "hey, here's 'in general' what we look for in maintainers" and trying to create some sort of mentorship program with some guidelines. Happy to discuss with @sandeshkr419 how to move this forward, we really do need to make an intentional effort here.