Skip to content
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

[Enhancement] Generate Input Manifest to support multiple major versions #4389

Closed
peterzhuamazon opened this issue Jan 30, 2024 · 6 comments · Fixed by #4523
Closed

[Enhancement] Generate Input Manifest to support multiple major versions #4389

peterzhuamazon opened this issue Jan 30, 2024 · 6 comments · Fixed by #4523
Assignees
Labels

Comments

@peterzhuamazon
Copy link
Member

peterzhuamazon commented Jan 30, 2024

This is a follow up issue to

We have a discussion on this and will go with approach 2 + Removing the input manifest checks section as the distribution build already taken care of the issue creation:

Approach 1 : Populate all the entries of the new input manifest, from corresponding templates

  • Steps:

    • Using the existing manifest templates located here: https://github.com/opensearch-project/opensearch-build/tree/main/manifests/templates
    • Update all templates to include every component from the latest release of their respective versions.
      • 1.x uses 1.3.14 as base
      • 2.x uses 2.11.1 as base
      • 3.x uses 3.0.0 as base
    • Update src/manifests_workflow to generate a new manifest based on the corresponding template, then replace the version number of the release and git reference of each component
  • Pros:

  • Cons:

    • A manual PR is required to add a new component
    • Adding all components at once, when not all of them have bumped their versions, can lead to build failures if the --continue-on-error parameter is not set

Approach 2: Populate all the entries of the new input manifest, from latest input manifest of major version
(Will approach)

  • Steps:
    • Update Python code, to find the latest manifest path of corresponding major version. e.g. If 1.x, use 1.3.14
    • Copy that manifest, then replace the version number of the release and git reference of each component
  • Pros:
    • Even easier approach then 1, as you do not need to maintain templates
    • Even smaller code changes to both the python code and the github action workflow.
    • Just edit latest version search logic to look for the latest version within the same major version category
    • Do not need manual PR to add new components for new manifest
  • Cons:
    • Relies on the latest version of the manifest to be correct, and maintain dependencies
    • Not reliable enough
    • Adding all components at once, when not all of them have bumped their versions, can lead to build failures if the --continue-on-error parameter is not set

Approach 3: Use Approach 1 + Add Placeholder parameter

  • Steps:
    • Same as Approach 1
    • Check every component, to see if version bump is available
    • Add placeholder parameter as true to plugins that needs version bump
    • Update build_workflow to take placeholder parameter into account
components:
  - name: OpenSearch
    repository: https://github.com/opensearch-project/OpenSearch.git
    ref: 2.x
  - name: common-utils
    repository: https://github.com/opensearch-project/common-utils.git
    ref: 2.x
    placeholder: true # this is not a real component!
  • Pros:
  • Cons:
    • A manual PR is required to add a new component
    • Placeholder: true is nothing different from --continue-on-error
    • Complicated implementation compares to both Approach 1 & 2

Approach 4: Use Approach 1 or 2 + Only adding components that has bumped the version already

  • Result will be the same as now, nothing changes
@github-actions github-actions bot added the untriaged Issues that have not yet been triaged label Jan 30, 2024
@peterzhuamazon peterzhuamazon changed the title [ [Enhancement] Generate Input Manifest to support multiple major versions Jan 30, 2024
@peterzhuamazon
Copy link
Member Author

@github-actions github-actions bot added the untriaged Issues that have not yet been triaged label Mar 12, 2024
@peterzhuamazon
Copy link
Member Author

peterzhuamazon commented Mar 12, 2024

Re-open to rerun the generation with 1.3.16 using new logics in #4523.

@peterzhuamazon
Copy link
Member Author

@peterzhuamazon
Copy link
Member Author

peterzhuamazon commented Mar 13, 2024

@peterzhuamazon
Copy link
Member Author

Runs well, will close this issues for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Development

Successfully merging a pull request may close this issue.

1 participant