Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: 4.3.3.1 Descibed: How to sign DEB & RPM, more on vote preparation details added

...

4.0.1. Collect Release Notes (this step action is manual now). Check Consider preparing HTML file in addition to text for future step 6.3.6. Check all completed tickets from the release page. Ticket may or may not have release notes, and this depends on if it is reasonable to mention change for users.

...

4.2.1. Run [RELEASES] Apache Ignite / Main [1] Release Build for ignite-x.y or for ignite-x.y.z . branch. You will need to enter version number (value if x.y.0 or x.y.z), and specify release candidate number. For testing purposes, it is recommended to use rc0. You may several times re-build same rc- number.

...

4.2.3. Write down build number (Teamcity identification of builds, usually starts from # symbol). This number will be re-used in a future steps.

4.

...

2.4. Validate version of Ignite, RC number, and packages versions (from 'packages' folder) are correct.

4.2.5. Unpack build provided with RC: svn/vote/apache-ignite-2.7.6-bin.zip . Run Ignite node from resulting apache-ignite-2.7.6-bin/bin folder. Validate node starts, correct version, and copyright messages produced.

4.3. Sign and deploy RC using vote preparation scripts

Run vote scripts to prepare RC before voting. You may skip steps 4.3.1 & step 4.3.2 in case you want to run some testing of release. In case release build was made for testing-only purposes, you can go to step 4.3.3 in this section.

4.3.1. Run script to create VCS tag in git 

Run script vote_1[git]create_rc_tag.sh  Example of script output:

Expand


Code Block
languagebash
themeRDark
$ ./vote_1\[git\]create_rc_tag.sh 
Preparing vote 2.7.0-rc0
Removing obsolete tag...
2.7.0
-rc0
Deleted tag '2.7.0-rc0' (was b2119988f0)
Username for 'https://git-wip-us.apache.org': <your apache username here>
Password for 'https://nizhikov@git-wip-us.apache.org': <your apache 

Run vote scripts to prepare RC before voting. You may skip steps 4.3.1 & step 4.3.2 in case you want to run some testing of release. In case release build it made for testing purposes, go to step 3 in this section.

4.3.1. Run script to create VCS tag in git 

Run script vote_1[git]create_rc_tag.sh  Example of script output:

Expand
Code Block
languagebash
themeRDark
$ ./vote_1\[git\]create_rc_tag.sh 
Preparing vote 2.7.0-rc0
Removing obsolete tag...
2.7.0
-rc0
Deleted tag '2.7.0-rc0' (was b2119988f0)
Username for 'https://git-wip-us.apache.org': <your apache username here>
Password for 'https://nizhikov@git-wip-us.apache.org': <your apache password here>
To https://git-wip-us.apache.org/repos/asf/ignite
 - [deleted]               2.7.0-rc0
On branch master
Your branch is ahead of 'my/master' by 2 commits.
  (use "git push" to publish your local commits)

nothing to commit, working tree clean
Creating new tag...
Username for 'https://gitbox.apache.org': <your apache username here>
Password for 'https://nizhikov@gitbox.apache.org':   <your apache password here>
Counting objects: 1, done.
Writing objects: 100% (1/1), 166 bytes | 166.00 KiB/s, done.
Total 1 (delta 0), reused 0 (delta 0)
To https://gitbox.apache.org/repos/asf/ignite
 * [new tag]               2.7.0-rc0 -> 2.7.0-rc0
 
======================================================
RC tag should be created.
Please check results at 
https://gitbox.apache.org/repos/asf?p=ignite.git


...

Expand


Code Block
languagebash
themeRDark
$ ./vote_2\[mvn\]\[pgp\]deploy_to_staging.sh 
Preparing vote 2.7.0-rc0
Uploading ./org/apache/ignite/ignite-spark (1 of 53).
Uploading ./org/apache/ignite/ignite-clients (2 of 53).

...
Uploading ./org/apache/ignite/ignite-mqtt (53 of 53).
Uploaded
 
======================================================
Maven=
Maven staging should be created
Please check results at
https://repository.apache.org/#stagingRepositories
Don't forget to close staging shouldwith be created
Please check results at
proper comment



Go to Nexus UI https://repository.apache.org/#stagingRepositories, log in using Apache credentials and close repository.

Image Added

Provide some comment for closing repository, e.g. `Repository for Apache Ignite 2.7.6 - RC0`. 

Close is a heavy background process, which makes repository visible for others.  After some time, check if the repository closed successfully and visible.

Once repository is closed, write down a link to content, e.g. https://repository.apache.org/

...

content/repositories/orgapacheignite-1464/ This link is useful for vote thread and sharing with others, who is going to test RC.

4.3.3.1. Sign DEB/RPM packages

Pre-build packages can be found at 'release-2.7.6-rc0\packages' folder of release candidate archive. 

Building packages locally supported only on Linux, WSL not supported. Steps to build from scratch:

Expand

Note: The following script is locale-specific. You should execute it on the en locale

Run script ./vote_3_step_1\[packages\]build.sh . Example of output: 

Code Block
languagebash
themeRDark
$ ./vote_3_step_1\[packages\]build.sh 
...

dpkg-deb: building package 'apache-ignite' in '../apache-ignite_2.7.0-1_all.deb'.
copied '/tmp/tmp.rEePHrMMWU/apache-ignite_2.7.0-1_all.deb' -> '/home/dragon/download/release/packaging/apache-ignite_2.7.0-1_all.deb'
удалён '/tmp/tmp.rEePHrMMWU/apache-ignite_2.7.0-1_all.deb'
Removing temporary work directories: /tmp/tmp.rEePHrMMWU 

=== Run time: 0h:00m:36s ===

packaging/apache-ignite-2.7.0-1.noarch.rpm:
Processing packaging

Go to Nexus UI https://repository.apache.org/#stagingRepositories, login using Apache credentials and close repository. Close is a heavy background process, which makes repository visible for others. Provide some comment for closing repository, e.g. `Repository for Apache Ignite 2.7.5 - RC2`. After some time check if repository was closed successfully.

4.3.3.1. Build DEB/RPM packages

? Probably this build step was migrated to TC and automated ?

...

Run script ./vote_3_step_1\[packages\]build.sh . Example of output: 

Expand
Code Block
languagebash
themeRDark
$ ./vote_3_step_1\[packages\]build.sh 
...

dpkg-deb: building package 'apache-ignite' in '../apache-ignite_2.7.0-1_all.deb'.
copied '/tmp/tmp.rEePHrMMWU...
gpg: все значения, переданные в '--default-key', игнорируются
Signed deb packaging/apache-ignite_2.7.0-1_all.deb' ->
mkdir: создан каталог '/home/dragon/download/release/packaging/pkg'
renamed 'packaging/apache-ignite_-2.7.0-1_all.noarch.deb'
удалёнrpm' -> 'packaging/tmppkg/tmp.rEePHrMMWU/apache-ignite_-2.7.0-1_all.noarch.debrpm'
Removing temporary work directories: /tmp/tmp.rEePHrMMWU 

=== Run time: 0h:00m:36s ===

renamed 'packaging/apache-ignite-_2.7.0-1.noarch.rpm:
Processing packaging_all.deb' -> 'packaging/pkg/apache-ignite_2.7.0-1_all.deb'



Build script will sign artifacts automatically (in case of build locally), but TC pre-build packages need to be signed by Apache Ignite PMC key. 

Find your public key ID by running

No Format
gpg --list-keys


Key Id will look like as 16 hexadecimal, e.g., 612654F7; it is the same value from step 0.3.2.

Sing RPM pre-build package by command

No Format
rpm --define "_gpg_name 612654F7" --addsign packages/*.rpm 

Enter pass phrase:
Pass phrase is good.
packages
gpg: все значения, переданные в '--default-key', игнорируются Signed deb packaging/apache-ignite_2.7.0-1_all.deb mkdir: создан каталог 'packaging/pkg' renamed 'packaging
/apache-ignite-2.7.
0
5-1.noarch.rpm
'
: 
-> 'packaging/pkg/apache-ignite-2.7.0-1.noarch.rpm' renamed 'packaging


Sign DEB pre-build package by command

No Format
dpkg-sig -k 612654F7 --sign builder packages/*.deb

Processing packages/apache-ignite_2.7.
0
5-1_all.deb
' -> 'packaging/pkg
... 
You need a passphrase to unlock the secret key for
user: "Apache User (CODE SIGNING KEY) <login@apache.org>"
4096-bit RSA key, ID 612654F7, created 2019-03-19

Signed deb packages/apache-ignite_2.7.
0
5-1_all.deb
'

You can validate file modification time after singing. 


4.3.3.2. Sign artfacts

Run script vote_3_step_2[pgp]sign_artifacts.sh . Example of script output

...