-
Notifications
You must be signed in to change notification settings - Fork 70
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[RFC] Improving public engagement for OpenSearch release process #167
Comments
Thanks @bbarani for this document! Having everyone aligned on a release process will be extremely helpful. A couple of questions/requests:
|
Thanks for documenting all of this the clarity is a great improvement - could you transform this issue's description into a pull request on the |
+1.. let's get this into an actual reviewable PR so we can comment inline. Can we add some concrete language to some of these steps so folks know what goes into each one? For example:
Let's start with that here and then have one single FOOLPROOF page an RM can follow even if they've never come close to the release process. |
Hey @acarbonetto, it should be possible to onboard plugins earlier provided the version increment for core and common-utils is completed and added to the input manifest, this depends on how quick/early an RM and the plugin team coordinate to achieve this. We can also think of an automation where the plugins that does not have dependencies are force incremented along with core (should be ok since we are releasing all the plugins along with core as a single bundle, rather than an isolated release for each plugin). |
Even though this is not required for patch release, +1 for the automation where the component release issues are created along with the main release issue part of the build repo. |
@bbarani thanks a lot for the proposal, I think this is a HUGE step in right direction, I would like to bring a few notes / questions:
|
Thanks for your feedback @reta . Please find my comments inline.
Currently only specific group of folks under AWS have access to execute, modify builds but we will be expanding the access to all (including external members) release managers who are interested in participating in OpenSearch releases as well.
We currently don't include plugins outside of OpenSearch GitHub organization in to distribution bundle. We don't have a process defined to include plugins outside of https://github.com/opensearch-project/ with clear on-boarding process, security review process along with SLA, roles and responsibilities yet. @reta We welcome your inputs to improve the process there. Feel free to provide any feedback, inputs to draft a process to close this gap. Having said that, the release manifests dictates the plugin list in a release bundle. |
Sure, we will add the summary, motivation along with roles and responsibilities to this RELEASE_PROCESS_OPENSEARCH.md soon. CC: @prudhvigodithi |
Yes, the plan is to request for release managers for upcoming release immediately after the current release as part of post release activities. We will update the post release activities section in RELEASE_PROCESS_OPENSEARCH.md with these details.
Release manager might not have access to the OpenSearch build repo to self-assign the GitHub release issue but members of @opensearch-project/engineering-effectiveness will help with assigning them to release issue.
@prudhvigodithi is looking in to automating this process so that the child issues are automatically created on all plugin repos when parent release issue is created.
|
I have added a new section Upcoming Release Preparation to handle this. |
@bbarani should this be part of the https://github.com/opensearch-project/.github/blob/main/RELEASING.md file as the file |
I think it makes sense to combine both motivation and summary in to one section and also add roles / responsibilities to the same doc. |
This process is automated now, along with the global release issue created in the build repo (Example for 3.0.0), the individual component (plugin repos) release issues are also auto-created and links back to the global release issue part of the build repo (Example for 3.0.0 component release issues). |
Hello everyone, |
Summary:
OpenSearch is a fast-growing community-contributed project and currently has around 600+ contributors who actively participate in the growth of the project day-to-day. OpenSearch has been piloting the process of hosting public meetings for some time, where public members can join the meetings and actively participate synchronously. As an open-source project, we aim to establish shared ownership of OpenSearch with the public through an open governance model. We're already publishing OpenSearch release updates via GitHub and Slack. Our next goal is to adopt an open release model, allowing public participation in OpenSearch releases. This proposal seeks feedback on our current release process, roles, and mechanisms to improve public involvement.Motivation:
OpenSearch currently release major, minor and patch versions on a regular cadence as listed on this release page. The infrastructure to build, test and release artifacts are available at https://build.ci.opensearch.org/. A public release GitHub issue using this release template is created in the opensearch-build repo along with individual component GitHub issues created using this template for all plugins participating in the release. A primary release manager along with secondary release managers corresponding to participating repos are assigned for a release. The primary release manager goes over the individual release issues periodically across the repos and engage the secondary release managers to take appropriate action as needed throughout the release process. A release call is scheduled with necessary stakeholders to complete the release process.The status of a release is currently tracked in public GitHub issue, but we believe there is additional opportunity for public collaboration during releases. We strongly believe that involving anyone who wants to be involved in the public is an important step an important step to improve the trust and transparency within the public along with getting additional support, feedback from external contributors for closing the gaps, and improvements to the overall release process.
This scope of this RFC doesn’t include standalone OpenSearch client releases that has been already fully automated and self-serviceable by anyone as described in this GitHub issue.
It would be helpful to go over the current roles and responsibilities before diving deep in to the release process.
Roles and responsibilities:
The below roles and responsibilities are currently involved in OpenSearch release cycle process, we want to collaborate with the public to improve it further by adding, modifying roles and responsibilities (as needed).Collaborate with technical and leadership team to finalize a release schedule and plan for OpenSearch
Responsible for managing the release lifecycle process that includes,
* Scheduling the release
* Co-ordinating between teams
* Broadcasting release candidate information to gather votes
* Execute automated tests
* Signing the artifacts
* Deploying release artifacts as per the schedule
* Completing post release activities
Maintain proper coordination between multiple participating teams to update the project related information in publicly accessible platforms
Work closely with release manager to identify, remediate possible gaps for a release corresponding to a specific feature on this repo
Ensure sanity tests are executed and documented by assigned release manager
Help remediate issues found during testing
Surface any gaps to release manager in timely manner
Provide votes for finalizing release candidate
Surface any issues, gaps to release manager in timely manner
Help remediate issues found during testing
Provide votes for finalizing release candidate
High-level technical direction of the OpenSearch product
The roadmap of the OpenSearch project and releases
Creating appropriate Working Groups ( User Feedback, Documentation etc..) to gather the necessary public feedback before making decisions
Technical resources (e.g., code repositories, servers)
Maintaining maintainers, committers list
Call for closing vote / vote to table any issue
Go / No-Go vote on product releases
OpenSearch / OpenSearch dashboards Release:
At a high level. OpenSearch release process involves collaboration with multiple maintainers from OpenSearch, OpenSearch dashboards, website, documentation GitHub repositories that are participating in a release. OpenSearch follows de-centralized development model where the development for core engine, plugins happens across different geographical location. The distribution build (OpenSearch, OpenSearch Dashboards) integrates the code across all these repositories for all supported versions via automated CI / CD process to generate, test and publish nightly builds.These are the pre-requisites that needs to be closed out before the start of release cycle process.
Pre-requisites:
Current release cycle process:
Note: The PR that describes the end to end OpenSearch release process is in review. The information links added to each of the following steps will be part of the opensearch-build GitHub repository once the PR is merged..x
branches.Note: We have put out a proposal to move away from release train model with defined release date to release window model with a defined release candidate (RC) creation date. We will iterate on “Release candidate” creation along with “Release testing” phase until we finalize the release candidate. Release day will be 2 days after then final RC creation date. Leadership team can also recommend to skip a release version if we are not able to finalize the release candidate within a reasonable time period to avoid cascading effect to releases.
Frequently asked questions (FAQ):
How are the release managers finalized for a release?
Release managers are finalized based on volunteer model. A request for release managers for a specific release will be broadcasted in GitHub as we well as OpenSearch Slack channel and the release manager will be selected based on the first come first serve basis.Note: Release managers has to be a maintainers of Github repositories under OpenSearch project.
Where can I see the finalized features for a specific release ?
You can visit OpenSearch public roadmap to get the comprehensive list of features scheduled to be released in specific OpenSearch version.Who are the members of the leadership team?
The leadership team is currently seeded by the below list of AWS employees.This is the current list but feel free to provide your feedback to add additional members to the team via OpenSearch public slack channel
Does OpenSearch and OpenSearch dashboards have separate release timeline ?
Currently OpenSearch and OpenSearch dashboards are released at same time (with same version number) as part of OpenSearch release.How can I participate in release process?
If you are not part of the listed roles, you can still actively participate in release process by sanity testing the release candidate along with providing your feedback, votes for finalizing the release candidate.How can I become a maintainer of a repository?
Any new members who are interested in becoming maintainers on specific Github repository need to be nominated by the current maintainers through voting process as described here.Next steps:
All the steps listed above in release cycle process are already accessible by the public and the release steps, process are documented in public Github issue. One of the primary focus of this RFC is to surface the release process, roles and responsibilities along with detailed release guide to improve public engagement in OpenSearch release process.We would like your feedback on,
- Improving the public engagement for OpenSearch release process
- We would like a broader participation in OpenSearch release cycle process. We have updated the release template, SOP and collaboration channels to make the OpenSearch release process more accessible by the public. We need your feedback on any gaps, process technical limitations that would help improve the engagement.
- Formulating process, mechanism to add new roles to release process
- Please provide us feedback to draft a proposal to add, modify roles to OpenSearch release process
- Improving, simplifying the steps involved in current release cycle process
- Help us improve the OpenSearch release process by providing your inputs. We welcome both technical and process inputs.
- Improving the quality of OpenSearch artifacts
- Provide us inputs on improving the quality bar of every OpenSearch releases.
- General comments around the current process including anything that's confusing
- Feel free to provide any other ad-hoc inputs related to release process, public engagement, roles and responsibilities.
We would like get your feedback and suggestions on this RFC to make the release process as seamless as possible. We look forward to collaborating with the public.relates #166
The text was updated successfully, but these errors were encountered: