As I talked about in the core announcement, Drupal has experienced phenomenal growth over the past 14+ years. I wanted to take an opportunity to reflect on our current governance structure and try to evolve the Drupal leadership team and decision-making, enable better scaling, and document both the formal and informal processes we have currently in place.
What follows is a document builds on ideas that have been blogged about or presented at Drupal events by many people, and attempts to clearly document how things are currently done, and also proposes some incremental improvements. I've run this past the core committer team, as well as numerous others who've contributed to these conversations, and this policy draft is a result of that work.
I'd like to leave this open for feedback for two weeks, at which point I will incorporate feedback and finalize as a document in https://www.drupal.org/project/governance.
---
Introduction
This document provides an overview of Drupal core's organizational structure, outlines what roles/responsibilities exist, and defines how decisions are made. The goal is to help the broader community understand the process, to ensure that both old and new maintainers understand their responsibilities, and to eliminate uncertainty about who has the ability to make decisions in various parts of the project.
This is a living document; if you see something out of date or missing, please file an issue in the "Drupal core" issue queue with the "Project governance" issue tag.
What is a core contributor? (#)
Anyone at all with a Drupal.org account can be a core contributor, simply by participating in the Drupal core issue queue. A core contributor is someone who:
- Posts bug reports and feature requests
- Uploads code changes ("patches") to the issue queue
- Reviews the behavior and code changes from a given patch
- Posts constructive, actionable feedback on how other core contributors can improve their work
- Performs "triage" of the issue queue, such as closing out duplicate issues, setting metadata properly
- Contributes their skills and experience such as architecture, design, accessibility, access to non-technical users, and development
- Various other collaborative activities
In short, core contributors are empowered to drive changes within Drupal's code base, and to work with other core contributors to help get changes they care about in, using a variety of both technical and non-technical skills.
Most proposed changes follow a standard peer review process, with sign-off from one or more maintainers (who are themselves a subset of core contributors).
What is a maintainer? (#)
(Thanks to Docker for the inspiration.)
There are different types of maintainers, with different responsibilities, but all maintainers have three things in common:
- They share responsibility for the project's success.
- They have made a long-term, recurring time investment to improve the project.
- They spend that time doing what needs to be done, not always what
is the most interesting or fun.
Maintainers are essential, but the results of their work are not always immediate or obvious. It's easy to appreciate a really cool and technically advanced feature. It's harder to appreciate the absence of bugs, the slow but steady improvement in stability, or the reliability of a release process. But those things distinguish a good project from a great one.
Potential maintainers generally demonstrate expertise, consistency, and passion contributing in their area before they become maintainers.
Maintainers with commit access need additional skills. They are reliable, decisive when needed, open to feedback, and able to give others feedback constructively. They also need significant prior experience participating broadly in core issues (usually at least a year).
It's generally desired to have at least two people in any given maintainership role, in order to prevent burnout and to help ensure there are ample people available for unblocking a given decision; however, this is not a hard requirement. Maintainers are expected to give clear, objective reasons and actionable feedback in the event they push back on a given change.
What are the different types of maintainers? (#)
The list below defines the different maintainer roles. (Detailed responsibilities for each role are outlined later.)
- The Benevolent Dictator for Life (BDFL): The founder and chief decision-maker for the project.
- Core Committers: The small subset of people who, along with the BDFL, can commit changes to Drupal core itself. Within the core committer team there are:
- Product Managers: Focus on user-facing features and Drupal's user experience.
- Framework Managers: Focus on cohesiveness of Drupal's architecture, APIs, and developer experience.
- Release Managers: Focus on processes to increase release stability, and on facilitating effective collaboration among contributors.
- Subsystem Maintainers: Maintainers of one particular part of Drupal core, such as the Entity system or Comment module.
- Topic Maintainer: Subject-matter experts in a topic that spans multiple subsystems—Accessibility, Documentation, Performance, Testing, and Usability. These correspond to the core gates which all proposed changes must pass.
- Initiative Coordinator: Community members appointed by the BDFL to coordinate strategically important work. Initiatives are typically cross-functional in that they span different subsystems and different topics, and can affect both Drupal the product and Drupal the framework.
How are decisions made? (#)
Anyone with a Drupal.org account can create or update a Drupal core issue to propose a change. Issues should be processed according to the following flow:
- Drupal employs a peer review process. All proposed changes require sign-off from someone other than the author(s).
- If a change doesn't significantly impact any given area of Drupal, it simply needs a peer's sign-off.
- If a patch significantly impacts a single subsystem, the maintainers of that subsystem must be given opportunity to sign off.
- If the change significantly impacts any area covered by a topic maintainer, that topic maintainer needs to approve or refuse it.
- If a subsystem/topic maintainer sign-off is not given in a timely manner, or if sign-off is not possible because the patch was authored by those who need to provide sign-off, it gets escalated to the core committers.
- If the change significantly impacts multiple subsystems, or represents a significant change in architecture or public APIs, the framework managers must approve or refuse it.
- If the change represents a significant new feature, UI change, or change to the "user experience" of the project, the product managers must approve or refuse it.
- If the change significantly affects the overall technical debt or release timeline of the project, the release managers must approve or refuse it.
- If the change affects the governance, philosophy, goals, principles, or nature of the project, it must be approved by the BDFL.
- Once a change has the required sign-offs, any core committer may commit it.
See the Frequently Asked Questions for explanations of what it means to sign off on a change and examples of what constitutes a "significant" change.
Also see the Responsibility Assignment Matrix version.
Who are the Drupal core maintainers, and what do they do? (#)
This section:
- Defines in detail each of the roles discussed above.
- Outlines their overall responsibilities and the tasks they're expected to do.
- Lists both the current and "provisional" membership of each role.
The BDFL (#)
BDFL stands for "Benevolent Dictator for Life." All decisions are made, by default, by the BDFL. However, since the BDFL making every decision would be highly un-scalable, in practice decisions are spread across multiple maintainers. The BDFL appoints and replaces those maintainers, and spends time thinking about how to make the team function well. The BDFL also holds final say in any disagreements, and can be escalated to when decisions cannot be reached through the normal process. Finally, the BDFL also preserves the philosophy, culture, and principles of the project.
Tasks
- Are there issues assigned to the BDFL which have been escalated by the other maintainers?
- If yes: either resolve them, or appoint someone to resolve them
- Are there "Project governance" issues that need review?
- If yes: appoint new maintainers, and/or replace maintainers.
- Is the project governance stuck in a deadlock, irreversibly fragmented, or off track?
- If yes: refactor the project governance.
Core Committers (#)
Core committers are the people in the project with commit access to Drupal core. Within the core committer team, the BDFL assigns people certain areas of focus (defined below) to help with decision-making. Nevertheless, core committers are a group of peers, and are expected to work closely together to achieve alignment, to consult each other freely when making difficult decisions, and to bring in the BDFL as needed.
In addition, note that the Documentation Topic Maintainer also has commit access for documentation patches only, across all major versions.
While core committers tend to stay focused on their particular versions, where needed they can step in to fill needs in other versions (for example, the Drupal 7 Release Manager rolling a security release for Drupal 6 at the same time). It's also possible that a non-technical Product Manager or Release Manager could be appointed at some point, who would only very rarely use their commit access. The distribution of committing work is something to be worked out among the core committer team.
Tasks
- Are there issues in the "Reviewed & tested by community" (RTBC) issue queue?
- If yes: Verify the issues have proper sign-offs and review the changes therein; commit the change or modify issue statuses/assignments as appropriate.
- Was a change escalated to your area of focus?
- If yes: Either make a decision or ask advice from one of the similarly focused committers.
- Does a change span multiple areas of core committer concern (product, framework, and, release management?)
- If yes: A relevant subset of committers meets as a group to discuss.
- Is there consensus among affected core committers on what to do?
- If yes: Post a summary to issue.
- If no: Escalate to the BDFL.
Core Committer: Product Manager (#)
Product managers are expected to talk extensively with different types of Drupal’s users, gather data about how Drupal is used in the “real world,” and present this information back to Drupal's various audiences.
The product managers are responsible for:
- Determining what user-visible features Drupal core ships with
- Drupal's out-of-the-box experience
- The overall integrity of Drupal’s user experience
- Representing the Drupal product's audiences (site builders, content authors, etc.) in core decisions
Significant changes to user-visible features, the user interface, and install profiles must be approved by the product managers.
Tasks
- Are there issues tagged "Needs product manager review"?
- If yes: provide feedback and make a decision.
Core Committer: Framework Manager (#)
The framework managers are responsible for the overall integrity of the technical architecture across all subsystems, the consistency of APIs, and the overall developer experience of Drupal.
Significant developer features, changes to public APIs, external libraries, and overall architecture must be approved by the framework managers.
Tasks
- Are there issues tagged "Needs framework manager review"?
- If yes: Provide feedback and make a decision.
Core Committers: Release Manager (#)
The release schedule is set by the BDFL in consultation with the other core committers, and the release managers make sure that we manage towards it. This includes rolling the releases, tracking the release schedule, facilitating communication between all participants, measuring progress, and defining the processes that help contributors collaborate effectively and efficiently. Release managers also make the final call on issue "metadata", such as status and priority, unless overruled by the BDFL.
Tasks
- Are there issues tagged "Needs release manager review"?
- If yes: Provide feedback and make a decision.
- Has the next release been scheduled?
- If no: Schedule it; if it's scheduled for today, tag it. Coordinate with the security team as needed.
- Are all release blockers and risks properly identified,triaged, and on a path to resolution?
- If no: Coordinate triage of critical issues or propose steps to accelerate them.
Topic Maintainers (#)
Some aspects of the project are system-wide and correspond to one of the core gates that all proposed changes must pass. Topic maintainers ensure that patches improve rather than cause regressions for these topics and help educate other contributors on how to do the same in their patches.
(*) While generally topic maintainers do not have core commit access, the Documentation Topic Maintainer is an exception and has commit access for documentation patches only, since they cannot functionally break the system. (Note that class annotations are not considered documentation.)
Tasks
- Are there any issues tagged "Needs $topic review"?
- If yes: Provide review.
Subsystem Maintainers (#)
Subsystem maintainers oversee the development of parts of Drupal known as "subsystems". They can make a shorter-term commitment to maintaining a subsystem, or a longer-term commitment that spans several major Drupal versions.
The maintainers of each subsystem are responsible for:
- Communicating the vision for their subsystem.
- Delivering prompt feedback and decisions on issues affecting their subsystem when needed.
- Being available to other contributors with questions, bug reports, and feedback on their component, primarily on Drupal.org issues.
- Working with the security team to resolve security issues in the subsystem.
- Ensuring their subsystem respects the philosophy, design, and goals of the project.
- Periodically triaging their subsystem's issue queue to ensure that issues therein are relevant and current.
Anyone can be a provisional maintainer to a subsystem by simply contributing to it. Most subsystem maintainers start out contributing to their component by triaging issues, supplying patches, and reviewing others' patches.
Tasks
- Are there issues tagged "Needs subsystem maintainer review" in your component?
- If yes: Provide prompt feedback and make a decision.
- Are there contributors in your queue who are providing consistently great code and reviews?
- If yes: File an issue with the "Project governance" tag recommending them as fellow subsystem maintainers.
- Are there fellow maintainers in your subsystem who are no longer active?
- If yes: Try and reach out to them first.If there is no response, file an issue against the "Project governance" tag recommending removal.
Subsystem maintainers also ensure that the issues in their queues are properly triaged, either through their own work or by organizing other contributors:
- Are there issues you've not yet responded to in your subsystem's issue component?
- If yes: Provide review and feedback.
- Are there duplicate issues in your subsystem, or issues that more rightly belong in another subsystem?
- If yes: Triage issue queue accordingly.
- Do some of the issues in your subsystem represent significant changes to user experience, architecture, release timelines, or one of the topics?
- If yes: Tag "Needs X review" accordingly.
Initiative Coordinator (#)
Initiatives are larger projects for the current development release that are intended to re-architect or otherwise improve large areas of the Drupal core code-base. The BDFL determines these initiatives. Each initiative has initiative coordinators who act as project and community managers with a strategic agenda, and help guide a team of people interested in helping the initiative to succeed. Initiative coordinators don't have direct decision making powers; rather, they work to build buy-in among those who do have decision-making powers (product managers, subsystem maintainers, topic coordinators, etc.).
Tasks
- Coordinate work on the initiative.
- Communicate the plans, progress, and needs of the initiative to the community and the other maintainers.
Frequently Asked Questions (#)
How is a "significant" change defined? (#)
Here are some examples:
- A typo fix in the documentation of the Batch API. This will not significantly impact the Batch API, nor will it significantly impact the topic of Documentation, so only a simple peer review and sign-off is needed.
- A change in Entity API to the arguments of a method that's called from numerous core modules. The change will be a significant one to Entity API because it has impact on multiple modules. However, to each consuming module it will be a simple one-line fix and therefore insignificant to them. Only the Entity API subsystem maintainers' sign-off is needed.
- The introduction of a brand new configuration system API, which multiple subsystems are expected to use in a consistent way. In this case, current Configuration subsystem maintainer sign-off alone is not enough; because of the impact to multiple other subsystems, the framework managers must also approve the change (and will likely consult with multiple other subsystem maintainers who would be major consumers of that API in the process). Additionally, the Documentation topic maintainer will need to provide sign-off to ensure the documentation for this new system is clear and complete.
- Switching the order of fields on a configuration form. Unless done on a very frequently used page, chances are this would not qualify as a significant change, and simple peer-review sign-off would be sufficient.
- Introduction of a new UI pattern, such as a new tag selection widget. Depending on how widespread its use will be, this may require product manager sign-off, but will certainly require both Usability and Accessibility topic maintainer sign-offs to ensure product cohesiveness is retained.
- Redesign of the node creation form. Because this change will be to the most frequently-accessed screen for content editors, as well as one of the most frequent targets for module developers for enhancements, it has significant impact on multiple fronts. In addition to the Node module subsystem maintainer, product managers must approve this change (to ensure the quality of the default user experience of Drupal), as must Framework Managers (to ensure that contrib extensibility is retained), as must Usability and Accessibility topic maintainers (to ensure there are no regressions in those areas).
- Convert the code base from procedural to object-oriented code. While clearly something that will affect multiple subsystems and thus will fall to framework managers to sign off, this also will have impacts for the very nature of Drupal itself and its target audience, so BDFL sign-off is also required.
- A new release process is proposed to define what changes are/are not allowed during beta. This is squarely in the Release Managers' purview, but they should consult with the rest of the core committers (as well as other core maintainers if they so choose) when formulating a proposal. Any new release process will ultimately need to be signed off by the BDFL as well, since it will impact both the goals and governance of the project.
As a maintainer, how do I "sign off" on a change in an area I am responsible for? (#)
- Look for issues tagged "Needs $role review" for your role.
- Review each issue and provide feedback by leaving a comment.
- If the issue needs more work, set it to "Needs work" (NW).
- If you agree with the change, update the issue's summary to indicate that you have signed off on the change.
- If a committer set the issue back from "Reviewed and tested by the community" (RTBC) for your signoff and no other sign-offs are needed, set it back to RTBC.
- Remove the "Needs $role review" tag for your role.
- If you are a committer and no other sign-offs are needed, you can review and commit the change as appropriate.
Are there objective criteria for sign-offs or is it purely up to the maintainer? (#)
Drupal core has existing objective criteria for what changes can be accepted, including:
- The core gates which apply to all core patches.
- Guidelines on which changes can be made based on the release phase, including the Core backport policy and the Drupal 8 beta allowed changes policy.
- General coding standards.
- Other policies / standards documented under Getting involved in Drupal core.
Maintainers both evaluate changes in terms of these criteria and provide specific guidance for their area based on their domain-specific expertise and overall plan. (Also see the overall Drupal mission, values, and principles.)
What happens if sign-offs are missing? (#)
Any contributor can suggest that a change needs a particular sign-off and add the appropriate "Needs $role review" tag. (Refer to the Responsibility Assignment Matrix for guidelines.)
Core committers are ultimately responsible for assessing which sign-offs are needed or missing for a given change in the RTBC queue. If one or more sign-offs are missing, the committer will add the appropriate "Needs $role review" tag(s) and set the issue back to "Needs review" or "Needs work". (Also see How are patches committed?)
What timeframes are given for sign-offs before decisions are escalated? (#)
In general, when an issue is tagged as needing a particular signoff, it is the responsibility of the maintainers for that role to provide feedback within one week. If the review is not done within that timeframe, the issue should be escalated to the next step. For time-sensitive issues (such as critical regressions or issues that are blocking other work), this timeframe may be shortened or a committer may recommend a follow-up discussion instead.
Maintainers can and should take time off, whether for vacations or just because they feel the need to. However, when doing so, maintainers should let their co-maintainers and/or the core committers know about their impending absence and what they'd ideally like done with any issues that need their feedback in the meantime, such as delegating these decisions to another individual.
Also see I disagree with a patch that was committed, and it introduced problems with an area of core I am responsible for. What should I do? and How are patches committed?.
What are the issue tags used to alert maintainers that a signoff is needed? (#)
- Needs subsystem maintainer review (within the particular subsystem's issue queue)
- Needs usability review
- Needs accessibility review
- Needs performance review
- Needs documentation review
- Needs testing review
- Needs product manager review
- Needs framework manager review
- Needs release manager review
- Project governance
(There is no "Needs BDFL review" tag; issues should be tagged with "Project governance" if appropriate or otherwise simply be assigned to the BDFL by a maintainer.)
How is commit access allocated? (#)
The roles of BDFL, product manager, framework manager, and release manager have commit access and are collectively referred to as "core committers" (or "branch maintainers" for a specific major Drupal version). With the exception of Documentation, topic maintainers and subsystem maintainers do not have commit access.
How are patches committed? (#)
Core committers work together to provide timely feedback on all issues that are marked "Reviewed & tested by the community" (RTBC), either reviewing and committing patches or setting an issue back to "Needs work" (NW) or "Needs review" (NR) for additional work or (in the case of significant changes) for missing signoffs.
For the current development branch of Drupal, committers work together to provide feedback on issues in the RTBC queue as soon as their availability permits. For stable branches, committers may leave issues at RTBC for a longer period to ensure they are adequately reviewed by others.
Committers will sometimes assign an issue to a different committer who has more expertise for that issue or whose signoff is needed.
What is a "provisional" maintainer? (#)
A "provisional" maintainer is a maintainer who do not yet have full authority for their role, but is working alongside the primary maintainers with the aim to become a full-fledged maintainer in the future. "Provisional" product, framework, and release managers can perform the same sign-off duties as core committers, but do not yet have commit access.
Are maintainers required to have any particular skills/expertise? (#)
No. Maintainers can rely on others from the team to support them in areas where they have less expertise. For this reason, it is valuable to have a range of technical skills on the team, but there are no specific requirements like "at least one of the product managers must have a design/UX background" or "one of the architects must be a performance or front-end engineer".
Are there any provisions for various maintainers like "no more than X people from a certain company"? (#)
No. In general, maintainers consult others for any significant decision; see How are decisions made? above. Since decisions are made through a system of signoffs and consensus rather than by vote, this mitigates the effect of any one group having a larger majority. If there are concerns about a maintainer making biased decisions on behalf of a particular employer or audience, these can be escalated "up the chain" to the next level, up to the BDFL, or in a worst case scenario up to the Community Working Group. (If there are simply objective concerns about a specific decision, a followup issue should be filed instead.)
What's the difference between a "Product manager" and a "Usability topic maintainer"? (#)
A product manager sets forth the "vision" for what Drupal will look like, and decides on its feature set. A Usability maintainer helps maintain that vision by enforcing usability guidelines and providing usability feedback in their patch reviews. It's expected that the product managers and usability maintainers will work closely with one another, by drawing on each others' expertise.
What's the proper way to add myself as a maintainer? What's the proper way to step down as a maintainer? (#)
In either case, file an issue in the "Drupal core" issue queue with the "Project governance" issue tag. If stepping up, it's helpful to list a few issues you've helped with recently to demonstrate your track record. If stepping down, it's helpful to recommend another person to take your place (when possible).
I disagree with a patch that was committed, and it introduced problems with an area of core I am responsible for. What should I do? (#)
Cross-post a followup issue explaining your concern and reach out to the core committer. For urgent or critical regressions, reopen the original issue and request a revert.
Doesn't this structure add all kinds of overhead to the committing process? (#)
While it's possible that this process may introduce slightly more overhead, the intent is to simply formalize what is informally done anyway, and help make the decision-making process explicit so both contributors and maintainers know what to expect and who to talk to if they're stuck. Also, formally spreading sign-off responsibilities to the various parties will hopefully result in fewer RTBC patches being rejected by core committers and a faster and more efficient process for everyone overall.
Appendices
(#)
Appendix: Responsibility assignment matrix (#)
The following Responsibility Assignment Matrix illustrates the Drupal core decision-making process.
While the most common format for such matrices is RACI (Responsible, Accountable, Consulted, and Informed), this table uses a variation called PACSI (Perform, Accountable, Control, Suggest, Informed), which more closely matches the collaborative nature of our culture.
Key
Perform (P)
The role(s) that carry out the activity.
This is placed in the column of the role(s) that predominantly drive those changes, but this doesn't preclude other roles from also carrying out work.
Accountable (A)
The role(s) ultimately accountable for the correct and thorough completion of the task, and often the ones who delegate the work to the performer (P).
Control (C)
The role(s) that review the result of the activity (other than the Accountable, A). They have a right of veto and their advice is binding.
Suggest (S)
The role(s) consulted for advice based on their expertise. They provide non-binding advice.
These are role(s) whose input via two-way communication is actively sought, though this does not preclude others from making suggestions.
Informed (I)
The role(s) that must be informed of the result of the activity.
Matrix
Note that if a change includes multiple rows in this table, there will be multiple roles involved.
* The BDFL may proactively make or override these decisions if they deem it necessary.
Comment | File | Size | Author |
---|---|---|---|
#72 | maintainers-governance-2457875-72.patch | 4.62 KB | webchick |
#66 | sleep-omg-must-sleep.patch | 4.61 KB | webchick |
#65 | maintainers-governance-blah.patch | 0 bytes | webchick |
#64 | maintainers-governance-blah.patch | 378 bytes | webchick |
#61 | maitainers-governance-blah.patch | 4.61 KB | webchick |
Comments
Comment #1
webchickFor those who'd prefer to comment on the Google Doc version it can be found here: https://docs.google.com/document/d/1xDYdseCae9RWGScFmrKkf_d6TkwLR_GoyAui...
Comment #2
Dries CreditAttribution: Dries commentedComment #3
dawehnerThank you for posting that post without the word leader in it. Highly appreciated!
Documenting which process we have, absolutely makes sense, as it makes it easier for new contributors to understand what is going on.
I really like the structure of IO.js, because it has a much lower bus factor.
So, basically this is about formalizing what already happens many times.
Can we make the text more clear and describe that it should be based upon a reason?
Odd, that fragment link doesn't work. Based upon that, we should be clear, that single maintainership is problematic, as it causes way easier burnouts, due to being
the only person, having to deal with conflicting interests, for a particular subset of issues.
I'm curious, will this be supported by Drupal.org in some way, so will it be for example possible to have a look at the most recent signed off issues, and for each individual, will there be clear
markers that something is signed off / has to be signed off? I'm thinking about new people coming into the community,
if we adapt this framework, we want to make people it as clear as possible, and fast, what basic principles we care about. I think we don't want to introduce an informal formal structure.
Note: This issue has 8.0.x as version, so it will apply in 2 weeks? The issue just talks about documenting it, which work
Alright, two more core committers
There should be tools not requiring everyone to remember that. If issues are aware of their significance, some information about the next step, could be presented to the contributor.
Comment #4
xjmJust fixing the "timely" link per @dawehner's comment.
Comment #5
xjmVery true! How exactly to get more than single maintainers in a given area (or any at all in many areas) is of course the 90% of the work we have to do once the 10% work of improving the process is done.
I think this is great feedback, and I also think it'd be really, really good if our issue queue surfaced this decision-making to contributors. Committers and other reviewers have suggested a desire for "checklist" functionality for issues in the past. However, making improvements to the issue queue of course takes work, and plus there's the fact that since this is specifically for core, we have to be careful for how we impact contrib with any changes we make to the issue queue. So I think it's just the issue tags for now. But +1 for making it more explicit on d.o somehow.
Comment #6
xjmShould we link the objective criteria FAQ in that section somewhere? Does that address it? There is also the how to sign off section which implies (but does not explicitly state) that the maintainer should document the reasons for the signoff (or lack thereof) on the issue.
Comment #7
xjmAlso a good point. I think that what mitigates this for now is that most of the responsibility for making sure the steps were taken falls to the committers -- i.e. if something was missed, it's their job to catch it and let others know on the issue. (Same as now really.) But a better way is definitely possible with improvements to our tools.
Comment #8
dasjoThanks for putting this all together!
I know that a birds eye view is essential to understand the whole piece, though my first thought was if it was more intuitive to use turn the order around. If the guide could start with what a single contributor may do on their own and when upper authorities come into play might be a good second way to look at this? Just thinking out loud, not that I have the picture fully in my mind...
Comment #9
dawehnerSo i'm curious whether we could expand the text to something like:
Subsystem Maintainers: Maintainers of one particular part of Drupal core, such as the Entity system or Comment module. In order to avoid burnout and conflict
there should be at least two people taking care of it, at the same time.
Let's create an issue to discuss that, because I think its an important part of the onboarding process: #2458333: Design / discuss how to help people understand the formal structure of Drupal core but not directly impacting this.
Well, for me its missing the part where people turn on their brain and find rational arguments beside written down rules.
Comment #10
catchThat would be a useful way to present this. Also ties in with how the issue queue is day-to-day (i.e. more of a funnel/sieve).
Comment #11
jhodgdonJust to amplify what I think has at least partially been said above:
Those of us who are performing Maintainer roles (component, subsystem, etc.) need to have better tools on drupal.org Should we start another issue to discuss the tools we need?
I think we also need to think about who maintains what components in what versions of Drupal.
Specifically... Currently, I rely on a *large* set of bookmarked drupal.org issue searches to manage my responsibilities, and it's very clumsy. This proposal would greatly increase the number of bookmarked searches I'd need to look at, and I'd need to look at them at least once a week in order to comply with the requirements in this document, I think.
Here are the searches I would need to be doing:
a) Issue triage (subsystem/topic maintainer): I would need to see a list of all issues in all components I maintain or co-maintain, for the versions in which I've agreed to be the maintainer. Ideally this would be one link that would contain (currently) all issues in Search module for Drupal 8, Documentation subsystem for all versions, and Transliteration component for Drupal 8. Currently this is 3 separate bookmarked searches. I'd like to see it as one page. And this doesn't count the other components that I'm unofficially kind of watching, like the Help module, the Tour module, etc.
b) Sign-off (subsystem/topic maintainer): I would want to see a separate list of all the issues I need to sign off on. These would be:
- Issues tagged "Needs documentation review", independent of component and version
- Issues tagged "Needs subsystem maintainer review" in either the Search component or Transliteration component for Drupal 8.
Again, this would currently be 3 separate bookmarked searches. I'd like to see it as one page that I would look at daily in order to provide timely feedback on these rather time-sensitive sign-offs.
Ideally, I think that the best way to provide this might be to make a UI where any Drupal user could set up an issue search with and/or logic, and let each of us create multiple search pages. I really don't want the Triage stuff mixed in with the sign-off stuff -- I might not look at the Triage page as often or treat it with the same urgency. But at the same time I don't really want to double the amount of bookmarks I need to look at in order to be a good Maintainer. The tools we have now are crude and not supporting these roles very well.
Comment #12
webchickA spin-off for Drupal.org tools improvements to support this proposal sounds like a fantastic idea.
Comment #13
jhodgdonAnother problem: vacation. As a sub-system and topic maintainer, and without a co-maintainer at least for Documentation, I do not think I can commit to the responsibility of always providing feedback on "needs $whatever review" issues within one week. I am not always available, and even for the components where there are co-maintainers, I do not want to have to coordinate vacations with my co-maintainer(s). What can we do about this?
Comment #14
jhodgdonOK spinning off: #2458505: Need better issue search tools to support new Drupal Core governance structure and I'm going to now fill it in...
Comment #15
webchickVacations are attempted to be addressed by point #5 in the decision-making process:
"If a subsystem/topic maintainer sign-off is not given in a timely manner, or if sign-off is not possible because the patch was authored by those who need to provide sign-off, it gets escalated to the core committers."
Basically, same as now.
Comment #16
jhodgdonOK I filled in #2458505: Need better issue search tools to support new Drupal Core governance structure to address the issue search tools. Someone else can write up the "checklist" idea. ;)
Comment #17
jhodgdonRegarding vacations and #13/#15... Maybe we need to put something about this in the Responsibilities section or in the FAQ about "timely manner". It currently says in the Subystem Maintainer section that maintainers need to provide "prompt feedback", and to me, the wording about "if it's not provided in a timely manner" in the "how it works" section sounds like this case is a fallback in case of a failure of some sort instead of a normal occurrence.
We're all volunteers here, and there is no way we can realistically commit to being available at all times to provide feedback promptly... But the way things are worded, it sounds like we're shirking our defined responsibilities or failing in some way if we don't, rather than it being OK.
Anyway. Just a small thing in an otherwise great proposal!
Comment #18
mikey_p CreditAttribution: mikey_p commentedI can't really put my finger on it, but the matrix at the struck me as somewhat depressing – almost all of the "performs' tasks fall on the 'core contributor' which isn't even defined in this document. I'm concerned that with people feeling burnout and core development slowing to the point that the DA is funding core development, this mentality is going to make core contributors feel even more pressured.
I'm further concerned about how that will be viewed in light of the new core committers and maintainers listed. 4 of the 6 core committers are now Acquia employees and our BDFL is the founder of the company. I'm not trying to question their leadership, decisions, or contributions, rather I'm concerned about the way that this could be perceived by the community. In the past there have been concerns about Acquia's influence over Drupal, and the affect that had on the community was discouraging to contributors, and this feels like it could perpetuate more of the same concerns.
If I were a total cynic, I would read this policy and conclude, "Well Acquia is taking greater control of core, and they expect 'core contributors' to keep doing all the work for them." I'm not that cynical, because I know a lot of great people in the Drupal community and I know the core committers well, and I trust them. However that experience comes from knowing those core committers on a personal level, not any kind of policy or control structure.
I guess my question is this: What steps are being taken to ensure that a policy like this doesn't cause trust issues or perpetuate contributor burnout?
Comment #19
webchick(EDIT: In reply to #17)
It's tricky though, because the people supplying patches are also largely volunteers. And when I asked a few months back on Twitter what burns people out from core development, patches sitting there with no one to care about them was #1 or #2 in the list. (The other one of #1 or #2 was lack of a clear decision-making process so check and check! ;))
The intent of this is to give subsystem maintainers a) a heads-up that something's going in that might need their attention, and b) a reasonable timeframe in which to say "wait! what about this?" But the intent is not hold up the entire committing process on their approval. Does that make sense?
So vacations are fine. How I would handle that as a product manager is if there were things saying "Needs product manager feedback" in my queue, I'd respond and let them know I'll be gone for the next N days and either a) I'd really prefer if this could wait until I get back or b) feel free to move along without me.
Comment #20
webchick#18 is a great question and brings up a lot of good points. I want to thinker on it more.
The reason for the committer change-up as part of this document is Alex and Jess already effectively play this "provisional" committer role and have for months, but this is not currently transparent at all. We also have one core committer about to go AFK for 4+ weeks.
What I see happening after this policy is approved is Dries appointing additional people to the various "provisional" committer roles with the aim to make them full-fledged committers in a couple of months, after we kind of see how this process shakes out in practice. But you're right that in the meantime, this certainly has the risk of creating trust issues, particularly among those who don't have personal relations with the Acquians in this list to know that they're extremely high-integrity individuals.
Comment #21
mikey_p CreditAttribution: mikey_p commentedLet me make it clear that I am excited and received to see Jess and Alex recognized for the work they already do, and I honestly can't think of any individuals in the community who would be a better fit for the role. I am grateful and I hope the rest of the community is for all the hard work they do, especially with getting hard issues unstuck.
I'm really much less worried about the issues with corporate influence of the project, and more worried about contributor burnout and how this policy (or even it's apparent interpretation) could affect that.
Comment #22
xjmThanks @mikey_p.
I just need to point out that this statement is fallacious. The momentum on core issues is higher than it has ever been in the past five years, whether or not issues sponsored by D8 Accelerate are counted (they are a small, but valuable percentage of the total work). D8 Accelerate is not a compensation for a lack of momentum; it is a way to provide focus and, well, acceleration specifically on tough release blockers. In D7, there were other ways that people were paid for work on nasty issues. The D8 Accelerate way is just (IMO) better. :)
Comment #23
jhodgdonAlso pointing out that @dawehner filed #2458333: Design / discuss how to help people understand the formal structure of Drupal core to discuss how to structure a checklist or something, so that contributors can understand the sign-off process. (Possibly so *maintainers* can follow this process too.) So we have two issues now about drupal.org improvements that would be useful to support these changes.
Comment #24
thamasI think it is OK to maintain this information as a project but it should be placed in the Documentation section of drupal.org IMHO.
If I looked for information like this I would look for it in the Documentation section and would never thinking about it as a project.
Comment #25
jhodgdon@thamas, that is good feedback. Where in the Documentation section would you expect the page to be? We can at least make a link there.
Comment #26
mpdonadio@jhodgdon, how about a Dashboard block for this and similar topics, too? Or maybe just add it to the top of Contributor Links? The later may be better, as the people who would refer to it probably already have this block on their dashboard.
Comment #27
jhodgdon@mpdonaido: Maybe. I don't use the dashboard myself, so I am not sure whether that would be useful or not.
Comment #28
xjmI assumed that any Views for maintainer search would also be available as dashboard blocks.
Edit: I commented to this effect on #2458505-11: Need better issue search tools to support new Drupal Core governance structure which is probably the place to discuss it.
Comment #29
thamas@jhodgdon I've just realized that there is a Governance page in the "About" section of the Docs: https://www.drupal.org/governance So it should go there, I think.
@mpdonadio If you are talkin' about displaying this information to the users, I think it is useful, but not enough. We should think about not registered / logged in users too. If you are talkin' about something else than sorry. :)
Comment #30
davidhernandez+1 to anything that gets this out of tags into fields or something readily available on an issue. I've already had to come back here several times, because for the life of me I can't remember "framework manager".
Comment #31
xjmI've closed #2050451: Formalize the role of core component maintainers as a duplicate of this issue.
Comment #32
xjmAlso linked some existing issues:
We should also retag all the issues tagged with Component maintainers to "Project governance" instead (aside from the d.o issues which can probably just be untagged and referenced as related issues). That can happen right now, even before this policy is finalized, if anyone is bored on their lunch break. :)
Comment #33
Crell CreditAttribution: Crell at Palantir.net commentedHuge thanks to everyone who's been involved with this so far! Formalizing this structure in a clear fashion is the first step toward improving our overall Contributor eXperience. (It's the cool thing to make everything an eXperience now, isn't it?)
Some additional comments:
- As others have noted above, additional Drupal.org tooling will be enormously helpful in ensuring the various *Maintainers are able to do their jobs, and ensuring everyone else understand who is responsible for and has authority regarding what. As there's already another thread for that I won't add more here other than +1.
- Traditionally, the non-Dries non-subsystem maintainer(s) have changed with each release. The document is mum on whether that is intended to still be the case going forward. Is it? Should we clarify which roles are expected to be per-major and which are indefinite and which are "whatever" (eg, subsystems)?
- The doc implies that the Product Manager, Framework Manager, and Release Manager are always core committers. While that makes sense for the Framework and Release Managers, I'm not sure about the Product Managers. Our current PMs are both code-savvy and Git savvy (even if it took Dries a while on the latter. ;-) ), but I can certainly envision a situation where we have someone who is an excellent product-level visionary with good user-understanding, sense of the market, and organizational skills but who is totally lost on PHP code. Those skills are sufficiently distinct that while they currently overlap we should not presume they do, and leave the door open for non-developer Product Managers. (Part of not making non-devs second class citizens inadvertently.)
- "Provisional" as a name sounds weird. From the description it's really an apprentice position. Would that be a better term?
- I suspect this formalization will succeed or fail based on the success of working out the nuance between the Committer-level maintainers and the subsytem maintainers. The document leaves much of the nuance there unsaid, which is reasonable given that there's so much context-specific information that goes into whose job it is in edge cases to make a call on something. I don't have a specific recommended change here, just calling out that this will be an important relationship and evolving the cultural expectations around it (which right now are fairly thin and poor) will be critical.
- How aggressive can subsystem maintainers be on triage? I don't mean just in cases of status tug-of-war, but for instance I would wager that at least a third, maybe half, of the open issues on core right now are either no longer relevant (old versions, code has changed too far since it was last touched, feature no longer even exists, etc.) or are only open as a courtesy because someone felt that "won't fix" as a way to reject a feature "for now" was too mean/aggressive. (And therefore the issue has been in needs work or postponed for 5 years and now in category 1). I'm sorely tempted to go through at some point and just mass-close a whole crapload of issues that are not relevant now nor have been for a while (eg, anything still tagged Drupal 5), but the last time I tried a few years ago Angie took a ruler to my hands. :-P Is closing out, say, feature requests with a "no, not on the roadmap" something within a subsystem maintainer's purview?
- Initiative Coordinator is a more descriptive name than Owner or Lead for what the job description reads as, so that's an improvement. However, at every DrupalCon of the last 3 years it's been fairly well agreed that Initiatives need to not be single-person but have a formal and named team behind them with various roles. Should that be incorporated here to be forward-looking? (Or, will we even need initiatives post 8.0.0 since hopefully we won't have 10 massive rewrites going on at the same time ever again?)
Comment #34
webchickThanks a lot for all the excellent feedback so far. Going to attempt to synthesize it in advance of a meeting I have tomorrow with Dries, but please feel free to mention if I've left anything out.
I think everyone would agree that this is desired, but this is also only really possible if we massively scale back the current granularity of subsystems, and let larger subsystem maintainers self-organize around "sub-sub systems" (for example, how the database maintainers are structured). Once this proposal is adopted, we'll have a guiding framework, that will enable a second chunk of follow-up work around updating MAINTAINERS.txt to make it both accurate and more manageable. (see #1854480: Remove inactive maintainers from MAINTAINERS.txt, #2050477: [META] Identify component maintainers for components with no maintainer listed in MAINTAINERS.txt for starters).
I'm a little torn on that personally... I can see the logic, but it feels a lot like "babysitting," and if that kind of thing is happening a lot it's unlikely more words will stop it. Instead, it should really get escalated "up the chain" instead, as defined in the document (subsystem/topic maintainer/initiative coordinator -> core committer -> BDFL -> CWG), so I'd prefer to emphasize "what to do in case you disagree with a decision," personally.
My response to that btw, is Docker called these roles "in-training" and we didn't want to call them that because of the lack of experience implied, when everyone who'd be in one of these roles would've most likely been a core developers for 3+ years. "Apprentice" has the same "lack of experience" connotation, so not sure it's better.
My response: I'd need to see the issue I ruler-slapped to understand the context... in general I don't think I have a problem closing out old issues, but if it's still a legit bug report (for example) that doesn't really make sense, as it risks losing a bunch of work that went into finding the solution. So IMO it's kind of case-by-case.
AFAIK Dries agrees future initiatives should have teams behind them so it's just a matter of whether we want to make that desire explicit in this section.
Comment #35
webchickthamas, is there anything on https://www.drupal.org/project/governance (the canonical Git copies that are version-controlled) that's not on https://www.drupal.org/governance (the documentation section)? Or are you just suggesting we drastically shorten the project description to mainly a pointer to the docs, so there's not two places for the same info?
Comment #36
webchickOk talked with Dries today about the feedback so far. He's heading on vacation tomorrow, so paraphrasing on his behalf:
I think that was everything.
I'll make another edit to the issue summary hopefully tomorrow that attempts to incorporate the feedback so far while still allowing more time for comments.
Comment #37
Dries CreditAttribution: Dries commentedThanks, Angie! You summarized our conversation well.
Thanks everyone for the feedback so far. Keep in mind that this will be a living document. If we missed a few things in v1.0, we can add or refine it in version v1.1, v1.2, etc. As with everything Drupal, we'll take the time to get it right in v1.0 but will continue to evolve the document over time based on what we learn.
Comment #38
thamas@webchik I think it would be good to make more clear the goal of the project page and shortening that could be a good idea.
Also the project page says "Other governance policy documentation can be found at About Drupal: Governance." While I'm not a native English speaker I did not understand first that "other" here does not mean a different / additional documentation but it means an another "copy" of the actual information on project page.
(FYI I did not looked for differences and has no information about how the project page and the documentation page are kept in sync. But if it is done manually, that includes the possibility of mistakes.)
Comment #39
xjmFWIW -1 on "apprentice"; I find it has the same demeaning connotations that "in training " did. Only one person has proposed that label, whereas several people already agreed on "provisional" over "in training".
Comment #40
davidhernandezI agree with xjm.
Comment #41
webchickWell, provisional in some ways has worse connotations: temporary, interim, etc. Implies people can be replaced at any point, more so than "on their way up." However, per #37 we can always change it later. :)
Comment #42
Les LimRe: "apprentice" vs "provisional" -- how about "assistant" or "deputy" maintainer?
Comment #43
mpdonadioIsn't provisional used for secteam members who aren't full members yet?
Comment #44
alexpottI've always assumed that this was the case. Maintainership with commit access is at the BDFLs discretion and so (i guess) is the removal of a maintainer with commit access
@mpdonadio yep provisional is used by the secteam.
Comment #45
Crell CreditAttribution: Crell at Palantir.net commentedNot to go too far off on a tangent, but I see nothing "demeaning" in "apprentice". If anything, OSS and programming in general needs a stronger apprenticeship/mentoring mindset. It's a learning and training role, which is exactly what I understand we're describing here.
Developers in general could stand to use a bit more humility. (And I do not exclude myself from that statement at all.)
Comment #46
markhalliwell+1 #45. Given that we already have core mentors, "Apprentice" does seem the more logical word. However, given the context of which all of this is related to, "Tentative" seems the more appropriate word. "Provisional" implies they're standing in for someone and will eventually relinquish said role, not ultimately (and more than likely) advance to full status membership.
Comment #47
dawehnerWell, as a non native speaker I neither was aware of the meaning of "Apprentice" nor "provisional", but at least for the second word you can guess the meaning.
We want to be inclusive, so let's try to use simple words.
Some other ideas: representative maintainer, supportive maintainer. Some other idea you could think about is going back to the notion of teams, also for subsystems.
Another idea: "Call it subsystem team membership", which makes it IMHO quite clear that we don't talk about a hierarchy but rather a set of individuals working together.
All that leadership thinking is horrible in so many ways, kill it with fire!
Comment #48
benjy CreditAttribution: benjy at CodeDrop commentedI like the concept of teams, +1 to this.
Comment #49
YesCT CreditAttribution: YesCT commentedduring the mentoring meta meeting, we realized that there was a part of maintainers.txt that we did not notice before #2465617: [policy, no patch] Documenting Drupal Core Mentoring lead responsibilities
Comment #50
webchickOk, made (I think) all of the non-controversial changes outlined in #34/#36.
"What is a core contributor?" is a longer thing so to avoid death by issue summary updates, added that here https://docs.google.com/document/d/1Vd_Ss1pKUGx2JQB30lcBxOpRSTxvxCIDQq0w... for us to bang on for a few days. I've turned on commenting access for everyone.
I kept Provisional alone. It sounds like it's something we could always discuss in a sub-issue if enough people feel strongly about it, given the "living document" aspect of this pointed out in #37.
I do not think "subsystem team membership" works, however, so I did not add that change. For one, because Dries stated that although a team behind a subsystem is great for all the various reasons, it is not a requirement. And for two, check out all of the ?s in MAINTAINERS.txt sometime. :) We're not currently set up at all for subsystem teams giving our overly granular subsystem definitions atm. Once we've fixed that problem, maybe we can revisit this idea in a later revision.
I also have to confess I'm a bit mystified on the nervousness/concern around the word/concept of "leader." Because let's face it: we do have lots of leaders in our community (or "people with more karma than others" or "people who've been around longer than others" or however you choose to phrase it). This is a by-product of the "do-ocracy" way in which the Drupal community is empowered to make changes. Not making those people who the community looks to for guidance explicit turns into the tyranny of structurelessness where only those deeply involved have any idea how the whole core development thing actually works and how to get their patches through. That's one of the things this document is explicitly trying to help fix.
Comment #51
webchickNow cleaning up some stupid HTML things that I noticed when I was doing that. :P
Comment #52
webchickSigh. I really wish Google had a "do not ever copy my organization URL to a public doc" option. :P~
Comment #53
Crell CreditAttribution: Crell at Palantir.net commentedwebchick: As I understand it, dawehner's concern with "leader" is not about "people in positions of explicit authority and responsibility" but a bit of cultural linguistic baggage. (Remember what country he's from; I didn't get it either until he pointed that out to me.)
Also, the pop business press is filled with "how to be a leader" articles, all of which are utter BS when you get right down to it so the word has sadly gotten rather diluted. :-)
Comment #54
YesCT CreditAttribution: YesCT commentedI would recommend removing obviously from
Obviously, maintainers can and should take time off, whether for vacations or just because they feel the need to.
and make it just
Maintainers can and should take time off, whether for vacations or just because they feel the need to.
Comment #55
webchickAgreed.
Comment #56
webchickOk, didn't see any critique of the definition of a core contributor in the past couple of days, so formally incorporating that into the issue summary.
Also tentatively marking RTBC, as most of the recent discussion has been around specific wording improvements, rather than about the overall concept, and as Dries noted in #37, the specific words can (and will) be improved over time.
Thanks, all!
Comment #57
Dries CreditAttribution: Dries commentedThanks all of the thoughtful discussion here.
I went ahead and added Alex B and Jess as committers. Congratulations!!
I'm also ready to commit the governance policy document, but I think we should discuss a bit more about where this document should live.
Given that I'm responsible for maintaining the policy and the names, I'd strongly prefer to have the document live in Git so we have some access control and history as to when changes were made and why.
I see three options:
I'm leaning towards #3 but would love your thoughts.
Comment #58
webchick#3 sounds good to me too. The names *will* be different per-version most likely.
Comment #59
Fabianx CreditAttribution: Fabianx commented+1 to #3
Comment #60
webchickOk, let me do a bunch of annoying formatting again. :)
Comment #61
webchickOk, membership/provisional membership removed from the HTML. Here's a patch to MAINTAINERS.txt that:
- *Adds* new names (leaves the old ones there to sort out later)
- Switches the role labels to be consistent with the doc.
- Moves node access and translations to a subsystem, rather than topic, since the list of topics was explicitly intended to match the gates. We'll clean this up in a follow-up to fix subsystems.
Comment #62
webchickBack to Dries. :)
Comment #63
alexpottSpace at the end of the line.
Comment #64
webchickDang it. I thought I got all of those. Thanks.
Comment #65
webchickBLAH.
Comment #66
webchickDOUBLE BLAH.
Comment #69
tim.plunkettDoes Dries get a (Something something) added below his name?
subsystemmaintainer is where this should be split across two lines
Comment #70
alexpott@tim.plunkett...
(BDFL)
?Comment #71
plachThis is really awesome!
Suggested addition for the FAQ section:
@eff++ :)
Comment #72
webchickLOL :)
Here's an update for #69/70, thanks!
Comment #73
YesCT CreditAttribution: YesCT commentedApplied it to look at it in context and looks good.
Right now, provisional membership line is at the end of a group, we can see later how best to list provision people once we start actually documenting them.
Comment #74
YesCT CreditAttribution: YesCT commentedIn the issue summary, added html link # next to "What is a core contributor?" for symmetry with other sections.
Comment #75
YesCT CreditAttribution: YesCT commentedI looked it over and could not find anything wrong with it, I even applied it and looked at it context, and it also still applies.
Comment #76
fgmSomething strikes me as conspicuously lacking : the governance of everything security related. Indeed, the security team might well be the most formalized structure we've been having for long, but that does not seem to be a reason not to include its governance here : there are references to it at various places in the document, but nothing about the team itself.
Should it not be included in that overarching document in some way ?
Comment #77
webchickIt could, though the Security Working Group has its own charter, and it is not specific to core. See http://cgit.drupalcode.org/governance/plain/charters/security-working-gr... and https://www.drupal.org/governance/security-working-group
Comment #78
fgmThese charters do indeed exist, and existed before this document was elaborated. But it still seems not-so-logical not to describe the SecWG and Security Team governance in this document, since it is (AIUI) a general framework to provide a reference for governance on Drupal core. Even though, as you mention, the SecWG (and Security Team) also have responsabilities outside core: at least referencing them, providing pointers to their own specific procedures, and their place in the grand scheme of things, even as "somewhat separate" entities, would make the document more consistent.
Comment #79
mparker17Some of the issue tags used to alert maintainers that a signoff is needed are already in use, so I updated the Special issue tags documentation.
Comment #80
mparker17Note that the following special issue tags don't exist yet and will need to be created (and the special issue tags documentation will need to be updated to link to them):
Comment #81
webchickI would say go ahead and document them (and thanks for doing that!). They'll automatically get created the first time there's a reason to use one of them.
Also spun off #2492533: Figure out how to reference the security team in the core governance docs for #76/78 so we can discuss the best way of doing that without expanding this issue by another 20+ comments. Dries will have time on Friday once again to look at this and I'd love to get the policy itself formally documented so it's public before we start tweaking things.
Comment #82
mparker17They've already been documented! :D
What I meant to say is that, once the terms have been created for the first time, the documentation page will need to be updated to link to the terms (they currently have
<a id="">
wrappers, but we'll have to add thehref
attributes).Comment #83
mbrett5062 CreditAttribution: mbrett5062 commentedHmmm I may be wrong, but should the issue title be changed from:
[policy, no patch] Evolving and documenting Drupal core's structure, responsibilities, and decision-making
to:
[policy] Evolving and documenting Drupal core's structure, responsibilities, and decision-making.
As we actually have an RTBC patch attached??
Comment #84
mbrett5062 CreditAttribution: mbrett5062 commentedD8 list is not in alphabetical order
Comment #85
mbrett5062 CreditAttribution: mbrett5062 commentedComment #86
alexpott@mbrett5062 I thought it was in alphabetical order by surname?
Comment #87
penyaskitoOfftopic, but worth to know for inclusivity: http://www.w3.org/International/questions/qa-personal-names#sorting
Comment #88
mbrett5062 CreditAttribution: mbrett5062 commented@alexpott of course you are correct, my bad. Have reviewed further and is indeed RTBC.
Sorry for the noise.
Comment #89
jhodgdonYou know... There's one thing missing from this document that I think is kind of important... could be a follow-up issue too. Maybe it belongs in the Skills topic in the FAQ, and maybe it's a separate topic, and maybe it doesn't belong in this document. But I think we need to address the question of tone in responses to issues.
I know that we have general guidelines in the Drupal project (the Code of Conduct) about respect and politeness... But when someone in a position of some authority, such as a Drupal Core maintainer (of any of the various types listed in this document), makes a comment on an issue, it automatically carries extra weight beyond what a regular contributor comment would. So it seems to me that as Maintainers (again, of any type), we have an extra responsibility to keep the tone not only civil and polite, but to add an extra dose of patience, respect, and appreciativeness to our comments.
This is sometimes difficult. For instance, I am often faced with an issue where I've made the same patch review comment several times, and the problem still isn't fixed in the way I would like to see. It's often quite frustrating to be a reviewer/maintainer. But I try to start my next comment with "Thanks for the new patch! This still needs some adjustment to comply with the standards on (specific link):" or something like that, rather than "I've said this 5 times already and it still isn't fixed!!!". Or maybe it's just something I see over and over on different patches, but probably this particular contributor doesn't know about this common problem. In this case, I need to be extra sure not to convey my frustration of "this same problem again!!!" to the new contributor (or even to an experienced contributor who I know has made this same mistake before... it's not like I never have typos or lapses myself!
So...
That is a bit wordy, but... My specific suggestion would be to add something like this to this document:
----
Tone in issue responses
An issue comment from a Maintainer (of any type listed in this document), when commenting on an issue in their area of maintainership, will automatically be perceived as carrying more weight than the comments from non-maintainer contributors. Because of this, besides following the Drupal Code of Conduct (expected of any contributor), maintainers need to take extra care in their comments to be:
---
And then maybe we should make sure that both seasoned and new maintainers are specifically reminded of this guideline periodically, because we can all use the reminder now and then... or maybe reminded of the document as a whole? But this is really important -- violating it can drive both new and seasoned contributors away.... Maybe it should be part of that Skills bullet in the FAQ, not sure.
Comment #90
xjm@jhodgdon, I think that's a great suggestion.
Comment #91
Dries CreditAttribution: Dries commentedCommitted the updated MAINTAINERS.txt. Thanks Angie! Will commit the governance policy next.
Comment #93
mpdonadioI think #89 is a good idea, and I may be going even more tangential here to the actual, but what gets confusing at times is when reviews/comments are made by people outside their "authority", and also it isn't always apparent to new contributors when an authoritative comment is coming from a maintainer. As a worker-bee in most of my contributions, I have been stuck in this situation several times (and ironically, I think the last one was related to an issue @jhodgdon was driving forward :) but not in an area where she is listed as a maintainer). I know who to pester in situations like this, but knowing who-is-who and what they do takes time to learn.
Comment #94
jhodgdonYeah, that's a good point. I am only a partial "authority" when it comes to Documentation, Search, and Transliteration. On other issues, I'm a regular contributor. It may not be clear which "hat" I'm wearing... although MAINTAINERS.txt would be the central place to look.
Comment #95
Dries CreditAttribution: Dries commentedI just committed the governance document to http://cgit.drupalcode.org/governance! It's a big deal so thanks for all the work and feedback on this everyone, especially Angie who help me drive this home!
There are a few things we have to follow-up on still but I recommend we do that in follow-up issues.
Comment #96
webchickI love the suggestion in #89 and it sounds like other people do too, so spun off #2493659: Add language about maintainer conduct in the core governance doc to discuss that explicitly.
Comment #97
David_Rothstein CreditAttribution: David_Rothstein as a volunteer commentedThe MAINTAINERS.txt changes are needed in Drupal 7 too.
And now that this policy is officially in place, it's time to start thinking about additional core committers for Drupal 7 also. I think at least two more are needed (one regular committer, and one provisional). It' s not clear to me whether the self-nomination process is for people who are interested in being core committers or only for people interested in being regular maintainers, but assuming the former, https://www.drupal.org/node/add/project-issue/drupal?version=7.x-dev&tag... is the place to do it if you are reading this and are interested in self-nominating. Otherwise, I'm sure I could come up with suggestions :)
Comment #98
David_Rothstein CreditAttribution: David_Rothstein as a volunteer commentedBy the way, is the final policy linked from somewhere?
I do not see a link to it at https://www.drupal.org/project/governance even. I had to dig around a while to find http://cgit.drupalcode.org/governance/plain/drupal-core.html?id=refs/hea... (the link I used above) which I guess is the best place to see the current version.
Comment #99
webchickOops. Quite right. Mirrored in the handbook at: https://www.drupal.org/governance/core
Also I think self-nomination works for any maintainer, though most core committers are appointed "top-down." So if you have specific suggestions for extra D7 core committers (+1 to that!) maybe also try reaching out to Dries directly.
Comment #100
webchickAlso, since this is at least the second time this came up, radically shortened https://www.drupal.org/project/governance to basically just point over to https://www.drupal.org/governance which is the actual canonical place.
Comment #101
dawehnerLet me quote that line. It would be great if this would be applied not only to maintainers of certain subsystems but also to people higher up in the tree
#2057767: [policy, no patch] Revise the Druplicon logo now burns out actively contributors, which put a LOT of effort into that issue. Fairness should be applied across the community
Comment #102
jhodgdon@dawehner: That issue does not, as far as I can see, have one of the specific tags listed here that says it needs XYZ type of maintainer signoff that was missed.
Or are you referring to it being RTBC, and saying that any RTBC patch should get replied to within a week? That seems like a reasonable thing to add to the guidelines here, but I think maybe it should be a new sub-issue?
Also I see that your post here alerted webchick and Dries that action was needed and they did respond, but that doesn't change the underlying problem that it was sitting for quite a while first... but to be fair, the issue does not have one of the tags on it that says "This needs a specific type of maintainer feedback", so I don't think it falls within the guidelines here.
Comment #103
webchickRight, it's also a feature, and it's well publicized that those do not get focus/attention during the lead up to release. So that particular issue definitely is in a bit of a grey area, not an indication that participation expectations don't propagate up the tree.
Comment #104
davidhernandezOne thing I'm not clear on is how to manage the process when multiple components are involved.
I read this:
then this:
It reads like if the change is confined to one component the maintainer can reject the change (the approach, whatever,) but if it involves multiple components only the framework maintainer can do that? According to the matrix the subsystem maintainer has C/A (control/accountable) but with multiple they switch to S (suggest.) Without C, they lose the right to veto a change to their own component.
I started this thinking about a different question, though. How do we directly notify multiple component maintainers. We are suppose to use this tag, correct? Needs subsystem maintainer review (within the particular subsystem's issue queue)
But, how do we get the attention of a maintainer of another component? Pinging them individually is not a good solution, because it assumes the person working on the issue is comfortable doing so or even knows how to get their attention. Also, if that is left for the framework manager to do, it might only happen very late in the process.
Lastly, the word "subsystem" is being used interchangeably with "component," though the summary is primarily using subsystem. Is everything that isn't a topic considered a subsystem? The maintainers.txt still has a clear separation between subsystems, and modules and themes. If we refer to everything as a subsystem, the label on the issue metadata should be changed.
Comment #105
jhodgdon@davidhernandez: At this point, we've been asked to file follow-up issues for things that need to be updated (or that need further discussion) in this policy. #104 seems like a good one to discuss, but not in this issue. Thanks!
Comment #106
jibran@larowlan wrote his thoughts on core process and roadmaps https://gist.github.com/larowlan/7864a8987e2ebbc24260. Just linking here.
Comment #107
xjmDoesn't need to be assigned to Dries until the backport is RTBC. :)
Comment #108
YesCT CreditAttribution: YesCT commentedopened #2590327: Fill out Provisional membership in maintainers.txt to fill out the provisional sections.
Comment #114
quietone CreditAttribution: quietone at PreviousNext commentedI stumbled across this issue today while looking at various governance issues. This was committed back in 2015. It was reopened in #97 to "The MAINTAINERS.txt changes are needed in Drupal 7 too." That D7 version of that file has been updated many times since 2015. I think this can be closed.
If there are points that still need to be discusses, I think it will be best to open a new issue and refer to this one.