You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Set version number as x.y.z, and tag as **v**x.y.z (The version tag must start with **v**. You will find out why this is necessary in the next step.)
52
-
53
-
_You could do a GPG signature before preparing for the release. If you need to input the password to sign, and the maven doesn't provide you with the opportunity to do so, this may lead to failure of the release. To resolve this, you may run `gpg --sign xxx` in any file. This will allow it to remember the password for long enough to prepare for the release._
54
-
55
-
## Stage the release
56
-
```
57
-
./mvnw release:perform -DskipTests -Pall
58
-
```
39
+
## Release using the release script
59
40
60
-
-The release will be automatically inserted into a temporary staging repository.
41
+
The release script `tools/releasing/release.sh` automates the full release workflow. The release is a **two-step process** with a vote in between.
61
42
62
-
##Build and sign the source code and binary package
1. Use `v` + `RELEASE_VERSION` as tag to clone the codes.
71
-
2. Complete `git submodule init/update`.
72
-
3. Exclude all unnecessary files in the target source tar, such as `.git`, `.github`, and `.gitmodules`. See the script for more details.
73
-
4. Execute `gpg` and `shasum 512` for source code tar.
74
-
5. Use maven package to build the agent tar.
75
-
6. Execute `gpg` and `shasum 512` for binary tar.
76
-
77
-
`apache-skywalking-java-agent-x.y.z-src.tgz` and files ending with `.asc` and `.sha512` may be found in the `tools/releasing` folder.
78
-
`apache-skywalking-java-agent-x.y.z.tgz` and files ending with `.asc` and `.sha512` may be found in the `tools/releasing/apache-skywalking-java-agent-x.y.z` folder.
79
-
80
-
81
-
## Upload to Apache svn
82
-
1. Use your Apache ID to log in to `https://dist.apache.org/repos/dist/dev/skywalking/java-agent/`.
83
-
1. Create a folder and name it by the release version and round, such as: `x.y.z`
84
-
1. Upload the source code package to the folder with files ending with `.asc` and `.sha512`.
85
-
1. Upload the distribution package to the folder with files ending with `.asc` and `.sha512`.
45
+
# Step 1: Build, stage, upload, and generate vote email
46
+
./tools/releasing/release.sh prepare-vote x.y.z
86
47
87
-
## Make the internal announcements
88
-
Send an announcement mail in dev mail list.
48
+
# (send vote email to dev@skywalking.apache.org, wait 72h for vote to pass)
89
49
50
+
# Step 2: Promote, push Docker images, generate announce email, and clean up
`prepare-vote` runs the following steps in sequence:
73
+
1.**preflight** — verify tools and environment
74
+
2.**prepare** — create `release/x.y.z` branch, run `mvn release:prepare` (creates tag `vx.y.z` with full CHANGES.md), then archive changelog and reset for next version, push branch and tag, create PR
75
+
3.**stage** — run `mvn release:perform`, build source and binary tars with GPG signatures and sha512 checksums
76
+
4.**upload** — upload to Apache SVN `dist/dev` (prompts for SVN credentials)
77
+
5.**email vote** — print vote email template with pre-filled version, commit ID, submodule commit, and checksums
Voting will start now (xxxx date) and will remain open for at least 72 hours, Request all PMC members to give their vote.
180
-
[ ] +1 Release this package.
181
-
[ ] +0 No opinion.
182
-
[ ] -1 Do not release this package because....
183
-
```
79
+
Copy the generated email and send it to `dev@skywalking.apache.org`. Voting remains open for at least 72 hours. At least 3 (+1 binding) PMC votes with more +1 than -1 are required.
184
80
185
81
## Vote Check
186
82
All PMC members and committers should check these before casting +1 votes.
@@ -195,91 +91,9 @@ are found in `https://dist.apache.org/repos/dist/dev/skywalking/java-agent/x.y.z
195
91
1. Build a distribution package from the source code package (`apache-skywalking-java-agent-x.y.z-src.tar.gz`).
196
92
1. Check the Apache License Header. Run `docker run --rm -v $(pwd):/github/workspace apache/skywalking-eyes header check`. (No binaries in source codes)
197
93
198
-
199
-
The voting process is as follows:
200
-
1. All PMC member votes are +1 binding, and all other votes are +1 but non-binding.
201
-
1. If you obtain at least 3 (+1 binding) votes with more +1 than -1 votes within 72 hours, the release will be approved.
202
-
203
-
204
-
## Publish the release
205
-
1. Move source codes tar and distribution packages to `https://dist.apache.org/repos/dist/release/skywalking/java-agent/`.
tar -xzvf apache-skywalking-java-agent-$SW_VERSION.tgz
274
-
275
-
export NAME=skywalking-java-agent
276
-
export HUB=apache
277
-
export TAG=$SW_VERSION
278
-
279
-
make docker.push.alpine docker.push.java8 docker.push.java11 docker.push.java17 docker.push.java21 docker.push.java25
280
-
```
281
-
282
-
## Clean up the old releases
283
-
Once the latest release has been published, you should clean up the old releases from the mirror system.
284
-
1. Update the download links (source, dist, asc, and sha512) on the website to the archive repo (https://archive.apache.org/dist/skywalking).
285
-
2. Remove previous releases from https://dist.apache.org/repos/dist/release/skywalking/java-agent.
94
+
## vote-passed
95
+
After the vote passes, run `vote-passed` which executes:
96
+
1.**promote** — move packages from `dist/dev` to `dist/release` in Apache SVN (prompts for SVN credentials), then release the Nexus staging repository at https://repository.apache.org and update the website download page
97
+
2.**docker** — build and push all Docker image variants (alpine, java8, java11, java17, java21, java25)
98
+
3.**email announce** — print announcement email template. Copy and send to `dev@skywalking.apache.org` and `announce@apache.org`
99
+
4.**cleanup** (optional) — if old version is provided, remove it from `dist/release`. Update download page links to point to `https://archive.apache.org/dist/skywalking`
0 commit comments