Kusuma04-dev commented on code in PR #62:
URL: 
https://github.com/apache/incubator-kie-website/pull/62#discussion_r4379126680


##########
docs/community/devs/release-procedure.md:
##########
@@ -0,0 +1,439 @@
+---
+id: release-procedure
+title: Release Procedure
+sidebar_position: 1
+---
+
+This document describes how to perform an Apache KIE release. It covers the 
repositories involved, how branches and tags are named, and every step from 
creating a release candidate to publishing the final release.
+
+:::note
+Starting with **10.3**, all Java components (Drools, OptaPlanner, Kogito 
Runtimes, and Kogito Apps) were merged into a single repository called 
`incubator-kie`. This means the release process is now a **two-repo, 
single-command** workflow instead of the four-repo process used in 10.2.
+:::
+
+---
+
+## Overview
+
+A KIE release involves two repositories:
+
+| Repository | What it contains | Language / tooling |
+|---|---|---|
+| [`incubator-kie`](https://github.com/apache/incubator-kie) | Drools, 
OptaPlanner, Kogito Runtimes, Kogito Apps | Java / Maven |
+| [`incubator-kie-tools`](https://github.com/apache/incubator-kie-tools) | VS 
Code extensions, Chrome extensions, web apps, container images, Helm charts | 
Node.js / Go / pnpm |
+
+All release scripts live inside each repository:
+- **`incubator-kie`**: 
[`script/release/`](https://github.com/apache/incubator-kie/tree/main/script/release/)
 — each script supports `--dry-run`.
+- **`incubator-kie-tools`**: 
[`scripts/release/`](https://github.com/apache/incubator-kie-tools/tree/main/scripts/release/)
 — see the `README.md` there for details.
+
+---
+
+## 1. Repositories & Requirements
+
+### `incubator-kie` (Java)
+
+| Item | Value |
+|---|---|
+| Stream branch | `10.3.x` |
+| RC tag | `10.3.0-rc1` |
+| Final tag | `10.3.0` |
+| OS | Linux or macOS |
+| JDK | Temurin 17.0.12+ (21 also works) |
+| Maven | 3.9.6+ |
+| Docker | 25+ |
+| Build command | `./script/release/release-all.sh --version 10.3.0 --tag 
10.3.0-rc1 --skip-tests` |
+| Deploy command | add `--deploy --push-tag` to the build command |
+| Produced artifacts | JARs, POMs, sources, and Javadocs deployed to Apache 
Nexus Staging |
+| Update version | `./script/release/01-update-version.sh <version>` 
*(automated by `release-all.sh`)* |
+
+### `incubator-kie-tools` (Node.js / Go)
+
+| Item | Value |
+|---|---|
+| Stream branch | `10.3.x` |
+| RC tag | `10.3.0-rc1` |
+| Final tag | `10.3.0` |
+| OS | Linux or macOS |
+| Node.js | 22 |
+| pnpm | 9.x or 10.x |
+| Go | 1.21+ |
+| Helm | 3.x |
+| Docker | 25+ |
+| Build command | `./scripts/release/release-all.sh 10.3.0 --rc` |
+| Publish command | `./scripts/release/release-all.sh 10.3.0 --publish` |
+| Update own version | `pnpm update-version-to <version>` and `pnpm 
update-stream-name-to <stream>` |
+| Update Java version | `pnpm update-kogito-version-to --maven <version>` |
+| Produced artifacts | VS Code extensions (`.vsix`), Chrome extensions, web 
app ZIPs, NPM packages ZIP, Sources ZIP, container image tarballs, Helm chart 
tarballs, upload-service binaries — all in `release-artifacts/` |
+
+---
+
+## 2. Branches & Tags
+
+### How branches and tags are named
+
+| Name format | Example | Purpose |
+|---|---|---|
+| `main` | `main` | Ongoing development |
+| `X.Y.x` | `10.3.x` | Stream branch for a minor release series |
+| `X.Y.Z-rcN` | `10.3.0-rc1` | Release candidate tag |
+| `X.Y.Z` | `10.3.0` | Final release tag |
+
+### Version numbers on branches
+
+- **`main`** always runs `999-SNAPSHOT` (Java) or `0.0.0` (Tools) — a 
placeholder version that is never released.
+- **Stream branch (`10.3.x`)** runs `10.3.999-SNAPSHOT` (Java) or `10.3.999` 
(Tools) — again a placeholder, never released.
+- **RC and final tags** point to a temporary commit where the version is set 
to the exact release version (e.g. `10.3.0`). That temporary commit is created 
locally and immediately deleted after tagging — only the tag is pushed.
+
+### Git timeline diagram
+
+```
+main:    ---c-------c---c---c----------------------------------> main
+                                                v999-SNAPSHOT
+              |
+              '----D---c---c---c---c-------------------------> 10.3.x
+                   |   |                   v 10.3.999-SNAPSHOT
+                   |   |
+                   |   '--R--> tag 10.3.0-rc2 ✅
+                   |           tag 10.3.0
+                   |
+                   '--R--> tag 10.3.0-rc1 ❌ (vote failed)
+```
+
+**Diagram key:**
+
+| Symbol | Meaning |
+|---|---|
+| `c` | Regular commit |
+| `D` | Dev-version commit — sets version to `X.Y.999-SNAPSHOT` on the stream 
branch |
+| `R` | Release commit — sets version to exact release version (e.g. `10.3.0`) 
on a temporary local branch, tagged, then discarded |
+| `✅` | Vote passed |
+| `❌` | Vote failed — a new RC is needed |
+
+---
+
+## 3. Release Steps
+
+The recommended way to run a release is via Jenkins. Each step below describes 
the Jenkins approach first, followed by the equivalent local commands.
+
+---
+
+### Step 1 — Create the Stream Branch
+
+> **When:** Once per minor release series, before creating the first RC.  
+> **Example:** Creating `10.3.x` before releasing `10.3.0`.
+
+This step creates the `10.3.x` branch in both repositories and sets their 
versions to the development placeholder (`10.3.999-SNAPSHOT`).
+
+#### Via Jenkins
+
+**`incubator-kie`:**
+Trigger `Jenkinsfile.103xplus.release` with base branch `main`. It creates 
`10.3.x` and sets the version to `10.3.999-SNAPSHOT`.
+
+**`incubator-kie-tools`:**
+Trigger `Jenkinsfile.103xplus.release-candidate` with:
+- `BASE_REF`: `main`
+- `CREATE_STREAM_BRANCH`: `true`
+- `UPDATE_STREAM_VERSION`: `true`
+
+#### Locally
+
+**`incubator-kie`:**
+```bash
+chmod +x script/release/*.sh
+
+# Dry run first — checks branch status without making changes
+./script/release/00-create-stream-branch.sh 10.3.0 --dry-run
+
+# Create the branch, set version to 10.3.999-SNAPSHOT, and push
+./script/release/00-create-stream-branch.sh 10.3.0 --push
+```
+
+**`incubator-kie-tools`:**
+```bash
+git checkout main && git pull
+git checkout -b 10.3.x
+
+pnpm update-version-to 10.3.999
+pnpm update-stream-name-to 10.3.x
+pnpm update-kogito-version-to --maven 10.3.999-SNAPSHOT
+
+git add -A
+git commit -m "chore: update version to 10.3.999"
+git push origin 10.3.x
+```
+
+---
+
+### Step 2 — Build & Stage a Release Candidate
+
+> **When:** Each time you create a new RC (e.g. `10.3.0-rc1`, `10.3.0-rc2`).
+
+This step builds all artifacts, signs them, and uploads them to staging for 
community verification.
+
+#### 2a. Java reactor (`incubator-kie`)
+
+**Via Jenkins:**
+Trigger `Jenkinsfile.103xplus.release` with:
+- `RELEASE_VERSION`: `10.3.0`
+- `TAG_NAME`: `10.3.0-rc1`
+- `DEPLOY`: `true`
+- `PUSH_TAG`: `true`

Review Comment:
   It was duplicated , I have updated now!



-- 
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]

Reply via email to