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

[Maven] Create an onboarding process for signing and releasing #778

Closed
4 tasks
peternied opened this issue Oct 21, 2021 · 7 comments
Closed
4 tasks

[Maven] Create an onboarding process for signing and releasing #778

peternied opened this issue Oct 21, 2021 · 7 comments
Labels
enhancement New Enhancement

Comments

@peternied
Copy link
Member

peternied commented Oct 21, 2021

We have several components to OpenSearch that are released outside of the distribution build process, but still need to be made available for consumption on Maven. There should have a centralized process for this as it has been done in a one-off method for the OpenSearch core and OpenSearch-java components which could be generalized.

See this reference implementation opensearch-project/opensearch-java#51 for a starting point.

Consider a centralized Jenkins job that can take artifacts and sign/publish them which is triggered by another job so the logic for branch specific builds can be isolated from the common logic.

Acceptance Criteria:

  • Documentation for what steps a component needs to take to be ready to onboard.
  • A template ticket that provides the details for OpenSearch-build to update/modify CI systems for the job.
  • Mechanism to request a release and monitor its acceptance and completion.
  • Mechanics to take artifacts, sign and release.
@peternied
Copy link
Member Author

@gaiksaya @abhinavGupta16 We've been talking about the onboarding process a lot recently, what do you think about adding to the readme a section to cover this and make a PR this so we've got something we can point teams towards?

@gaiksaya
Copy link
Member

gaiksaya commented Nov 2, 2021

Taking a stab at this.
Since this is issue is more specific to Maven, I can think of 2 ways we can proceed with the process:

  1. Build -> Sign -> Publish
    Take the commit_id from the component owner, build the artifacts using that commit_id, Sign it using our signing system and then publish it to sonatype.
    Example: Add workflow to stage maven release opensearch-java#51

  2. Grab Artifacts -> Sign -> Publish
    In this case, we won't be building anything but depending on a component owner provided storage location, Grab the artifacts from that location, Sign them and then finally publish them on sonatype.

Option 2 seems to make more sense in order to make this process generic. A single tool/process/workflow can be used for all stand-alone components to release the artifacts to maven. Whereas Option 1 would may or maynot differ for each component as each component might build differently.

Once we finalize on the right approach then we can start working on Acceptance Criteria tasks.
What do you guys think?

@peternied
Copy link
Member Author

I'd recommend going with #2 because we can expand it to support #1 at a future time

@gaiksaya gaiksaya added the untriaged Issues that have not yet been triaged label Dec 10, 2021
@abhinavGupta16
Copy link
Contributor

abhinavGupta16 commented Dec 14, 2021

Currently, signing is a painstaking process on all standalone clients. This issue can be extended to all standalone artifacts and not just Maven. Thoughts?

@peternied
Copy link
Member Author

This issue was specifically for Maven / Releasing signing and you are absolutely correct unifying all signing would be a great benefit for all OpenSearch components. Let's carve out a section of #1234 where we go into detail about signing.

@zelinh zelinh removed the untriaged Issues that have not yet been triaged label Dec 16, 2021
@zelinh
Copy link
Member

zelinh commented Dec 16, 2021

[Triage] Adding to our product backlog since we have an approach now.

@zelinh zelinh added the enhancement New Enhancement label Dec 27, 2021
@gaiksaya
Copy link
Member

We now have automated way to publish any artifact to maven along with signing.
See #2398
Onboarding process: https://github.com/opensearch-project/opensearch-build/blob/main/ONBOARDING.md#onboarding-to-universal--1-click-release-process

Closing this issue!
Thanks!

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

4 participants