Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Add ARM64 Docker build step with JDK11

...

  • Check that all JIRA issues for the specific version are Closed (example JQL: `project = IGNITE AND fixVersion <= 1.7 AND status != closed`).

    Code Block
    languagebash
    curl "https://issues.apache.org/jira/rest/api/2/search?jql=project=ignite+AND+status+!=+closed+AND+fixVersion<=1.7&fields=summary" | grep '"total":0,"issues":\[\]'


  • Check that sha1 & md5 sha512 checksum is correct. 

    Code Block
    languagexml
    sha1sumsha512sum -c *.sha1
    md5sum -c *.md5sha512


  • Check that signature is correct.

    Code Block
    languagexml
    gpg --verify-files *.asc


  • Check that version is correct.
  • Check licenses from the source code.

    Code Block
    languagexml
    mvn clean validate -DskipTests=true -P check-licenses


  • Build the binary releases from the source code.

    Code Block
    languagexml
    mvn clean package -DskipTests -Dignite.edition=hadoop
    mvn clean package -DskipTests


  • Build Ignite.NET binaries and NuGet packages

    Code Block
    languagebash
    cd modules\platforms\dotnet
    build -skipJava


  • Do some trivial checks, e.g. start local topology, run several examples from binaries gained at previous step. Unpacked binaries can be found at sources/target/release-package

...

  1. If release step for staging was successful you can access artifacts using service repository:  https://repository.apache.org/service/local/repositories/releases/content/org/apache/ignite/ignite-core/2.7.5/
  2. Once repository is synced you can see result in httpin https://repo2repo.maven.apache.org/maven2/org/apache/ignite/ignite-core/ 
  3. With some delay artifact will be available on the site https://mvnrepository.com/artifact/org.apache.ignite/ignite-core

...

6.3.4. Publish technical documentation

Publish the technical documentation on the website: How to Document - Publishing to the website

6.3.5.

Update references to API docs on the website, SEO updates

Update the latest APIs doc reference on ignite.apache.org:

  1. Update the new version number on the .htaccess file: RewriteRule ^releases/latest/(.*)$ /releases/2.9.0/$1 [L]
  2. Add the following tag to all .html files: <link rel="canonicalhref="https://ignite.apache.org/releases/latest/LANGUAGE-DIR/FILENAME.html" />
  3. Use https://github.com/apache/ignite-website/blob/master/add-canonical-metatag.php (or the script) that automates the update or contact Mauricio Stekl (mauricio@gridgain.com) who can assist with this step.
  4. Commit changes to the GIT.

This script does some Search engine optimization (SEOupdates to new/old .html files, like adding NOINDEX metatag to older version; add canonical URL to latest docs; and add GA code.  

6.3.6. Prepare HTML release notes from text release notes

Checkout GIT repository for Apache Ignite site: https://gitbox.apache.org/repos/asf/ignite-website.git

Just copy-paste latest release notes from previous release, replace text formatting with headers, lists items.

Place these notes to corresponding release folder, for example releases/2.7.5. If folder is absent, check results of step 6.2.3.

Commit and push changes. File should be available on the site automatically. 

Once the new release is published to dist.apache.org/release wait a day or so for mirrors to catch up. 

After the release was propagated across all the mirrors, update the "Source Releases" and "Binary Releases" sections of the website downloads page:

  • Add a reference to the new release pointing out to https://downloads.apache.org/. Make sure to use [preferred]/[distdir] as part of the URL.
  • Mark the new release as the latest one.
  • Change the previous latest release record to link to https://archive.apache.org/ server. 
  • Add references to the release notes, API and technical documentations.

6.3.8. Update version for generating users advices to update

Find `latest` text file in GIT repository for Apache Ignite site.

Update Ignite version in this file. Commit changes and check result at https://ignite.apache.org/latest

6.3.9. Mark JIRA version as released

Go to JIRA project administration, select Apache Ignite, select Versions, select appropriate version and select Actions->Release.

6.3.10. Prepare docker image

This section Intended for preparing a docker image for https://apacheignite.readme.io/docs/docker-deployment

Prerequisite: Docker installed. For example, for Windows you can download https://docs.docker.com/docker-for-windows/ You may need to register at docker hub.  

Credentials can be found in SVN:
https://svn.apache.org/repos/private/pmc/ignite/credentials/hub.docker.com.txt (PMC only)

You can get a binary distribution from the 'vote' folder of the release candidate.

Follow instructions from the README file and Dockerfile are available at:
https://github.com/apache/ignite/tree/master/deliveries/docker/apache-ignite

To build an image run the following command (insert correct release number):

Prepare HTML release notes from text release notes

Checkout GIT repository for Apache Ignite site: https://gitbox.apache.org/repos/asf/ignite-website.git

Just copy-paste latest release notes from previous release, replace text formatting with headers, lists items.

Place these notes to corresponding release folder, for example releases/2.7.5. If folder is absent, check results of step 6.2.3.

Commit and push changes. File should be available on the site automatically. 

Once the new release is published to dist.apache.org/release wait a day or so for mirrors to catch up. 

After the release was propagated across all the mirrors, update the "Source Releases" and "Binary Releases" sections of the website downloads page:

  • Add a reference to the new release pointing out to https://downloads.apache.org/. Make sure to use [preferred]/[distdir] as part of the URL.
  • Mark the new release as the latest one.
  • Change the previous latest release record to link to https://archive.apache.org/ server. 
  • Add references to the release notes, API and technical documentations.


6.3.7. Update version for generating users advices to update

Find `latest` text file in GIT repository for Apache Ignite site.

Update Ignite version in this file. Commit changes and check result at https://ignite.apache.org/latest

6.3.8. Mark JIRA version as released

Go to JIRA project administration, select Apache Ignite, select Versions, select appropriate version and select Actions->Release.

6.3.9. Prepare docker image

This section Intended for preparing a docker image for https://apacheignite.readme.io/docs/docker-deployment

Prerequisite: Docker installed. For example, for Windows you can download https://docs.docker.com/docker-for-windows/ You may need to register at docker hub.  

Credentials can be found in SVN:
https://svn.apache.org/repos/private/pmc/ignite/credentials/hub.docker.com.txt (PMC only)

You can get a binary distribution from the 'vote' folder of the release candidate.

Follow instructions from the README file and Dockerfile are available at:
https://github.com/apache/ignite/tree/master/deliveries/docker/apache-ignite

To build images run the following commands (insert correct release number):

Code Block
languagebash
docker build . -f ./x86_64/Dockerfile -t apacheignite/ignite:2.15.0 -t apacheignite/ignite:latest
docker build . -f ./x86_64/Dockerfile -t apacheignite/ignite:2.15.0-jdk11 --build-arg JDK_VERSION=11 
docker build . -f ./s390x/Dockerfile -t apacheignite/ignite:2.15.0-jdk11-s390x --build-arg IGNITE_VER=2.15.0
docker buildx build . -f ./arm64/Dockerfile -t apacheignite/ignite:2.15.0-arm64 --push --platform linux/arm64
docker buildx build . -f ./arm64/Dockerfile
Code Block
languagebash
docker build . -t apacheignite/ignite:2.1115.0-jdk11-arm64 --push --tplatform apacheignite/ignite:latestlinux/arm64 --build-arg JDK_VERSION=11

This build takes a distribution from some folder named like apache-ignite*

You can validate image images created by calling

Code Block
languagebash
docker images

...

Run

Code Block
languagebash
docker push apacheignite/ignite:2.15.0
docker push apacheignite/ignite:2.15.0-jdk11
docker push apacheignite/ignite:2.1115.0-jdk11-s390x
docker push apacheignite/ignite:latest

Check results at https://hub.docker.com/r/apacheignite/ignite

6.3.

...

10. GCE & AWS virtual machines

6.3.

...

10.2. AWS deployment

Todo: add description of steps ? 

In addition, update the links to the images on the following documentation pages whenever is needed:

https://apacheignite.readme.io/docs/aws-deployment

6.3.

...

10.3. GCE deployment

Todo: add description of steps ? 

...

Prepare the cloud images and update links to them here https://ignite.apache.org/download.cgi#docker.

6.3.

12

11. Delete previous release from dist and dev SVN directories

Old releases should be archived. Delete previous releases from https://dist.apache.org/repos/dist/release/ignite/... (PMC only): 

Code Block
languagebash
svn rm -m "Archiving release X.Y.Z" https://dist.apache.org/repos/dist/release/ignite/X.Y.Z/ || true

Replace their download URLs by https://archive.apache.org/dist/ignite/...

Delete unsucessfull release candidates and packages (if any) from dev section of Apache SVN repository https://dist.apache.org/repos/dist/dev/ignite/

6.3.

13

12. Upload NuGet packages to nuget.org

Retrieve all .nupkg files from build artifacts of step 4.5

Initial setup

You may need to install client tools for .NET https://docs.microsoft.com/en-us/nuget/install-nuget-client-tools (download file & add it to PATH). You can use nuget.exe 4.x version (because NuGet.exe 5.0 and later require .NET Framework 4.7.2 ).

It may be required to configure nuget.exe using NuGet.Config(XML) https://docs.microsoft.com/en-us/nuget/tools/cli-ref-push for using nuget.org as default push source.

You can find configuration file under user home directory, for example, on Windows

No Format
cd %appdata%\Nuget

Configuration on Linux can be skipped. The push source is set up by -s param in the script.

Example of configuration:

Code Block
languagexml
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
  </packageSources>
  <config>
    <add key="defaultPushSource" value="https://nuget.org/" />
  </config>
</configuration>


...

Usually, this sync should be completed in 4 hours after releasing repository at step 6.3.1. If it is not released, contact infra.

6.3.

...

14. Update compatibility check versions

Create a new issue to enforce compatibility checks and prepare the PR. Add the released version to the IgniteReleasedVersion enum. Ask for a review on dev-list if necessary.

...