-
Notifications
You must be signed in to change notification settings - Fork 3
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
Rethink the TSC #148
Comments
Thanks for writing this up!
Agree that it makes sense to learn from other OSS governance models. My initial thoughts are that it could be as simple as distinguishing committers from maintainers. For example, Apache Mesos does this. (I'm not very familiar with the project; this was more from me trying to find an example project that has separate committer and maintainer roles, since it's something I've seen not infrequently.) From the linked doc:
The whole doc is quite well-written, IMO, so I've copied quite a bit. :) I don't think Kedro necessarily has to have as granular component-level ownership, since it's a bit less broad, but that could still be interesting to explore. Certain people do have areas of depth (e.g. @merelcht for config, @marrrcin for deployment, @Galileo-Galilei for MLFlow). One "risk" of this model may be that some members of the TSC who are not paid to work on Kedro specifically (naturally) spend less time on the project, which may or may not mean they're not maintainer candidates by this definition, or that the maintainer criteria should account more for depth/project understanding. To give an example, @idanov is unquestionably one of the most knowledgeable people about Kedro, and it makes sense to have his input on questions that impact Kedro direction; however, it may not make sense to have him review every PR in certain areas. I do think the following guidance from the Mesos doc goes a long way here:
Last but not least, I think the above proposal could potentially help alleviate the concerns raised in the "Proposed solutions" section. |
Hi, agree with most of @deepyaman comments. I'd like to give some insights on my personal experience as a non-QB maintainer. On your questions:
As @deepyaman says, it is hard to commit strongly to be available 1 day a week for an unpaid project. I personally choose to commit to the project on the long term, but my direct contributions to the codebase are extremely small. I almost never participate to ceremonies because they obviously happen on working time, and when I participate it is because I am biased towards things that I feel are useful for my actual job. I think this requirement is too strong a constraint and may prevent non-QB users to join the TSC. I do contribute on my spare time and I can't estimate how much time I spend to contribute each week. I could technically contribute through coding but:
For these reasons, I found much easier to contribute through :
But I acknowledge that it may be not the kind of contributions which is needed. Measuring contribution is harder to measure than juste "a number of commit" to the repo.
Not an issue for me, I think we should adjust the rules (and maybe differentiate commiters /maintainers as suggested). Almost all contributions of the codebase are made by QB users (for an obvisou reason : they are paid for it !) and developer experience matters a lot. Forcing them to fork the repo just to give them a "lower" status won't help improving the developement of the tool, nor make people think that QB is less involved. This looks hugely counterproductive to me.
As the list grows, maybe that instead of mentioning all past maintainers we can makes a reference to the biggest contributors (through commit history) to celebrate past contributors? This is not an ideal contribution since some maintainers (e.g. people with less direct contribution to the codebase) whould be ignore. I don't think the current situation is a big problem though.
Once again, I understand that we'd like to change that on the long run as it feels "healthier" for the project and may make it more sustainable but :
This is not the real problem, but rather as you said the fact that voting takes a long time (people can just skip the notification and forget, non-QB maintainers are less available on work time...). It may be worth investigating some ways to speed up the voting process (reduce the majority needed, remove voting for some actions, have some 'super maintainer' (yetunde, merel, ivan?) having extra votes, create a "developer" status for some QB member which are less committed on the long run...). Extra comments on committing as an individualIt is hard to contribute as an individual and not on the behalf of an enterprise:
|
I'd argue these are very much types of contributions that are needed!
Very valid point. :) I didn't give enough weight to this. That said, a majority-QB TSC would still make it very unlikely that the project goes off in a direction that QB would not want to invest in. I think there's a lot of leeway between the current 80+% and that. |
One other issue I've been thinking about recently is, what changes should require a TSC vote? Right now, I believe the places we vote are on:
Should major ways to how Kedro works (not refactors, but more like the proposal to create a new data catalog or replacing Kedro's versioning with a new approach, or historically reworking the config loader) require a TSC vote? If you look at other projects (e.g. the nature of scikit-learn enhancement proposals like https://scikit-learn-enhancement-proposals.readthedocs.io/en/latest/slep010/proposal.html, or Spark SPIPs, just as a couple examples), major changes should be proposed and require a vote. P.S. I think this also lends itself back to having more of a committer/maintainer split; committers and others could raise proposals to improve Kedro, but a meaningful maintainer vote should ideally come from a group that has a good understanding across Kedro implementation. |
Thanks @deepyaman and sorry I never replied here. I agree in spirit with what you say: that major changes in Kedro should indeed require a TSC vote (after all, if we're voting about adding removing datasets, why not control for changes that could be even more substantial). My gut reaction is that it would be a major governance upgrade that could potentially slow us down. But at the very least we should probably consider it. |
Also
Internally I had proposed an "observer" role with no voting rights, but actually the maintainer vs committer divide is probably more apt and also more similar to how I've seen other projects govern themselves. I believe Django works this way, and possibly projects that adopt the C4 model. |
Problems
Some members of the TSC have called out that
https://github.com/kedro-org/kedro/blob/f58740dc156d6a8fde2f61a9e0dc1e4030f9d150/docs/source/contribution/technical_steering_committee.md?plain=1#L18-L22
https://github.com/kedro-org/kedro/blob/f58740dc156d6a8fde2f61a9e0dc1e4030f9d150/docs/source/contribution/technical_steering_committee.md?plain=1#L36-L39
https://github.com/kedro-org/kedro/blob/f58740dc156d6a8fde2f61a9e0dc1e4030f9d150/docs/source/contribution/technical_steering_committee.md?plain=1#L115
Proposed solutions
Some people have suggested to shrink the QB presence in the TSC. But there are some logistics issues:
Next steps
We have to survey other similar projects and understand what they do.
The text was updated successfully, but these errors were encountered: