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

Reply via email to