...
End of rampdown is code freeze. Code freeze is based on dates, but the actual time of freeze is determined by announcing.
There During stabilization phase only blockers are accepted. Usually it should be approval of release manager to each commit.
Note blockers here is not only a critical bug, but an issue in the product which makes product unstable or non-functioning, performance drop has proven by a benchmark, a security issue, or a regression of existing features.
...
After the community agrees that the codebase is ready for a release, release manager should send the release for a vote.
The email subject should be "[VOTE] Apache Ignite <version> <rc>", e.g. "[VOTE] Apache Ignite 1.5.0.final RC3". Here is the sample email.
Code Block | ||
---|---|---|
| ||
Dear Community,
We have uploaded release candidate to
https://dist.apache.org/repos/dist/dev/ignite/2.7.5-rc3/
The following staging can be used for a dependent project for testing:
https://repository.apache.org/content/repositories/orgapacheignite-1438/
This is very important release containing initial versions of Ignite.NET
and Ignite C++ and many other important features.
Tag name is
1.5.0.final-rc3
1.5.0 changes:
* Ignite.NET: Initial Release.
* Ignite C++: Initial Release.
* Massive performance improvements for cache operations and SQL.
* Added new binary cache object marshalling implementation.
* Added IgniteSemaphore data structure.
* Added MQTT Streamer.
* Added Twitter Streamer.
* Added Ignite Sink (integration with Apache Flume).
* Fixed optimistic serializable transactions: implemented "deadlock-free"
locking algorithm.
* Fixed failover for continuous queries.
* Fixed compilation and runtime errors under OpenJDK and IBM JDK.
* Fixed Integer.size limitation for cache.
* Fixed and improved cache types configuration.
* Fixed cache rebalancing.
* Many stability and fault-tolerance fixes.
* Added example to demonstrate the usage of EntryProcessor.
Complete list of closed issues:
https://issues.apache.org/jira/issues/?jql=project%20%3D%20IGNITE%20AND%20fixVersion%20%3D%201.5%20AND%20status%20%3D%20closed
DEVNOTES
https://git-wip-us.apache.org/repos/asf?p=ignite.git;a=blob_plain;f=DEVNOTES.txt;hb=refs/tags/1.5.0.final-rc3
RELEASENOTES
https://git-wip-us.apache.org/repos/asf?p=ignite.git;a=blob_plain;f=RELEASE_NOTES.txt;hb=refs/tags/1.5.0.final-rc3
The vote is formal, see voting guidelines https://www.apache.org/foundation/voting.html
+1 - to accept Apache Ignite 1.5.0.final-rc3
0 - don't care either way
-1 - DO NOT accept Apache Ignite 1.5.0.final-rc3 (explain why)
This vote will be open for 72 hours till May 23, 14:00 UTC.
https://www.timeanddate.com/countdown/to?year=2019&month=5&day=23&hour=14&min=0&sec=0&p0=utc-1 |
Check that all JIRA issues for the specific version are Closed (example JQL: `project = IGNITE AND fixVersion <= 1.7 AND status != closed`).
Code Block | ||
---|---|---|
| ||
curl "https://issues.apache.org/jira/rest/api/2/search?jql=project=ignite%20AND%20status%20!=%20closed%20AND%20fixVersion<=1.7&fields=summary" | grep '"total":0,"issues":\[\]' |
Check that sha1 & md5 checksum is correct.
Code Block | ||
---|---|---|
| ||
sha1sum -c *.sha1
md5sum -c *.md5 |
Check that signature is correct.
Code Block | ||
---|---|---|
| ||
gpg --verify-files *.asc |
...
Check licenses from the source code.
Code Block | ||
---|---|---|
| ||
mvn clean validate -DskipTests=true -P check-licenses |
Build the binary releases from the source code.
Code Block | ||
---|---|---|
| ||
mvn clean package -DskipTests -Dignite.edition=hadoop
mvn clean package -DskipTests |
Build Ignite.NET binaries and NuGet packages
Code Block | ||
---|---|---|
| ||
cd modules\platforms\dotnet
build -skipJava |
...
Once all changes are applied it is possible to prepare release candidate.
4.0.1. Collect Release Notes (this step is manual now). 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.0.2. Optionally you may ask for review of resulting release notes on the list.
4.0.3. Update RELEASE_NOTES.txt and commit Release Notes changes into master and a release branch.
4.1.1. Update version in the master branch (execute script from Ignite project root directory):
No Format |
---|
./scripts/update-versions.sh 2.7.5 |
and commit changes. Source code will be published into SVN, so version update is required before RC building.
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.2.Download and unzip release archive. It can be found at "Artifacts" tab on build page. Example:
Expand | |||||||||
---|---|---|---|---|---|---|---|---|---|
|
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.
Run ./vote_1\[git\]create_rc_tag.sh Example of script output:
Expand | |||||||
---|---|---|---|---|---|---|---|
|
Please, check corresponding git tag is created and is available in ASF repository: https://gitbox.apache.org/repos/asf?p=ignite.git;a=tags
Note: If you've already uploaded staging, you should remove it from nexus - https://repository.apache.org/#stagingRepositories
Run script ./vote_2\[mvn\]\[pgp\]deploy_to_staging.sh Example of script output:
Expand | |||||||
---|---|---|---|---|---|---|---|
|
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.
? Probably this build step was migrated to TC and automated ?
Note: 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:
Expand | |||||||
---|---|---|---|---|---|---|---|
|
Run script vote_3_step_2[pgp]sign_artifacts.sh . Example of script output
Expand | |||||||
---|---|---|---|---|---|---|---|
|
Please check results at ./svn/vote. Optionally you may also check hash/sign using https://www.apache.org/info/verification.html
Run scrupt vote_3_step_3[svn]deploy_artifacts.sh Example of output:
Expand | |||||||
---|---|---|---|---|---|---|---|
|
Check binaries and sources are available in the SVN: https://dist.apache.org/repos/dist/dev/ignite/
Compare with previous release.
There are TC task to generate report with difference comparing current release with previous.
https://ci.ignite.apache.org/viewType.html?buildTypeId=ApacheIgniteReleaseJava8_IgniteRelease72CheckFileConsistency
You should run it and do sanity check for a changed files.
To start the build you need to specify current (staging) version and released version of Apache Ignite. See "Artifacts" tab to get task results. Example:
Expand |
---|
For 2.7 release "apache-ignite-hadoop" removed and some new dependencies introduced for a benchmarks. |
? Probably this should be done using https://ci.ignite.apache.org/viewType.html?buildTypeId=ApacheIgniteReleaseJava8_PrepareVote3BuildNuGetPackages
After the community agrees that the codebase is ready for a release, release manager should send the release for a vote.
The email subject should be "[VOTE] Release Apache Ignite <version> <rc>", e.g. "[VOTE] Release Apache Ignite 2.7.5 RC4".
Vote email should include reference that vote is formal and votes meaning for +1,0,-1.
Here is the sample email:
Expand | |||||
---|---|---|---|---|---|
|
Examples of Voting threads Vote on 2.7.5; Vote on 2.7.0
Optionally you can create a separate discussion for questions related to RC: Discussion on 2.7.5
All community members are encouraged to verify release. PMC members have a binding vote, but each vote matters.
It is not complete list, community members can test any module or feature of the product.
Following list are steps, which can be done by each member, see also https://www.apache.org/info/verification.html
Check that all JIRA issues for the specific version are Closed (example JQL: `project = IGNITE AND fixVersion <= 1.7 AND status != closed`).
Code Block | ||
---|---|---|
| ||
curl "https://issues.apache.org/jira/rest/api/2/search?jql=project=ignite%20AND%20status%20!=%20closed%20AND%20fixVersion<=1.7&fields=summary" | grep '"total":0,"issues":\[\]' |
Check that sha1 & md5 checksum is correct.
Code Block | ||
---|---|---|
| ||
sha1sum -c *.sha1
md5sum -c *.md5 |
Check that signature is correct.
Code Block | ||
---|---|---|
| ||
gpg --verify-files *.asc |
Check licenses from the source code.
Code Block | ||
---|---|---|
| ||
mvn clean validate -DskipTests=true -P check-licenses |
Build the binary releases from the source code.
Code Block | ||
---|---|---|
| ||
mvn clean package -DskipTests -Dignite.edition=hadoop
mvn clean package -DskipTests |
Build Ignite.NET binaries and NuGet packages
Code Block | ||
---|---|---|
| ||
cd modules\platforms\dotnet
build -skipJava |
In case there is -1 vote present (it is not a veto, even if it was casted by PMC), release manager has ultimate rigth to cancel vote immediately to fix related issues.
Usually +1 means that community member agrees that current release is better with previous.
Vote should be open for at least 72hours. In case insufficient votes are available vote can be kept open as long as it needed without additional announce. But in this case release manager has option to close the vote as unsuccessfull in case time is out.
Info |
---|
Whenever consensus cannot be reached, standard Apache Voting Process will be used to reach a solution. |
After vote passes someone from PMC should do the following:
Upload documentation to https://svn.apache.org/repos/asf/ignite/site/trunk/releases/<version>
Code Block | ||
---|---|---|
| ||
svn import apache-ignite-fabric-<version>-bin/docs https://svn.apache.org/repos/asf/ignite/site/trunk/releases/<version> -m "new Release (<version>)" |
Move release to https://dist.apache.org/repos/dist/release/ignite/<version>
Code Block | ||
---|---|---|
| ||
svn mv https://dist.apache.org/repos/dist/dev/ignite/<version><rc> https://dist.apache.org/repos/dist/release/ignite/<version> -m "Release <version>" |
Create Release tag from RC tag
Code Block | ||
---|---|---|
| ||
git tag -a <version> -m "<version>"
git push origin <version> |
Send an email with subject "[RESULT] [VOTE] Apache Ignite <version> Release (<rc>)", for example "[RESULT] [VOTE] Apache Ignite 1.4.0 Release (RC1)" and body similar to:
Code Block | ||
---|---|---|
| ||
Hello!
Apache Ignite 1.4.0 release (RC1) has been accepted.
9 "+1" votes received.
Here are the votes received:
- Denis Magda (binding)
- Anton Vinogradov (binding)
- Alexey Kuznetsov (binding)
- Sergi Vladykin (binding)
- Gianfranco Murador (binding)
- Vladimir Ozerov (binding)
- Raul Kripalani (binding)
- Konstantin Boudnik (binding)
- Chandresh Pancholi
Here is the link to vote thread -
http://apache-ignite-developers.2346864.n4.nabble.com/VOTE-Apache-Ignite-1-4-0-Release-RC1-tp3474.html
Ignite 1.4.0 successfuly released to https://dist.apache.org/repos/dist/release/ignite/1.4.0/
Thanks! |
After successful vote following actions should be done:
Jira | ||||||
---|---|---|---|---|---|---|
|
Tip |
---|
This page was merged from several sources contributed by Nikolay Izhikov, Anton Vinogradov ,Denis Magda , Dmitry Pavlov , Pavel Tupitsyn, Vladimir Ozerov, Alexey Kuznetsov, Yakov Zhdanov |
There are several unresoved issues / open questions:
Warning |
---|
1. Can committer be release manager and upload artifacts provided that PMC will upload committer's key Steps to be done for prepare Nuget packages Steps to be done for prepare RPM/DEB packages - step 4.3.3.1 |
After vote passes someone from PMC should do the following:
Upload documentation to https://svn.apache.org/repos/asf/ignite/site/trunk/releases/<version>
Code Block | ||
---|---|---|
| ||
svn import apache-ignite-fabric-<version>-bin/docs https://svn.apache.org/repos/asf/ignite/site/trunk/releases/<version> -m "new Release (<version>)" |
...
Move release to https://dist.apache.org/repos/dist/release/ignite/<version>
Code Block | ||
---|---|---|
| ||
svn mv https://dist.apache.org/repos/dist/dev/ignite/<version><rc> https://dist.apache.org/repos/dist/release/ignite/<version> -m "Release <version>" |
Create Release tag from RC tag
Code Block | ||
---|---|---|
| ||
git tag -a <version> -m "<version>"
git push origin <version> |
...
Send an email with subject "[RESULT] [VOTE] Apache Ignite <version> Release (<rc>)", for example "[RESULT] [VOTE] Apache Ignite 1.4.0 Release (RC1)" and body similar to:
Code Block | ||
---|---|---|
| ||
Hello!
Apache Ignite 1.4.0 release (RC1) has been accepted.
9 "+1" votes received.
Here are the votes received:
- Denis Magda (binding)
- Anton Vinogradov (binding)
- Alexey Kuznetsov (binding)
- Sergi Vladykin (binding)
- Gianfranco Murador (binding)
- Vladimir Ozerov (binding)
- Raul Kripalani (binding)
- Konstantin Boudnik (binding)
- Chandresh Pancholi
Here is the link to vote thread -
http://apache-ignite-developers.2346864.n4.nabble.com/VOTE-Apache-Ignite-1-4-0-Release-RC1-tp3474.html
Ignite 1.4.0 successfuly released to https://dist.apache.org/repos/dist/release/ignite/1.4.0/
Thanks! |
Info |
---|
Whenever consensus cannot be reached, standard Apache Voting Process will be used to reach a solution. |
After successful vote following actions should be done:
...
...
...
Jira | ||||||
---|---|---|---|---|---|---|
|
...
...