-
Notifications
You must be signed in to change notification settings - Fork 275
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
OpenSearch: Automate increment to next development iteration #1375
Comments
@dblock what do you think about updating the component release template with these as steps? Then we could create a campaign to automation this step in each repository, which a base case that hits 80% of them with a copypasta workflow |
@dblock is there any further blocker for other component teams to set this up themselves? Should this be added as a campaign for 2.0.0? |
It didn't work for common-utils: https://github.com/opensearch-project/common-utils/actions/runs/2000270385, needs to be debugged, opensearch-project/common-utils#138. It didn't work for OpenSearch, https://github.com/opensearch-project/OpenSearch/actions/runs/2000274118, the PR GHA needed to be added to permissions (I did that). It didn't quite work for job-scheduler, opensearch-project/job-scheduler#148, DCO was one problem. Before adding more we need to fix these, but I didn't get to it. If someone wants to pick these up, go for it! |
@dblock I added the secrets for |
We also need this in https://github.com/opensearch-project/OpenSearch/blob/main/.github/workflows/version.yml#L56, and possibly in other places? Would you mind adding it too please? |
Yup added it in OpenSearch version.yml PR opensearch-project/OpenSearch#2572. I will see if there are any other pull request workflows that need the signoff option. |
Proposed Solution:Automate this version increment process across all plugin components, that increment’s the version, modifies the required files and raise a PR that awaits for plugin team approval, this way an engineer need not spend hours of time to increment the version for all plugin components. Solution Details:The following details uses sql component, version increment process, to demonstrate the solution workflow.
|
Hey please add your thoughts for the above added solution. |
I like it! Make it work. |
For non-Gradle projects: Since Gradle support seamless integration of tasks for build automation, it’s preferable to add a gradle project to existing repos, for this integration a repo needs build.gradle, and gradle installation files. Then the implementation flow would be same as specified above to add setVersion and versionIncrement task. The following details uses alerting-dashboards-plugin component, version increment process, to demonstrate the solution workflow. Sample
Existing version:
Executing the gradle task: Version Increment:
The alternative approach is to use npm-version, but for each repo the version is present in more than one file, this requires additional linux parsing logic apart from regular npm commands. thoughts @dblock @bbarani @peterzhuamazon ? |
Since most operations are incrementVersion {
fileset(dir: workingDir) {
include(name: ".github/workflows/cypress-workflow.yml")
include(name: 'build.gradle')
}
} |
This META can be closed, the version increment for OpenSearch plugins is now automated with a single click using the GH workflow (Sample Run: https://github.com/opensearch-project/opensearch-build/actions/runs/2967596360) The only pending issue open from this META are: |
But so it's not automated until it is, let's reopen it :) |
The automation to add the branch entry to the version increment workflow is now done using the existing manifest workflow |
The version increment workflow, will be now triggered daily with cron expression |
Hey @dblock the automation is now in place, the branch entry is added via the manifest workflow, sample PR: https://github.com/opensearch-project/opensearch-build/pull/2628/files, and the workflow is now triggered using |
Thanks, closing this issue, please feel free to re-open if required. |
@prudhvigodithi With Also handle BWC tests as part of version increment automation #2373 this process isn't fully automated. Are we tracking that issue separately? |
Hey @peternied as mentioned, the version increment process is generic and is not related to any BWC tests, each plugin right now follow their own way to add the BWC test version change and also the version change files are not common, this has to be handled from plugin team and this change is specific with a major version release. |
@peternied this can be extended within the plugin own |
Is your feature request related to a problem? Please describe
We begin incrementing versions after we decide that we want a release. This takes a day and makes it that nightly distribution builds do not include full bundle until T-14 days to release (#1140). Instead, prepare the project to make the next release after the previous release is done, so that we can save that day and have release candidates always available for the next development iteration.
After automatic tagging has happened, increment the version for the next development iteration. For example:
x 15 plugins
Describe the solution you'd like
Every project should have a workflow that notices new tags, and increments versions accordingly and makes a PR.
Acceptance Criteria
POC: Concept/Solution to Automate the version increment to next development iteration. #2215
Implement Automated workflow that will increment the version for plugin and take care of all other code changes #2223
Pr: Workflow for version increment automation. #2291
Additional Acceptance Criteria
Follow Core Branching Strategy (Ensure 1.x and 2.x branches).
opensearch-project/opensearch-plugins#142
Campaign Issues:
OpenSearch
Solution Proposed
Gradle project: Staging to add gradle tasks (
setVersion
andversionIncrement
) that support version increment automation for supported versions and add/updategradle.properties
file to the project.Pr's: Add Version increment automation task opensearch-plugin-template-java#32
Pr's:
Staging for version increment automation alerting#489
Staging for version increment automation anomaly-detection#624
Pr's:
1.x: Staging for version increment automation anomaly-detection#607
1.3: Staging for version increment automation anomaly-detection#603
main: Staging for version increment automation anomaly-detection#608
Pr's: Staging for version increment automation asynchronous-search#157
1.x: Staging for version increment automation asynchronous-search#161
Pr's:
1.3: Staging for version increment automation. common-utils#192
1.x: Staging for version increment automation common-utils#199
main: Staging for version increment automation common-utils#200
Pr's: Staging for version increment automation reporting#391
Pr's: Staging for version increment automation index-management#409
Pr's:
1.x: Staging for version increment automation. job-scheduler#203
1.3: Staging for version increment automation. job-scheduler#196
Main: Staging for version increment automation job-scheduler#204
Pr's:
1.3: Staging for version increment automation k-NN#432
1.x: Staging for version increment automation k-NN#436
main: Staging for version increment automation k-NN#437
Staging for version increment automation k-NN#442
Pr's: Staging for version increment automation k-NN#432
Pr's: Staging for version increment automation notifications#476
Pr's:
1.x: Staging Version increment automation performance-analyzer#239
main: Staging for version increment automation performance-analyzer#238
Pr's:
main: Staging for version increment automation performance-analyzer-rca#197
2.1: Version increment automation: update task name performance-analyzer-rca#213
2.2: Version increment automation: update task name performance-analyzer-rca#214
Pr's:
main: Staging for version increment automation security#1932
1.x: Staging for version increment automation security#1933
Pr's: Staging for version increment automation sql#684
Pr's: Staging for version increment automation observability#848
Pr's:
main: Staging for version increment automation cross-cluster-replication#449
backport 2.1: [backport 2.1]Staging for version increment automation cross-cluster-replication#465
1.3: Staging for version increment automation cross-cluster-replication#466
Pr's:
1.x: Staging for version increment automation ml-commons#363
main: Staging for version increment automation ml-commons#362
1.3: [backport 1.3]Staging for version increment automation ml-commons#375
Pr's: Staging for version increment automation geospatial#91
OpenSearch Dashboards
Proposal Pending
Remove the dependency with hardcoded zips for 1.x versions:
Example with hardcoded zips: Version Increment to 1.3.3 OpenSearch release index-management#374
Example with hardcoded zips: Version Increment to 1.3.3 OpenSearch release reporting#366
Example with hardcoded zips: Incremented version to 1.3.2. sql#593
Describe alternatives you've considered
No response
Additional context
It takes a day for 1 person to increment the version everywhere, documented in opensearch-project/opensearch-plugins#119. Issues that would reduce that amount of work aside of what's proposed here.
The text was updated successfully, but these errors were encountered: