jamesfredley opened a new pull request, #12: URL: https://github.com/apache/grails-micronaut/pull/12
Ports the grails-core release process so a grails-micronaut release can go through the normal ASF vote and verification steps. ## What changes - `release.yml` now follows grails-core: `pre-release` writes `projectVersion` and moves the tag, then the workflow stages JARs in Nexus, builds a signed source zip, uploads it to `dist/dev/grails/micronaut/<version>/sources`, and prints the `[VOTE]` email. Post-vote jobs (promotion instructions, announcement, merge-back via `post-release`) wait behind the `release`, `docs` and `close` environments. - New `etc/bin/verify.sh` (plus `verify-*.sh` helpers) lets voters check signatures, checksums, source contents, RAT, and rebuild the JARs/BOMs and compare against the staged checksums. - New `Release - Abort Release`, `Release - Drop Nexus Staging`, `Release - Close` and `Release - Verify Troubleshooting` workflows. Abort refuses to run once a version exists in the Nexus releases repo or SVN `release`, and waits for cancelled runs to stop before cleaning up. - `LICENSE` and `NOTICE` are trimmed to the plain Apache License and standard notice. The previous copies came from the grails-core monorepo and listed GSP schemas, Sitemesh, jQuery files, Undertow and the Roboto font, none of which are in this repository. - RAT excludes the generated `BUILD_DATE`, `CHECKSUMS` and `PUBLISHED_ARTIFACTS` files that ship inside the source zip. - `RELEASE.md` is rewritten for the new flow. ## Infra prerequisites before the first release The release cannot run until these exist for this repository. Today it only has `NEXUS_STAGE_DEPLOYER_USER`, `NEXUS_USER`, `NEXUS_PW` and `DEVELOCITY_ACCESS_KEY` (org) and the `STAGING_URL` variable, and the release workflow has never run here. - Secrets: `GRAILS_GPG_KEY`, `GPG_KEY_ID`, `STAGING_PROFILE_ID`, `NEXUS_STAGE_DEPLOYER_PW`, `SVC_DIST_GRAILS_USERNAME`, `SVC_DIST_GRAILS_PASSWORD`, `GRAILS_DEVELOCITY_ACCESS_KEY` (grails-core has all of these). - The `release`, `docs` and `close` environments declared in `.asf.yaml` are not present on GitHub (only `copilot` is). **They must exist with required reviewers before the first tag.** GitHub auto-creates an environment without protection when a job references a missing one, so the post-vote jobs would run immediately, including the merge-back PR. ## Verification - `actionlint` (with shellcheck) and `shellcheck -S warning` are clean on all workflows and scripts. - `./gradlew :rat` passes with the three manifests present at the root, matching the source zip layout. - Reproducibility of `8.0.x` at `f7e14130fa` checked in the `etc/bin/Dockerfile` image (Liberica 25.0.3): two clean builds each of the snapshot and of `-PprojectVersion=8.0.0` produced byte-identical JARs. - The workflows themselves have not been run; they need the secrets above. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
