This is an automated email from the ASF dual-hosted git repository.
ptupitsyn pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
The following commit(s) were added to refs/heads/main by this push:
new 27e56c211b6 IGNITE-24449 Document all release steps in RELEASE.md
(#5953)
27e56c211b6 is described below
commit 27e56c211b65e461a353112b17809d65508bc5a4
Author: Pavel Tupitsyn <[email protected]>
AuthorDate: Mon Jun 2 13:39:09 2025 +0300
IGNITE-24449 Document all release steps in RELEASE.md (#5953)
---
RELEASE.md | 49 +++++++++++++++++++++++++++++++++----------------
1 file changed, 33 insertions(+), 16 deletions(-)
diff --git a/RELEASE.md b/RELEASE.md
index 9a5a6c5b096..49b87582afc 100644
--- a/RELEASE.md
+++ b/RELEASE.md
@@ -10,13 +10,12 @@ This document describes the current procedure for preparing
an Ignite 3 release.
svn checkout https://dist.apache.org/repos/dist/dev/ignite dist-dev
svn checkout https://dist.apache.org/repos/dist/release/ignite dist-release
```
-3. Provide your Apache credentials to Gradle (required for uploading to Apache
Nexus):
+3. Provide your Apache credentials to Gradle (required for uploading to Apache
Nexus) - create or update `~/.gradle/gradle.properties` file with the following
content:
```
staging_user=*INSERT STAGING USERNAME HERE*
staging_password=*INSERT STAGING PASSWORD HERE*
```
- You can specify it in project gradle.property but DO NOT FORGET revert it
before push.
- Better place is gradle.properties in HOME dir, read about it
https://docs.gradle.org/current/userguide/build_environment.html
+ (do NOT put secrets into `gradle.properties` in the project dir - see
[Gradle docs](https://docs.gradle.org/current/userguide/build_environment.html)
for more details).
For all the commands going forward:
* Replace `{version}` with the version number being released.
@@ -28,20 +27,25 @@ For all the commands going forward:
## Preparing the Release
1. Go to the project home folder.
-2. Create a Git tag:
+2. Update RELEASE_NOTES.txt with the changes since the last release. Commit
and push to the `main` branch.
+3. Update versions in `main` branch to the next development version (e.g.,
`x.y.z-SNAPSHOT`):
+ * Update `gradle.properties` manually.
+ * Run `./gradlew :platforms:updateVersion` to update platforms versions
(.NET, C++, Python, etc.)
+ * Commit and push changes.
+4. Create and push a new branch for the release `ignite-{version}`.
+5. Update versions in `ignite-{version}` branch to the current release
version, remove `-SNAPSHOT` suffix - same steps as in point 3.
+6. Create a Git tag from `ignite-{version}` branch head:
```
git tag -a {version}-rc{rc} -m "{version}-rc{rc}"
git push --tags
```
-3. Setup properties in gradle.properties.
- You can specify it in project gradle.properties but DO NOT FORGET to revert
it before push.
- Better place is gradle.properties in HOME dir, you can read about it here
- https://docs.gradle.org/current/userguide/build_environment.html
+7. Setup Gradle properties - create or update `~/.gradle/gradle.properties`
file with the following content:
```
signing.keyId=*INSERT KEY HERE LAST 8 CHARS*
signing.password=*INSERT PASSWORD HERE*
signing.secretKeyRingFile=*INSERT KEY RING ABSOLUTE PATH HERE*
```
+ (do NOT put secrets into `gradle.properties` in the project dir - see
[Gradle docs](https://docs.gradle.org/current/userguide/build_environment.html)
for more details).
To generate a secret key ring file use the following command
```
gpg --keyring secring.gpg --export-secret-keys > ~/.gnupg/secring.gpg
@@ -50,31 +54,31 @@ For all the commands going forward:
```
gpg -K
```
-4. Build the project, sign the artifact and create a staging repository:
+8. Build the project, sign the artifact and create a staging repository:
```
./gradlew publishAllPublicationsToMavenRepository
```
-5. Login to the Apache Nexus and close the new repository:
https://repository.apache.org/#stagingRepositories
-6. Create an empty folder under the development distribution directory:
+9. Login to the Apache Nexus and close the new repository:
https://repository.apache.org/#stagingRepositories
+10. Create an empty folder under the development distribution directory:
```
rm -rf {dist.dev}/{version}-rc{rc}
mkdir {dist.dev}/{version}-rc{rc}
```
-7. Create ZIP, DEB, RPM packages, .NET and C++ client, sign them and create
checksums:
+11. Create ZIP, DEB, RPM packages, .NET and C++ client, sign them and create
checksums:
```
./gradlew -PprepareRelease prepareRelease
```
-8. Copy all packages along with checksums and signatures to the development
distribution directory:
+12. Copy all packages along with checksums and signatures to the development
distribution directory:
```
cp packaging/build/release/* {dist.dev}/{version}-rc{rc}
```
-9. Commit ZIP and DEB\RPM packages:
+13. Commit ZIP and DEB\RPM packages:
```
cd {dist.dev}
svn add {version}-rc{rc}
svn commit -m “Apache Ignite {version} RC{rc}”
- ```
-10. Put the release on a vote on the developers mailing list.
+ ```
+14. Put the release on a vote on the developers mailing list.
## Finalizing the Release
@@ -96,3 +100,16 @@ Perform the following actions ONLY after the vote is
successful and closed.
svn add {version}
svn commit -m “Apache Ignite {version}”
```
+5. Build and publish the documentation - see docs/README.adoc
+ * Push to https://github.com/apache/ignite-website/tree/master/docs/ignite3
+6. Build and publish API docs
+ * Java: `./gradlew aggregateJavadoc`
+ * .NET: `./gradlew :platforms:aggregateDotnetDocs`
+ * C++: `./gradlew :platforms:doxygenCppClient`
+ * Push to https://github.com/apache/ignite-website/tree/master/releases
+7. Publish Docker images: `./gradlew :packaging:docker` (TODO - see
[IGNITE-24408](https://issues.apache.org/jira/browse/IGNITE-24408))
+8. Publish NuGet packages:
+ * Get API key from
https://svn.apache.org/repos/private/pmc/ignite/credentials/nuget.org (PMC only)
+ * `for i in *.nupkg; do dotnet nuget push $i -k API_KEY_HERE -s
"https://nuget.org/"; done`
+9. Publish Python packages (TODO
[IGNITE-24327](https://issues.apache.org/jira/browse/IGNITE-24327))
+10. Update https://ignite.apache.org/download.cgi page - see
https://cwiki.apache.org/confluence/display/IGNITE/Website+Development
\ No newline at end of file