Skip to content

Staging for version increment automation #1930

Closed
@prudhvigodithi

Description

@prudhvigodithi

Description

Gradle project: Staging to add gradle tasks (setVersion and versionIncrement) that support version increment automation for supported versions and add/update gradle.properties file to the project.

Related META issue

Part of: opensearch-project/opensearch-build#1375
From solution: opensearch-project/opensearch-build#1375 (comment)

Current Behavior

Version Increment is a process that needs to be done for all plugin repos during and after a specific release.
This is time consuming and includes lot of manual human effort (that can lead to multiple errors) to go through each repo, check for previous merged PR and then create a version increment PR, allow plugin team to review, follow-up, update the PR with suggestions and then finally get merged for CI to run.

Expected Behavior

After every release expect to raise an [AUTO] PR that increments the version.
Sample automation version increment PR's: job-scheduler, common-utils, anomaly-detection, k-NN

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.

Implementation Changes:

Add gradle versionIncrement and setVersion tasks to the project.

setVersion : This task will update the gradle property opensearch.version and updates the value in gradle.properties file.

gradle.properties : Contains gradle project properties that can be used by project during runtime, for version increment uses opensearch.version.

versionIncrement : This task is configurable and depends on the plugin requirement to modify any files where version is present and that needs to incremented, this task uses ant.replaceregexp to parse the required files that are added in include() section of the task.

Sample Implementation PR's: job-scheduler, common-utils, anomaly-detection, k-NN
More examples: opensearch-project/opensearch-build#1375 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions