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

[POC] Build repo versioning framework. #2490

Open
Tracked by #2549
prudhvigodithi opened this issue Aug 22, 2022 · 5 comments
Open
Tracked by #2549

[POC] Build repo versioning framework. #2490

prudhvigodithi opened this issue Aug 22, 2022 · 5 comments
Labels
enhancement New Enhancement

Comments

@prudhvigodithi
Copy link
Member

prudhvigodithi commented Aug 22, 2022

Is your feature request related to a problem? Please describe

Coming from issue with Branching Strategy.
Come up a solution to create a framework like architecture (example like existing build-tools with OpenSearch), that can be imported during runtime to get the point in time code of jenkins shared libs and python workflows.

Describe the solution you'd like

Build repo versioning framework solution should be explored in way it can be imported during runtime and then extracted to get the right code (tools, workflows) to run the distribution builds.

Acceptance Criteria

The idea is to have a Github release (a simple tar file with all the repo code) for a build repo and re-use this release (versioning framework) during jenkins job runtime (instead of git clone just the main branch, pull the tar file, extract the file and use code).

  • The framework solution should be versioned and should be able to be imported during the build.
  • Once imported and extracted the code should be able to run the tools and workflows pertained to that version.
  • Any enhancement for the future releases should be again merged and versioned to build framework and later imported to get the new features for a release.
  • Have a new library that can fetch the version (a tar file), extract the tar and use the code part of the release.
  • Consider uploading to https://pypi.org/ (Optional).
  • Come up with a compatible matrix on which versioning framework supports release.

Describe alternatives you've considered

No response

Additional context

No response

@prudhvigodithi prudhvigodithi added enhancement New Enhancement untriaged Issues that have not yet been triaged and removed untriaged Issues that have not yet been triaged labels Aug 22, 2022
@prudhvigodithi
Copy link
Member Author

Not moving forward with the Proposed POC solution as the effort to migrate the components (code base) to new repo is already in place, hence considering the build repo as single component, version it and import it during runtime is not required.

@gaiksaya
Copy link
Member

Hi @prudhvigodithi ,

The META issue of this issue was closed. Is this issue still valid?

@prudhvigodithi
Copy link
Member Author

This issue is useful when we want to branch/version the build repo and use it for release, right now the idea is very far as we use main as source of truth for all releases.
@bbarani please add your feedback, we can close and create-new/re-open when we have to branch/version the build repo.
Thank you

@prudhvigodithi
Copy link
Member Author

The proposed approach should solve the challenge in the issue #2495.

@gaiksaya
Copy link
Member

gaiksaya commented Jan 9, 2024

We can start with publishing the tarball under ci.opensearch.org/ci/dbc/build-libraries/<version>/opensearch-build-<version>.tar.gz
Not sure how beneficial it is to publish to pypi and if it is even possible.

Another less effort approach is to mandatory checkout a branch before any execution starts. This will save us a bunch of workflows/publishing. Any jenkins workflow situated in this repo by default checks out the main branch. Before any execution, even parameter check starts we can make sure that the git ref is switched to right branch.

Let me know what you think.

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

No branches or pull requests

2 participants