[PROPOSAL] Incorporate a generic build system (something like Gradle).
See original GitHub issueIs your feature request related to a problem? Please describe.
Coming from https://github.com/opensearch-project/opensearch-build/issues/1375. Adding gradle to the project will help ease the automation part by working with simple gradle tasks, gradle also supports a bunch of node plugins that run node specific tasks, example https://plugins.gradle.org/plugin/com.github.node-gradle.node. Using gradle it’s also easy to incorporate any future automation tasks. One being auto increment the development iteration solution. Having gradle as build systems the automation will be consistent for OpenSearch core and OpenSearch Dashboards as well.
Describe the solution you’d like To start with gradle build system, implement the solution to increment the development iteration upon every release. Right now since OpenSearch-Dashboards do not have gradle, there is some limitation to perform the automation that will launch a workflow which will trigger gradle tasks to auto-increment the version.
Describe alternatives you’ve considered
For node, using npm or yarn or any other packages could fullfil the the version increment, but this is only limited to JSON file and some with only strict semantic version. Looking at this example PR, its beyond just a JSON file and more that just having a version
in the JSON file, the version increment is required in multiple files.
The other alternate solutions particularly for version increment problem is to create a workflow with linux parsing tools like awk, sed, but this so brittle and requires developer effort to modify the logic when ever the file changes.
Additional context
Considering for current and future automations, gradle would help ease to implement them with custom tasks and plugins, once gradle build system is part of OpenSearch-Dashboards, its associated plugins can implement the gradle build system.
Issue Analytics
- State:
- Created a year ago
- Comments:20 (14 by maintainers)
Top GitHub Comments
version
command to theplugin-helpers
in #2398; this can be used to update plugins before building them.As far as Dashboards is concerned, this should be just bumping the version in
package.json
. If we find that there are places with hardcoded version numbers, we should change them to pull in the version from thepackage.json
file.yarn version --new-version <version>
yarn version --major
yarn version --minor
yarn version --patch
Ref: https://classic.yarnpkg.com/lang/en/docs/cli/version/
Plugins will be very different since they don’t follow semantic versioning.