tiagobento commented on code in PR #7123: URL: https://github.com/apache/incubator-kie/pull/7123#discussion_r4360257221
########## docs/RELEASING.md: ########## @@ -0,0 +1,106 @@ +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> + +# Apache KIE Release Guide + +The canonical release documentation and single source of truth for the Apache KIE release procedure is maintained on the Apache KIE community website: + +👉 **[Apache KIE Release Procedure](https://kie.apache.org/community/devs/release-procedure)** (hosted in the [`apache/incubator-kie-website`](https://github.com/apache/incubator-kie-website) repository under `docs/community/devs/release-procedure.md`). + +--- + +## Who Runs These Scripts? + +The release scripts in this repository are intended for **Apache KIE Release Managers** — PMC members or designated committers who have: + +- Write access to the `apache/incubator-kie` repository (push tags to `[email protected]:apache/incubator-kie.git`). +- An ASF Nexus account with `kie` staging privileges (username/password in Maven `settings.xml`). +- A GPG signing key registered with the [Apache KEYS file](https://downloads.apache.org/kie/KEYS). + +In normal operation the scripts are invoked by the **Jenkins CI pipeline** (`.ci/jenkins/project/Jenkinsfile.103xplus.release`) using managed credentials. Release managers may also run them locally for testing or emergency releases. + +--- + +## Credentials Required + +| Credential | Where it lives | Used by | +|---|---|---| +| Maven `settings.xml` with Nexus server entry (`apache.releases.https`) | Jenkins → `MAVEN_SETTINGS_CONFIG_FILE_ID`, or `~/.m2/settings.xml` locally | `04-deploy-to-staging.sh` via `MAVEN_SETTINGS` env var | +| GPG passphrase | Jenkins → `GPG_PASSPHRASE_CREDS_ID` (masked), or GPG agent locally | `04-deploy-to-staging.sh` via `MAVEN_GPG_PASSPHRASE` env var (NOT a CLI arg) | +| Git push credentials (SSH key or token) | Jenkins → `GIT_AUTHOR_PUSH_CREDS_ID`, or `~/.ssh/id_rsa` locally | `02-rc-commit.sh` (--push), `05-tag-release.sh` (--push) | Review Comment: This is for the website too. ########## docs/RELEASING.md: ########## @@ -0,0 +1,106 @@ +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> + +# Apache KIE Release Guide + +The canonical release documentation and single source of truth for the Apache KIE release procedure is maintained on the Apache KIE community website: + +👉 **[Apache KIE Release Procedure](https://kie.apache.org/community/devs/release-procedure)** (hosted in the [`apache/incubator-kie-website`](https://github.com/apache/incubator-kie-website) repository under `docs/community/devs/release-procedure.md`). + +--- + +## Who Runs These Scripts? + +The release scripts in this repository are intended for **Apache KIE Release Managers** — PMC members or designated committers who have: + +- Write access to the `apache/incubator-kie` repository (push tags to `[email protected]:apache/incubator-kie.git`). +- An ASF Nexus account with `kie` staging privileges (username/password in Maven `settings.xml`). +- A GPG signing key registered with the [Apache KEYS file](https://downloads.apache.org/kie/KEYS). + +In normal operation the scripts are invoked by the **Jenkins CI pipeline** (`.ci/jenkins/project/Jenkinsfile.103xplus.release`) using managed credentials. Release managers may also run them locally for testing or emergency releases. Review Comment: This is information for the release procedure page in the website. ########## docs/RELEASING.md: ########## @@ -0,0 +1,106 @@ +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> + +# Apache KIE Release Guide + +The canonical release documentation and single source of truth for the Apache KIE release procedure is maintained on the Apache KIE community website: + +👉 **[Apache KIE Release Procedure](https://kie.apache.org/community/devs/release-procedure)** (hosted in the [`apache/incubator-kie-website`](https://github.com/apache/incubator-kie-website) repository under `docs/community/devs/release-procedure.md`). + +--- + +## Who Runs These Scripts? + +The release scripts in this repository are intended for **Apache KIE Release Managers** — PMC members or designated committers who have: + +- Write access to the `apache/incubator-kie` repository (push tags to `[email protected]:apache/incubator-kie.git`). +- An ASF Nexus account with `kie` staging privileges (username/password in Maven `settings.xml`). +- A GPG signing key registered with the [Apache KEYS file](https://downloads.apache.org/kie/KEYS). + +In normal operation the scripts are invoked by the **Jenkins CI pipeline** (`.ci/jenkins/project/Jenkinsfile.103xplus.release`) using managed credentials. Release managers may also run them locally for testing or emergency releases. + +--- + +## Credentials Required + +| Credential | Where it lives | Used by | +|---|---|---| +| Maven `settings.xml` with Nexus server entry (`apache.releases.https`) | Jenkins → `MAVEN_SETTINGS_CONFIG_FILE_ID`, or `~/.m2/settings.xml` locally | `04-deploy-to-staging.sh` via `MAVEN_SETTINGS` env var | +| GPG passphrase | Jenkins → `GPG_PASSPHRASE_CREDS_ID` (masked), or GPG agent locally | `04-deploy-to-staging.sh` via `MAVEN_GPG_PASSPHRASE` env var (NOT a CLI arg) | +| Git push credentials (SSH key or token) | Jenkins → `GIT_AUTHOR_PUSH_CREDS_ID`, or `~/.ssh/id_rsa` locally | `02-rc-commit.sh` (--push), `05-tag-release.sh` (--push) | + +--- + +## What the Scripts Produce + +Each script is **isolated to this single consolidated repository** — there is no multi-repo coordination needed since Drools, OptaPlanner, Kogito Runtimes, and Kogito Apps all live here. + +| Step | Output | +|---|---| +| `01-update-version.sh` | POM versions bumped in the working tree (not committed) | +| `02-rc-commit.sh` | A local RC git tag (e.g. `10.3.0-rc1`) pointing to the R commit; optionally pushed to `origin` | +| `03-build.sh` | Release JARs installed to `~/.m2/repository` | +| `04-deploy-to-staging.sh` | JARs signed (GPG) and uploaded to the Apache Nexus staging repository | +| `05-tag-release.sh` | Final release git tag (e.g. `10.3.0`) pointing to the same commit as the winning RC | + +--- + +## Repository-Specific Release Tooling + +This repository (`incubator-kie`) provides local-first release scripts located in [`script/release/`](../script/release/): + +- **[`script/release/README.md`](../script/release/README.md)**: Detailed documentation of all scripts, lifecycle definitions, and workflows. +- **`01-update-version.sh`**: (Automation A / D) Updates reactor POM versions across all modules. +- **`02-rc-commit.sh`**: (Automation D.1) Generates the temporary release branch, updates version to release version, tags the RC commit, and deletes the temporary branch. +- **`03-build.sh`**: (Automation D.2) Builds the full Maven reactor and installs artifacts to local `~/.m2/repository`. +- **`04-deploy-to-staging.sh`**: (Automation D.3) Deploys signed artifacts to the Apache Nexus staging repository. +- **`05-tag-release.sh`**: (Automation F) Promotes an approved RC tag to the final release tag after a successful VOTE. +- **`release-all.sh`**: Master orchestration script executing the RC workflow (`02` → `03` → `04`) in sequence. + +### Common Commands + +```bash +# 1. Update version across reactor modules (Automation A or D) +./script/release/01-update-version.sh 10.3.999-SNAPSHOT # stream snapshot +./script/release/01-update-version.sh 999-SNAPSHOT # main stream (image tag → "main") +./script/release/01-update-version.sh 10.3.0 # exact release version + +# 2. Master RC workflow (accepts positional version or --version flag) +./script/release/release-all.sh 10.3.0 --rc --skip-tests +# Full RC with upload + tag push (requires MAVEN_SETTINGS and MAVEN_GPG_PASSPHRASE env vars): +MAVEN_SETTINGS=~/.m2/settings.xml \ + ./script/release/release-all.sh --version 10.3.0 --tag 10.3.0-rc1 --skip-tests --deploy --push-tag + +# 3. Promote approved RC tag to final release tag (Automation F) +./script/release/05-tag-release.sh --rc-tag 10.3.0-rc1 --push +``` + +### Dry-Run Safety + +All scripts that modify git state or push to remote accept `--dry-run`. Safe to run without credentials: + +```bash +./script/release/release-all.sh 10.3.0 --tag 10.3.0-rc1 --deploy --push-tag --dry-run +``` + +For Jenkins pipeline jobs, see: +- `.ci/jenkins/Jenkinsfile.103xplus.deploy` — stream-snapshot version bump and artifact deployment +- `.ci/jenkins/Jenkinsfile.103xplus.promote` — PR merge, GitHub release creation, and final tag promotion +- `.ci/jenkins/project/Jenkinsfile.103xplus.release` — top-level release orchestrator (invokes `release-all.sh`) Review Comment: This is for the website. ########## .ci/jenkins/project/Jenkinsfile.103xplus.release: ########## Review Comment: Why make a `project` folder for this job in particular? ########## docs/RELEASING.md: ########## @@ -0,0 +1,106 @@ +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> + +# Apache KIE Release Guide + +The canonical release documentation and single source of truth for the Apache KIE release procedure is maintained on the Apache KIE community website: + +👉 **[Apache KIE Release Procedure](https://kie.apache.org/community/devs/release-procedure)** (hosted in the [`apache/incubator-kie-website`](https://github.com/apache/incubator-kie-website) repository under `docs/community/devs/release-procedure.md`). + +--- + +## Who Runs These Scripts? + +The release scripts in this repository are intended for **Apache KIE Release Managers** — PMC members or designated committers who have: + +- Write access to the `apache/incubator-kie` repository (push tags to `[email protected]:apache/incubator-kie.git`). +- An ASF Nexus account with `kie` staging privileges (username/password in Maven `settings.xml`). +- A GPG signing key registered with the [Apache KEYS file](https://downloads.apache.org/kie/KEYS). + +In normal operation the scripts are invoked by the **Jenkins CI pipeline** (`.ci/jenkins/project/Jenkinsfile.103xplus.release`) using managed credentials. Release managers may also run them locally for testing or emergency releases. + +--- + +## Credentials Required + +| Credential | Where it lives | Used by | +|---|---|---| +| Maven `settings.xml` with Nexus server entry (`apache.releases.https`) | Jenkins → `MAVEN_SETTINGS_CONFIG_FILE_ID`, or `~/.m2/settings.xml` locally | `04-deploy-to-staging.sh` via `MAVEN_SETTINGS` env var | +| GPG passphrase | Jenkins → `GPG_PASSPHRASE_CREDS_ID` (masked), or GPG agent locally | `04-deploy-to-staging.sh` via `MAVEN_GPG_PASSPHRASE` env var (NOT a CLI arg) | +| Git push credentials (SSH key or token) | Jenkins → `GIT_AUTHOR_PUSH_CREDS_ID`, or `~/.ssh/id_rsa` locally | `02-rc-commit.sh` (--push), `05-tag-release.sh` (--push) | + +--- + +## What the Scripts Produce + +Each script is **isolated to this single consolidated repository** — there is no multi-repo coordination needed since Drools, OptaPlanner, Kogito Runtimes, and Kogito Apps all live here. + +| Step | Output | +|---|---| +| `01-update-version.sh` | POM versions bumped in the working tree (not committed) | +| `02-rc-commit.sh` | A local RC git tag (e.g. `10.3.0-rc1`) pointing to the R commit; optionally pushed to `origin` | +| `03-build.sh` | Release JARs installed to `~/.m2/repository` | +| `04-deploy-to-staging.sh` | JARs signed (GPG) and uploaded to the Apache Nexus staging repository | +| `05-tag-release.sh` | Final release git tag (e.g. `10.3.0`) pointing to the same commit as the winning RC | + +--- + +## Repository-Specific Release Tooling + +This repository (`incubator-kie`) provides local-first release scripts located in [`script/release/`](../script/release/): + +- **[`script/release/README.md`](../script/release/README.md)**: Detailed documentation of all scripts, lifecycle definitions, and workflows. +- **`01-update-version.sh`**: (Automation A / D) Updates reactor POM versions across all modules. +- **`02-rc-commit.sh`**: (Automation D.1) Generates the temporary release branch, updates version to release version, tags the RC commit, and deletes the temporary branch. +- **`03-build.sh`**: (Automation D.2) Builds the full Maven reactor and installs artifacts to local `~/.m2/repository`. +- **`04-deploy-to-staging.sh`**: (Automation D.3) Deploys signed artifacts to the Apache Nexus staging repository. +- **`05-tag-release.sh`**: (Automation F) Promotes an approved RC tag to the final release tag after a successful VOTE. +- **`release-all.sh`**: Master orchestration script executing the RC workflow (`02` → `03` → `04`) in sequence. Review Comment: This is probably for `script/release/README.md`. ########## docs/RELEASING.md: ########## @@ -0,0 +1,106 @@ +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> + +# Apache KIE Release Guide + +The canonical release documentation and single source of truth for the Apache KIE release procedure is maintained on the Apache KIE community website: + +👉 **[Apache KIE Release Procedure](https://kie.apache.org/community/devs/release-procedure)** (hosted in the [`apache/incubator-kie-website`](https://github.com/apache/incubator-kie-website) repository under `docs/community/devs/release-procedure.md`). + +--- + +## Who Runs These Scripts? + +The release scripts in this repository are intended for **Apache KIE Release Managers** — PMC members or designated committers who have: + +- Write access to the `apache/incubator-kie` repository (push tags to `[email protected]:apache/incubator-kie.git`). +- An ASF Nexus account with `kie` staging privileges (username/password in Maven `settings.xml`). +- A GPG signing key registered with the [Apache KEYS file](https://downloads.apache.org/kie/KEYS). + +In normal operation the scripts are invoked by the **Jenkins CI pipeline** (`.ci/jenkins/project/Jenkinsfile.103xplus.release`) using managed credentials. Release managers may also run them locally for testing or emergency releases. + +--- + +## Credentials Required + +| Credential | Where it lives | Used by | +|---|---|---| +| Maven `settings.xml` with Nexus server entry (`apache.releases.https`) | Jenkins → `MAVEN_SETTINGS_CONFIG_FILE_ID`, or `~/.m2/settings.xml` locally | `04-deploy-to-staging.sh` via `MAVEN_SETTINGS` env var | +| GPG passphrase | Jenkins → `GPG_PASSPHRASE_CREDS_ID` (masked), or GPG agent locally | `04-deploy-to-staging.sh` via `MAVEN_GPG_PASSPHRASE` env var (NOT a CLI arg) | +| Git push credentials (SSH key or token) | Jenkins → `GIT_AUTHOR_PUSH_CREDS_ID`, or `~/.ssh/id_rsa` locally | `02-rc-commit.sh` (--push), `05-tag-release.sh` (--push) | + +--- + +## What the Scripts Produce + +Each script is **isolated to this single consolidated repository** — there is no multi-repo coordination needed since Drools, OptaPlanner, Kogito Runtimes, and Kogito Apps all live here. + +| Step | Output | +|---|---| +| `01-update-version.sh` | POM versions bumped in the working tree (not committed) | +| `02-rc-commit.sh` | A local RC git tag (e.g. `10.3.0-rc1`) pointing to the R commit; optionally pushed to `origin` | +| `03-build.sh` | Release JARs installed to `~/.m2/repository` | +| `04-deploy-to-staging.sh` | JARs signed (GPG) and uploaded to the Apache Nexus staging repository | +| `05-tag-release.sh` | Final release git tag (e.g. `10.3.0`) pointing to the same commit as the winning RC | + +--- + +## Repository-Specific Release Tooling + +This repository (`incubator-kie`) provides local-first release scripts located in [`script/release/`](../script/release/): + +- **[`script/release/README.md`](../script/release/README.md)**: Detailed documentation of all scripts, lifecycle definitions, and workflows. +- **`01-update-version.sh`**: (Automation A / D) Updates reactor POM versions across all modules. +- **`02-rc-commit.sh`**: (Automation D.1) Generates the temporary release branch, updates version to release version, tags the RC commit, and deletes the temporary branch. +- **`03-build.sh`**: (Automation D.2) Builds the full Maven reactor and installs artifacts to local `~/.m2/repository`. +- **`04-deploy-to-staging.sh`**: (Automation D.3) Deploys signed artifacts to the Apache Nexus staging repository. +- **`05-tag-release.sh`**: (Automation F) Promotes an approved RC tag to the final release tag after a successful VOTE. +- **`release-all.sh`**: Master orchestration script executing the RC workflow (`02` → `03` → `04`) in sequence. + +### Common Commands + +```bash +# 1. Update version across reactor modules (Automation A or D) +./script/release/01-update-version.sh 10.3.999-SNAPSHOT # stream snapshot +./script/release/01-update-version.sh 999-SNAPSHOT # main stream (image tag → "main") +./script/release/01-update-version.sh 10.3.0 # exact release version + +# 2. Master RC workflow (accepts positional version or --version flag) +./script/release/release-all.sh 10.3.0 --rc --skip-tests +# Full RC with upload + tag push (requires MAVEN_SETTINGS and MAVEN_GPG_PASSPHRASE env vars): +MAVEN_SETTINGS=~/.m2/settings.xml \ + ./script/release/release-all.sh --version 10.3.0 --tag 10.3.0-rc1 --skip-tests --deploy --push-tag + +# 3. Promote approved RC tag to final release tag (Automation F) +./script/release/05-tag-release.sh --rc-tag 10.3.0-rc1 --push +``` Review Comment: Also for `script/release/README.md`. -- 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] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
