-
Notifications
You must be signed in to change notification settings - Fork 510
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
docs: auto release maven artifacts #2729
Conversation
Signed-off-by: tison <[email protected]>
Signed-off-by: tison <[email protected]>
e0f14d5
to
af07f19
Compare
Refer to the tickets that we can/should follow later - https://issues.apache.org/jira/browse/INFRA-23996 Policy changes - https://issues.apache.org/jira/browse/LEGAL-647 |
The review checklist needs to include checking that the release is repeatable. If the release fails and you tag a new version, why do you need to use rcN version numbers at all? If you want to use multiple release candidates then the process would be something like:
|
@markt-asf Thanks for your review! I'll prepare a new version based on the RC flavor. BTW, is the "if the release fails, then tag a new version" strategy possible following the ASF policy? I'm scheduling a quick sync with other RMs and we may need more info to make a decision from the project side. |
There are two possible approaches:
Different projects use different approaches. Tomcat uses the second approach. Commons uses the first. In either approach it is the files that are voted on that are released. In the first approach, some renaming of voted on artifacts from X.Y.Z-RCn to X.Y.Z may be required (and is allowed since it doesn't break hashes or signatures). |
Signed-off-by: tison <[email protected]>
Signed-off-by: tison <[email protected]>
@markt-asf I update the description that we first tag with "-rc" suffix and later promote to a formal tag. All automation will determinate tags pattern and do the correct action. For Maven central - always staging; close and release on passed; drop on failed. Other platform is out of ASF platform and we will work out a proper model. |
Signed-off-by: tison <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Other LGTM.
If I read this correctly the plan is tag X.Y.X as X.Y.Z-rc1, CI builds X.Y.Z, PMC votes on it (including confirming that they can build a bit-for-bit identical result - i.e. the hashes are the same), if the vote passes add a X.Y.Z tag alongside the X.Y.Z-rc1 tag and release. If the vote fails, fix the issues, update version to X.Y.Z+1 and start again. On that basis looks good to me. My only question would be to what extent have you validated that the builds are repeatable? |
@markt-asf It mainly follows Maven Reproducible Builds Guide. The pom.xml of opendal-java inherits apache's parent pom, which has a property: <project.build.outputTimestamp>2022-12-11T19:18:10Z</project.build.outputTimestamp> ... and then one can download the staging artifacts, pointing the Maven local repository and check Reproducible report. |
I've created the INFRA ticket - https://issues.apache.org/jira/browse/INFRA-24880 @markt-asf may you leave a comment there also XD. |
0fb69f9
to
cb644a0
Compare
Pending for merging... @Xuanwo Please give a review and be aware of that we should tag a |
Yes, and we need to update our release workflow. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
The proposed process is -
But we can staging the artifacts before voting since it's not released. And verify on the artifacts and "Close" & "Release" once vote passed; "Drop" once vote failed.