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
~/.gradle/gradle.properties
file with the following content:staging_user=*INSERT STAGING USERNAME HERE* staging_password=*INSERT STAGING PASSWORD HERE*(do NOT put secrets into
gradle.properties
in the project dir - see Gradle docs for more details).For all the commands going forward:
{version}
with the version number being released.{rc}
with the current sequential number of the release candidate.{gpg}
with your GPG key ID.{dist.dev}
with the local path to the development distribution directory.{dist.release}
with the local path to the release distribution directory.main
branch.main
branch to the next development version (e.g., x.y.z-SNAPSHOT
):gradle.properties
manually../gradlew :platforms:updateVersion
to update platforms versions (.NET, C++, Python, etc.)ignite-{version}
.ignite-{version}
branch to the current release version, remove -SNAPSHOT
suffix - same steps as in point 3.ignite-{version}
branch head:git tag -a {version}-rc{rc} -m "{version}-rc{rc}" git push --tags
~/.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 for more details). To generate a secret key ring file use the following commandgpg --keyring secring.gpg --export-secret-keys > ~/.gnupg/secring.gpgShow key id command (you need only last 8 chars from printed key)
gpg -K
./gradlew publishAllPublicationsToMavenRepository
rm -rf {dist.dev}/{version}-rc{rc} mkdir {dist.dev}/{version}-rc{rc}
./gradlew -PprepareRelease prepareRelease -Pplatforms.enable
cp packaging/build/release/* {dist.dev}/{version}-rc{rc}
cd {dist.dev} svn add {version}-rc{rc} svn commit -m “Apache Ignite {version} RC{rc}”
Perform the following actions ONLY after the vote is successful and closed.
rm -rf {dist.release}/{version} mkdir {dist.release}/{version}
cp {dist.dev}/{version}-rc{rc}/* {dist.release}/{version}
cd {dist.release} svn add {version} svn commit -m “Apache Ignite {version}”
./gradlew aggregateJavadoc
./gradlew :platforms:aggregateDotnetDocs
./gradlew :platforms:doxygenCppClient
./gradlew :packaging:docker -Pplatforms.enable
(TODO - see IGNITE-24408)for i in *.nupkg; do dotnet nuget push $i -k API_KEY_HERE -s "https://nuget.org/"; done
Add compatibility snapshot, OpenAPI spec and update igniteVersions.json
for released version:
./gradlew postRelease
./gradlew :ignite-runner:test --tests "org.apache.ignite.internal.configuration.compatibility.ConfigurationCompatibilityTest"
{jira_ticket} Add compatibility data for Ignite {version}
. Push the change to main branch.