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
Discussion: Future Tripal - Governance #344
Comments
I read through some of the governance structures for open soruce projects and im wondering where you think Tripal falls. How many people do you imagine having write access? How many people have it right now and is that working? I think having clear policies for PR standards is great. If we up our test coverage, we require tests to pass before merging at a minimum (right now it doesnt mean a whole lot). Either way, contribution guidelines would be a plus: https://help.github.com/articles/setting-guidelines-for-repository-contributors/ |
Thanks for sharing those two docs @bradfordcondon. In regards to the first, I don't think a BDFL is the right model to go with. I suppose in the recent past, myself and @laceysanderson have been co-BDFLs, but mostly because we've been most active. Perhaps we need a guiding document that lays out our long-term wishes for Tripal and so long as we have like-minded individuals who can respect the document or make tweaks in an organized manner then I see no reason for a BDFL. Given recent conversations I've had with @laceysanderson, I'm not sure that any of those models work for us as written because contribution to Tripal comes from those groups most funded at any given point in time. So, we need something that protects the voice of unfunded sites and helps ensure funded sites have what they need at the core level to do what they need to do. |
For the sake of argument, let me propose we're going to use the meritocracy structure, with an oversight committee, as a loose template. I think that this will in fact meet our needs, because the PMC can be composed of groups who are not necessarily actively funded and contributing to Tripal. This consists of
The PMC is composed of PIs who use tripal. It is their duty to steer Tripal long term, and make it fulfill its mission of providing open source genomics website tools to community databases (and whatever else falls under mission statement). Unfunded sites presumably fall under Users, PLUS they may sit on the project management committee. That is, until they are funded again, and they become contributors and committers again. edit: obviously you dont need to be funded to contribute to Tripal. I'm operating under the implication of your concern, that sites that arent funded wont be pushing code and hterefore not participating in directing the project. Funded sites consist of Contributors and committers. Once contributors are "trusted" in the community they can be committers, at which point they have write access to the repo and are merging PRs etc. I like this line:
It's this shift to contributor to committer where we have to ask "when is someone trusted enough" etc... So what do we get from organizing in a manner like this?
edit: counterpoint.... PMC members are expected to be reviewing code changes. I wasn't really thinking in those terms... :| |
I was going to comment on the PMC and committing decisions. Not to make this too complicated but I think we really need two separate things here. Advisory/Steering Board - long term view, funding, overall plan of development - you know, the philosophical debates - composed of PIs and any long term contributors/stakeholders Committer group - people with their daily work lives in with the codebase and issue queue. Can review things quickly when needed (48-72 hours) and have a strong grasp of the contribution guidelines. Can quickly test things. This is needed as a "group" to updated contribution guidelines, approve new committers, etc. Should probably all be on the above board as well. |
My priorities:
With that focus in mind:
Draft Guidelines for encouraging open communication:
Concerns: How do we encourage communication without slowing down the process of development? What should we do if no discussion is forth coming? or if there are disagreements? |
@almasaeed2010 has brought to my attention that we want to consider the liberal contribution model, because it doesnt require voting on everything. Maybe we want a hybrid where PRs implementing new features trigger a vote, other PRs are handled by committers without requiring vote/consensus. Really we want (IMO) faster fixes, responsibility distributed a little more among committers. i'm siding with @mestato that we will need some separation of PMC with technical expertise, and broader stakeholder group. It doesnt seem like it would make sense to bring in the stakeholders on highly technical decisions such as what is included in core vs module for example. |
Summary of Slack discussion after meeting.
Contribution guidelines
|
Some questions/ideas:
|
|
Points for further discussion:
In reference to "Code of Conduct", I think we should flesh this out more on a second iteration, perhaps starting another document with a draft. Hopefully the admonishment to "be kind" (combined with the awesome links) is enough at this point. |
Ehhhh i'm torn. I actually think a single "No" should be grounds for something.
I think no, not by default. The PMC can decide to pass a request to the advisory committee for discussion if its not an easy decision/ a large decision.
100% yes. I think your 2 weeks is kind of long. What if we say 1 week, after an issue is tagged as a feature request. Then we make sure that all community members are aware that feature requests are important for discussion. Maybe we could even set up some sort of auto-notification, auto-doodle poll creation using existing if this then that style APIs.....
I'll take a stab at it. My general rule is: create issue in appropriate place, close the inappropriate issue, with links in BOTH places.
Agreed |
We have a draft!!!! |
While it makes sense to have an advisory committee, I'm uncomfortable with the concept of a project management committee. There's a risk of Tripal becoming a design-by-committee hodge-podge if it lacks a [benevolent] leader who can say no and maintain a broad vision, across communities and into the future. Note that an effective lead listens to developers and the user community! An alternative could be a sort of lead-lead who would mainly oversee the core development, and weigh in on module development as needed, with sub-leads on each module, with likely one person leading multiple modules. This is pretty much the model we have now and seems to be working. Who this lead, or leads would be is an open question. Stephen and Lacey seem the most likely candidates for lead-lead (or co-lead-leads). It probably goes without saying, that the lead(s) shouldn't be the only ones permitted to approve pull requests as this could create development bottlenecks, but it should be up to the lead(s) who has permission to contribute directly to the codebase and/or approve pull requests. |
I agree with @ekcannon to a certain extent. I think having someone(s) with a wider vision who can step in if the committee gets too carried away with exciting new features is a must. It's too easy to decide that because we all need something it should be in core which is a mindset eventually leading to bloat and maintainability issues. That said, I am Very For a Project Management Committee (PMC) since it distributes much of the day-to-day management making for faster bug fixes and response to issues <3 As long as we have good guidelines in place for the PMC and trust the members of it to follow the guidelines I don't think there's a conflict between these two models. Especially if the lead-lead is on the PMC. |
@ekcannon thank you for the feedback, I really wanted some more input. I would prefer if everyone who uses Tripal is excited about this organizational shift so I really want to discuss any and all concerns. We have previously worked under a pseudo-benevelent/leads dictator model, where all major design decisions went through either lacey, stephen, or both. This meant if neither was around, PRs would not get merged.
The problem as I see it is, how do non-leads determine what PRs can be approved, and which clash with the vision of Tripal? The answer we've instated is contribution guidelines. Having these explicit guidelines benefits not just people trying to merge code, but people submitting it, too. Now I know if I want feature X, i need to create an issue first, and people will tell me if it fits the vision or not based on the guidelines. If I try to merge in code, at least 2 people are going to look at it and ensure it fits with the vision. I wouldn't mind if we adopted a benevolent dictator/hybrid model, where "vision-related" decisions defer to lacey and stephen. I don't know if that would be better for Tripal, or better for them. I like that with a distributed model people can step away for a bit, and the project can keep moving. I believe that being more community structured will lead to more community engagement and contribution... but that might be naive idealism.
I like how you phrased this @laceysanderson and its my belief. But is there more we can/should do to ensure that the PMC doesn't fall into the trap ethy describes. @ekcannon are there issues beyond feature bloat that you have in mind? |
A comment on project management in general: I've watched, and participated in a number of different governance models. The two that have fared the worst are:
The model that has worked best for me, both as a project lead and as a team member, has been a project lead with sub-leads on each task. Additionally, depending on the size of the team the lead (and maybe sub-leads as well) often appoints a "lieutenant". In the case of an open source project, the lieutenant(s) would review pull requests. Because of past very bad experiences with structures 1 and 2 above, I get anxious when one or the other appears to be emerging, so wanted to raise concerns now rather than wait to see how things pan out. |
I can see Ethy's point, about having a central "keeper of the vision", and if that doesn't conflict with a PMC thats ok with me. Because I think Tripal has gotten big enough and our leads are busy enough that a PMC makes sense, even if it is a bit of a "design by committee" system. With a project that is growing at the rate of Tripal, we need central leadership that is responsive to requests from many angles (PRs, issues, new groups contacting via email, training, etc), and Stephen and Lacey both seem very receptive to getting some help with managing all that. A person on the PMC is going to feel invested and like their opinion holds weight, so they will support the community through these types of activities. Developers who are disenfranchised from community decisions and don't see a path to change that aren't likely to jump in and help with other community support activities. We are also trying to attract new groups to join Tripal or convert legacy dbs to Tripal, and I think having a defined community structure and a way to get core contributions at least considered in a timely manner is paramount. A decision to build a database on a certain platform has ramifications for 10-20 years (see all those old MODs!), so we need to have 10-20 year stability in mind that doesn't rely on one or two benevolent dictators wanting to do Tripal for that long. (Maybe Lacey and Stephen want to still be doing Tripal in 2033 but maybe they don't :). And I want to say something about feature creep. As much as people are anti-feature creep in core, and I get that and its generally a good policy, much of the power of Tripal comes from having a suite of extension modules that actually do what you need them to do. If our extension developers don't understand core and don't update extension modules when core updates, then we're all in trouble. This is a somewhat tangential issue, but something I've been worrying about lately. And while PMC will probably stay very small, if some essential extension module developers are on there, it could be an important mechanism to keep the extension modules coordinated with core and have developers with enough knowledge of core able to update their modules quickly. I am not advocating pulling all extensions into core of course, but if they are consistently neglected in planning and writing major upgrades, existing dbs are stuck unable to upgrade to new versions of Tripal. This is something a larger PMC could at least consider and plan for. |
I'm pinging this issue because as PAG approaches I think we wanted to revisit the Steering/Advisory committee. @mestato provided a nice summary:
I wonder if certain recent issues (ie the python API split) would be good issues for this group as well. |
I'd say Tripal 4 is a pretty critical issue for the advisory committee to take up. I like Meg's summary. |
I really don't love "oversight" as a committee name (a bit too brave new world), so I see two possible directions: Board of directors - keeping the direct oversight idea (see for example Apache https://www.apache.org/foundation/governance/board.html) Scientific Advisory board - more in NSF-style, where the relationship with the PMC is more collaborative/advisory I vote SAB, any other opinions? Also, we need some guidelines and structure to at some point be formalized in the official CONTRIBUTING doc. Some initial thoughts, starting from a point of being inclusive and emphasizing consensus building:
|
If I understand Meg's proposal, and the gist of earlier discussions, the suggested governance is now:
I'm guessing that membership is not exclusive between the two (which would be bad). This makes sense to me. How will a governance plan be accepted and adopted? Perhaps this should be a goal for the user meeting at PAG, to be able to announce and adopt a plan. |
I like the idea of accepting it via vote online (doodle poll with options agree/disagree) to ensure participation by everyone who wants to be involved (not just those at PAG). Then we can have our first meeting at PAG? I like the scientific advisory board + PMC (project management committee) and agree with @ekcannon's summary although I consider the PMC a bit broader then just feature requests. The PMC is the first line of governance with the programming experience and Tripal familiarity to make informed decisions on "smaller" items such as feature requests and PRs. I also like @mestato starting point for guidelines/structure :-) My main addition would be to eligibility: |
This topic was supposed to come up in our 11/13/2018 User's meeting. We ran out of time. I also like Science Advisory Committee as a name. I agree with @mestato starting guidelines. Here's my suggestion to get started. How about we request volunteers to serve on the first Interim SAC and it will be the job of the SAC + PMC to set out the guidelines for the SAC. This way we get something started and we have a set of people responsible for finalizing the structure. Then once the guidelines and rules are in place we have the vote for the full SAC via a google poll. If we go this route we can have an SAC + PMC meeting at PAG sometime. |
I'm going to open a new issue for the advisory committee discussion. This thread has become a bit too long. After I do that are we safe to close out this issue? We have the Tv4 proof of concept and with my new issue for the advisory commitee I think those two things meet our two outstanding items. |
This issue has been replaced with this one: |
Given theres been no additional discussion on PMC and day-to-day governance, I'll close this out. Advisory committee discussion should continue in #786 |
I'm starting this issue as a place for discussion about the creation of more formal rules to govern how we accept code into Tripal and how Tripal should look going forward. We have a really good opportunity with Tripal v4 and Drupal 8 to streamline development. I'm specifically leaving this vague to solicit thoughts regarding issues.
However I would like to add a few items do get the discussion going and please feel free to add your own.
The text was updated successfully, but these errors were encountered: