nateab opened a new pull request, #27608: URL: https://github.com/apache/flink/pull/27608
## Summary Adds 7 new shell scripts to `tools/releasing/` that automate the manual gaps in the Apache Flink release process. These are Layer 1 (gap-filling scripts) of a proposed layered release automation approach. - **`preflight_check.sh`** — Validates GPG keys, Maven/Nexus config, Java version, CLI tools, and PyPI credentials before starting a release - **`jira_ops.sh`** — Wraps JIRA REST API for blockers, release notes, version create/release - **`nexus_ops.sh`** — Wraps Apache Nexus 2 REST API for staging repo list/close/release/drop (eliminates web UI dependency) - **`dist_ops.sh`** — Wraps SVN operations on dist.apache.org for staging, promoting, and cleaning up release artifacts - **`generate_email.sh`** — Generates pre-filled email templates for vote, vote-result, and announcement emails - **`pyflink_ops.sh`** — Automates GitHub Actions trigger/wait/download for PyFlink wheel builds - **`update_all_versions.sh`** — Handles FlinkVersion enum updates and shows cross-repo tasks for major releases All scripts follow existing `tools/releasing/` conventions (ASF headers, `set -o errexit/nounset/pipefail`, `tools/` dir check, backtick substitution). Each supports `DRY_RUN=true` for write operations and has built-in `help` commands. No new dependencies beyond standard Unix tools + `curl` + `jq`. Design doc and implementation plan included in `docs/plans/`. ## Test plan - [ ] Run `releasing/preflight_check.sh` — verify pass/fail/warn report - [ ] Run `releasing/jira_ops.sh help` — verify usage without credentials - [ ] Run `releasing/nexus_ops.sh help` — verify usage without credentials - [ ] Run `releasing/dist_ops.sh help` — verify usage without env vars - [ ] Run `releasing/generate_email.sh vote 1.20.0 1` — verify template output - [ ] Run `releasing/generate_email.sh announce 1.20.0` — verify "first release" wording - [ ] Run `releasing/generate_email.sh announce 1.20.1` — verify "bugfix release" wording - [ ] Run `releasing/pyflink_ops.sh help` — verify usage - [ ] Run `releasing/update_all_versions.sh help` — verify usage without env vars - [ ] Run `RELEASE_VERSION=1.20.0 releasing/update_all_versions.sh show-cross-repo-tasks` — verify checklist - [ ] Run `DRY_RUN=true` on write commands to verify no real API calls are made - [ ] Verify credentials are not leaked via xtrace output -- 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]
