Proposal: Contributor ladder - aka How can someone become a maintainer?

So the word “decision” for me matters here. I come from the Apache community so I have a bias towards the meritocracy. IMHO, in OSS communities the majority voice is important and should be heard and listened to, ergo I believe my “decisions” can and should be overrule-able by the majority. I do have the ability to label issues, merge PRs, etc. (mostly because I have a long history with this and the Lucene codebase) so in that regard I’m a maintainer but I don’t feel I have any more “decision authority” in this community project than anyone else that has been actively participating in these discussions. This is why my reflex was to suggest taking a vote. This forum is a medium to voice that majority preference, and just as in any other free environment I don’t see a harm in taking a vote (maybe “poll” is the better word?) to capture the position of the majority. If the majority sides one direction and a single individual has the power to veto then I think that’s an issue with the community model that should be discussed and addressed. But I don’t think that’s happened yet? So I think this controversy is healthy and speaking up like everyone is doing will (and should) ultimately drive which direction the project goes. Call it out if that isn’t the case, and it should be addressed.

2 Likes

i do not necessarily agree 100% with the proposal of @dawnfoster (i’ll elaborate below), but i would definitely take it over the current situation where it’s basically Amazon calling the shots but also labeling it as a community-driven project. it was our understanding that this will be set up as a community-based project and would most likely end up with some established foundation (apache foundation, CNCF, etc.).
as pointed out by others it would be good to know who is currently calling the shots. @searchymcsearchface: are you the official public voice of Amazon for opensearch right now and thus only your statements are the rule? who takes decisions behind the scenes (somebody has to take decisions and you have written before that you need to check things internally)? when will this transition to a more public place (community meetings, this forum, github issues - whatever format, as long as it’s publicly visible)? and when will others be able to get involved on the same level so that this isn’t a pure amazon thing?


my opinion about the current proposal (i should have contributed my feedback here earlier, sorry):
i do not see a big differentiation between a community member and a contributor: if i post something in the forum, report a bug or request a new feature i’m also contributing. why am i only a contributor if i regularly submit PRs? what if i only submit one? i’ll be in the commit history from then on out, so i am a contributor to the project by all means.

what i’m missing in turn is the more managerial side of things (but maybe that’s also not the intention of this document and will be another - or will be discussed when the discussion comes back to whether opensearch should end up with some foundation): who decides on “big” things:

  • decisions such as: should a new plugin be part of the opensearch branding or not
  • managing the forums, CI/CD infrastructure, etc. (or deciding that some contributor (e.g. currently: Amazon) runs it for the project)
  • administrative tasks like organising community meetings
  • probably lots more which i am ignorant of but as a coder-at-heart try to ignore :slight_smile:

i will probably abstain from voting either way on such a proposal since i don’t have a strong opinion about it and am more in the “meh, whatever - i just want to get my work done” category (sorry, had too much admin overhead and too little real software development happening lately in my live :confused:).

2 Likes

I am reading in this thread that there’s a strong desire from the contributors on this thread for us at Amazon to, not only say that this is a community driven project, but to actually have non-Amazonians drive the said project.

I’m right now with @ralph on the “I just want to get my work done”, and am personally focusing on backward compatibility. I do sit inside Amazon, but AFAIK there’s nothing stopping anyone outside of Amazon from being an active contributor, and eventually a maintainer as governance gets established in a thoughtful orderly manner. If there’s something in your way of contributing, please tell me and I will work on knocking that down.

I speculate the sensitivities stem from a thorny history. This same message was heard from Elastic but actions were very different. But you are right, OpenSearch is incubating and now is a good time to influence by actively getting involved with the code base and speaking up on the forums (both symbiotic and controversial) just as is occurring here. The more contributions and influence, the stronger the case to warrant elevated access. It is a bummer @dawnfoster closed the vote/poll thread. It’s okay if folks want to vote 0. Maybe open this as a github issue instead so we can keep it around and tweak it over a bit of time?

@dblock That is the whole idea of this thread. To establish the criteria for what you said.

This thread and the vote issue on github were not about whether or not one could contribute to the project. I am happy to be among those that have contributed, and that are also participating in these forums.

Yet, I don’t let the fact that I too “just want to get my work done” interfere with my awareness that the current state is not ideal and is lacking a clear public plan to evolve. If members of the community want to help with this why would AWS appose it? Handling this Contributor ladder issue is as much a contribution as adding code to the project is. It required time, effort, experience and communicating with members of the community to pull off.

edit: spelling

3 Likes

I agree with everything you said. I also didn’t see any opposition.

Personally, I had lots of problems with the proposal (I commented on the GitHub issue) and I don’t think it’s implementable (e.g. GitHub doesn’t support approvers that aren’t allowed to merge, AFAIK), so this ladder would remain good intentions, which is net worse than no ladder because it would just pretend like we are doing it. It was very premature to vote.

2 Likes

This is definitely implementable. It’s a stripped down version of what Kubernetes uses. They use a bot called Prow to manage with more granular permissions. A lot of the CNCF projects use something very similar.

You can learn more about GitHub permissions here. If we didn’t use something like Prow, we could still give Approvers the “Triage” role, which allows them to submit reviews that indicate approval, apply labels, assign people to issues, and other tasks that would be helpful during the review process before the code gets merged by a maintainer.

1 Like

The size & age of the codebase can make it easy to overlook that OpenSearch is a very young project. It’s valuable to have free-flowing conversation where we get to talk about what we’d all want to see, even if we can’t know in advance all the practical considerations of what’s implementable on what kind of timelines.

Re the proposal itself, I have some thoughts.

  1. Include users in the community. Users of OpenSearch, even anonymous ones who it takes extra work to hear from, are so important to the project, that we should be extra mindful to do the work to seek out and consider their perspective when making community decisions.
  2. Start simple, add complexity as needed. There are a lot of tiers here, and a lot of explicit and implicit administrative procedures being defined. Is there a core idea here that matters the most, where we could all focus our efforts?
  3. For approver/maintainer/admin roles, what is their responsibility to users? If a maintainer adds a feature that users depend on, what is their ongoing responsibility to support it, update it, and ensure a good transition to a new maintainer if they need to stop working on it?
1 Like

Keeping the ball moving because I think this is a healthy dialogue:

  1. “Include users in the community.” - 100%. I agree this falls under the “Community Member” label; in other words, a general responsibility for all contributors involved to contribute where they can.
  2. “Is there a core idea here that matters the most, where we could all focus our efforts?” - I’d like to focus efforts where I thought this was intended to focus efforts: how, and where, members of the community are granted elevated github privileges to assist in labeling, reviewing, and merging contributions so we can grow community ownership.
  3. “What is [a maintainer’s] ongoing responsibility to support [a feature], update it, and ensure a good transition to a new maintainer if they need to stop working on it?” - Usually in an OSS project contributed features are given to the collective group of maintainers to continue to build and grow. There is no expectation that a single maintainer carries the ongoing responsibility to maintain the contributed feature. If this were the case, Doug Cutting would be expected to continue to maintain Lucene. Community maintenance and enhancement is the mechanism to achieve the intent of having a successful community project outgrow the “founders”. This is also why the maintainers have to be mindful of new features that are not part of an experimental sandbox; accepting and promoting experimental features to “first class” brings a collective maintenance responsibility. Again, this is very much an ASF view, so I’m curious if others feel differently for the OpenSearch model.
1 Like

I would also love to have answers to these questions.

I think there is a fundamental disconnect within this community that is causing a lot of frustration and confusion. Quite a few people, including many of the Amazon engineers, have been advocating for something like the Apache Way, which would be great, but it is fundamentally incompatible with a project like this where decisions are being made by unknown “stakeholders” within Amazon. My attempt to move this contributor ladder discussion to an Apache-style vote by the community was shut down, again because of back room discussions with these Amazon “stakeholders”. Also, the existing maintainers were appointed within Amazon, again possibly by these same “stakeholders”, rather than earning this authority.

So to summarize what I have been seeing in this community by putting it into the Apache Way framework:

  • Earned Authority: all individuals are given the opportunity to participate, but their influence is based on publicly earned merit – what they contribute to the community. Merit lies with the individual, does not expire, is not influenced by employment status or employer.
    • No evidence of this yet, just Amazon appointed maintainers, which have clearly been influenced by employment status and employer.
  • Community of Peers: individuals participate at the ASF, not organizations.
    • So far, positions and decisions seem to be driven by Amazon management.
  • Open Communications: The ASF requires all communications related to code and decision-making to be publicly accessible to ensure asynchronous collaboration… Private decisions on code, policies, or project direction are disallowed; off-list discourse and transactions must be brought on-list.
    • There are clearly discussions happening with Amazon “stakeholders” that are not being fully disclosed.
  • Consensus Decision Making: Apache Projects are overseen by a self-selected team of active volunteers who are contributing to their respective projects. Projects are auto-governing with a heavy slant towards driving consensus to maintain momentum and productivity. Whilst total consensus is not possible to establish at all times, holding a vote or other coordination may be required to help remove any blocks with binding decisions, such as when declaring a release.
    • I have not been able to figure out how decision-making happens in this project, so I’d love to see the answers to @ralph’s questions that I quoted above.
  • Responsible Oversight: The ASF governance model is based on trust and delegated oversight. Rather than detailed rules and hierarchical structures, ASF governance is principles-based, with self-governing projects providing reports directly to the Board. Apache Committers help each other by making peer-reviewed commits, employing mandatory security measures, ensuring license compliance, and protecting the Apache brand and community at-large from abuse.
    • So far, I haven’t seen much trust or delegated oversight, but I’m not sure it this one applies here, since it’s more about making reports to the ASF and protecting the brand.
  • Independence: the ASF is strictly vendor neutral. No organization is able to gain special privileges or control a project’s direction, irrespective of employing Committers to work on Apache projects or sponsorship status.
    • Again, Amazon definitely has special privileges here.
  • Community Over Code: the maxim “Community Over Code” is frequently reinforced throughout the Apache community, as the ASF asserts that a healthy community is a higher priority than good code. Strong communities can always rectify problems with their code, whereas an unhealthy community will likely struggle to maintain a codebase in a sustainable manner.
    • So far, I’ve seen more evidence of struggles than evidence of a healthy community.

My point here is not that Amazon is bad or that the Apache Way is bad, but that the Apache Way is incompatible with the current way that Amazon is involved in this project, and you can’t claim to have the Apache Way while also managing this like an internal Amazon project.

2 Likes

I know that I’m being a complete pain in the ass here, but I also wanted to say that I have been on the other side of this exact position before. I’ve been the person working at $big_company$ where the company wanted to claim that the community was open while also controlling the future of the project from behind closed doors. I’ve been on the receiving end of people like me who were poking at governance and decision making, while getting direction from management that made it impossible to be truly open. I hated it. It was hard. It sucked. I eventually left this company and went to work somewhere else.

The lesson I learned from this is that it’s better to be clear about how the project is being run and who is responsible for making decisions, even if it means that the community is less open. By being honest with the rest of the community, you build trust, and it makes it easier for everyone to work together in a productive way that allows people to focus on developing the project and releasing it, instead of spending endless hours debating things like this.

2 Likes

I’ve mostly been watching the dialog and “liking” things that stand for a multi-company representation of contributors, maintainers, and community members. This has been really hard for Amazon and is counter to the culture at the organization. I have a lot of private meetings with Amazon folks and they want to do the right thing they are just unable to let go of control of the project to date. I really hope the behavior changes and things become open and multi-company. I know I am personally and my company is behind a community, and we have dedicated engineers (some posting on this thread) to work on OpenSearch.

I’m going to keep pushing, but this is moving very slowly and I’m not seeing the actions yet to back up the words I am hearing. Once we have a 1.0 of this project if that doesn’t change I believe that we’ll need to think about an alternate path for the project. I do not like to say this out loud, but I can’t sugar coat the potential outcome.

5 Likes

Has anyone seen any sign of progress from AWS’s side on choosing a governance model? I think it would benefit both AWS and the whole community if there was some sort of roadmap laid ouf with the end goal of incubating with a foundation is stated, along with a deadline, even if that deadline is as far away as 6 months.

I have to admit that all I have been able to read between the lines so far is that OpenSearch is going to be just another Vendor-owned open source project with good intentions but no real openness. I wonder how logz.io and the other co-founders feel about this? Will there be yet another fork?

1 Like

(speaking only for myself)

This would be an anti-pattern, in my personal opinion. You’re suggesting that folks at AWS should choose a governance model. I think that governance is a living, evolving thing in cooperative efforts that last long periods of time. Governance should be tweaked by those who are governed (i.e., first the people doing the work, then all stakeholders of varying classes).

Governance should be discussed, debated, and then adopted and put into practice. I think that is happening here on the forum. It should not be discussed in private. Speaking for myself, I would rather it also not be debated on a video conference because it’s not very accessible to me due to other obligations. But, I am only one voice in this, and I’m not in a position of power where I am “deciding” anything. I wouldn’t want to assume any special privilege in being made any accommodation. I’m only here to ask questions and provide advice based on my experience with FOSS, and also my experience as a long-time Amazon employee (I know the culture and our practices quite well).

Using the services that a foundation can provide is mostly orthogonal to establishing governance, unless a foundation is strongly opinionated about how governance should be done (many are not). The decision about when (and if) incubating with a foundation is one that is made through the decision-making process that governance lays out. People sometimes go to the Apache Software Foundation incubator without knowing that graduation requires certain practiced elements of governance in accordance with ASF policy and philosophy. This doesn’t always work out for long term success.

I think that you’re reading things between the lines that are not actually there, and are based on words. What matters is actions. “Walking the walk” as we said at Red Hat.

I do not want to minimize your experiences collaborating with folks who work at Amazon so far. Your feedback is essential to our shared success. But I personally, think that you are generally mischaracterizing Amazon culture and how we operate, at least from my perspective. From the outside, there are glimpses of the foundations of Amazon culture visible, like our Leadership Principles and practices of using tenets for decision-making. An outsider might assume that the Amazon Leadership Principle of “Ownership” means tight control over a project like OpenSearch. That is not what a good owner does.

Ownership

Leaders are owners. They think long term and don’t sacrifice long-term value for short-term results. They act on behalf of the entire company, beyond just their own team. They never say “that’s not my job."

To me, Ownership is about stewardship. It’s caring for the whole, and not focusing on only the part. It’s about instilling an “ownership culture” where you are a part of what’s built. When building FOSS together, we all are Owners, and we all have to act on behalf of all stakeholders, beyond the needs of a single organization. I would tweak the Leadership Principle like this:

Ownership

Leaders are owners. They think long term and don’t sacrifice long-term value for short-term results. They act on behalf of the entire community, beyond just their own company. They never say “that’s not my job."

This is something that sets off alarm bells for me. When it comes to OpenSearch governance discussions (in particular), I believe we should be making them in the open, transparently. When it comes to partnership activities around AWS managed services (like the Amazon Elasticsearch Service), they should be done privately. I think this separation can be confusing, especially given a pending rename of the service to Amazon OpenSearch Service. But it is important to have that separation, as far as I’m concerned. Others may disagree.

In specific terms, what do you want to see changed regarding behavior?

Again, what actions do you want to see?

To me, the most important decisions happen in the day-to-day activities of the people doing the work. Writing code, submitting pull requests, getting PR reviews, planning features, determining release schedules, declaring an Alpha release, Beta release, 1.0. Are you concerned with how any of that is going?

I am not close to the day-to-day effort here, and anyone who is dedicating their time and attention has far more information than I do. What do dedicated developers have to say about how things are going with their collaborative work? Are they getting frustrated that PRs are going unanswered? That development related discussions are not happening via GitHub PRs, issues, and forum posts? I believe that direct, candid feedback provides the best information for addressing any immediate concerns.

Dirk, I agree that it is over the top. And, personally speaking, I am surprised that someone in your position (both personally and professionally) would characterize good-faith discussions about governance, which are subtle, nuanced, and generally drawn out, in this way.

What specific actions are you speaking of? I’m somewhat an outsider here, but I am personally invested in helping to make this overall effort successful. And, to me, “success” includes building an inclusive, invested, multi-stakeholder community around OpenSearch. That’s going to take time, discussion, debate, and ultimately trust.

Sadly trust seems to be in short supply in the world today.

I will just ignore the dig on me as a person…

As for what actions I am talking about? Reading through this thread (and several others) I ended up with the impression that trust is indeed in short supply. And that requests to create more transparency generally receive a “not yet, too early” response. I have been around open source projects for a while and believe that “when in doubt, be more open, more inclusive, more transparent” is generally a good rule. “How does someone become a maintainer” is not a surprising question. Nor is “how are decisions made”. Right now it seems the default answers remain “by working for AWS” and “by AWS employees”, respectively. And that’s what I am pointing out.

1 Like

@dirkhh Same thing for me with being attacked a bit in the response @msw but I can deal with that and move on.

I believe this thread and our discussion GitHub shows proposed governance, but Amazon is not bought into the idea of how this should move forward. Amazon is the owner of this project, they must buy in to a model before we can progress.

Amazon historically hasn’t been a leader in Open Source. I do not need to rehash the truths and the history of this. It’s not constructive or indicative of the future. I know change is happening, or at least I hope this is the case. I want to see OpenSearch be an example of this change. Working with a broader community as a peer and not the dictator of what will and will not happen. Working in the open, embracing community best practices with regards to collaboration to earn the trust you mention.

It’s about including more folks to help with being maintainers and leaders of community discussions in an open manner. Not having everything controlled and managed by Amazon employees only. This includes codebases, community meetings, and the way the community functions.

2 Likes

No ad hominem dig was intended, and I apologize if the feedback caused any discomfort for you. Reading characterizations of actions of AWS PEOPLE (which I currently identify as due to my employment) was uncomfortable for me. But I believe that candid, yet empathetic, feedback is how we grow to be better, and I believe that you’re working in good faith to help establish and grow the OpenSearch community as a long-tenured open source person, not just acting as a VMware executive.

Indeed, you have. And you have lived through community schisms, vendor battles, and everything else. Same as me, and many others that currently work at AWS, but identify as FOSS advocates. We do know what openness looks like, feels like, and really is in practice.

I would like to chime in here as someone at the engineering level.

  • Collaboration on code and within discussions: this has been, so far, a positive experience:slight_smile: I feel like there is a team effort and that being part of this effort is welcomed by the maintainers. Regarding discussions - They seem to be important to us all, and openness is evident in most threads.
  • Governance-related topics - this is the pain point at the moment. Something odd happens when discussions reach a call to action phase: The whole discussion is either marked as “premature”, or worse – as “invalid” by some members of the community.

I personally don’t believe there are discussions behind closed doors regarding the governance model. From my observations, this thread never required any stamp of approval from AWS. I appreciate the opinions that the vote may be premature - though, we would all appreciate a second argument stating when this thread’s conclusions would be relevant in their opinion.

The fact that these questions are not answered is the core issue here. If anyone thinks the vote is premature or invalid then it would be great to hear an agreeable alternative. If no alternative is given because the organization that controls the project currently needs to decide internally – that would be bad for the openness we are all working to achieve.

2 Likes

As an aside, I really appreciated hearing your point of view on this, Dawn. It helped me better understand where you’re coming from. So thanks :slight_smile:

1 Like