title: “Release guide for ServiceComb” lang: en ref: release_guide permalink: /developers/release-guide/ excerpt: “Release guide for doing the releases in Apache” last_modified_at: 2018-04-03T18:33:43+08:00 author: Asif Siddiqui tags: [release] redirect_from:
{% include toc %}
This Guide helps you to do the release in Apache for ServiceComb projects.
To prepare or perform a released you MUST BE at least an Apache ServiceComb committer.
As ServiceComb Java Chassis and Saga are using maven for the release, you should do some maven 2 setup before releasing these two projects. Before you deploy anything to the maven repository using Maven 2, you should configure your ~/.m2/settings.xml file so that the file permissions of the deployed artifacts are group writable. If you do not do this, other developers will not able to overwrite your SNAPSHOT releases with newer versions. The settings follow the guidelines used by the Maven project. Please pay particular attention to the password encryption recommendations.
<settings> ... <servers> <!-- Per http://maven.apache.org/developers/committer-settings.html --> <!-- To publish a snapshot of some part of Maven --> <server> <id>apache.snapshots.https</id> <username> <!-- YOUR APACHE LDAP USERNAME --> </username> <password> <!-- YOUR APACHE LDAP PASSWORD --> </password> </server> <!-- To publish a website of some part of Maven --> <server> <id>apache.website</id> <username> <!-- YOUR APACHE LDAP USERNAME --> </username> <filePermissions>664</filePermissions> <directoryPermissions>775</directoryPermissions> </server> <!-- To stage a release of some part of Maven --> <server> <id>apache.releases.https</id> <username> <!-- YOUR APACHE LDAP USERNAME --> </username> <password> <!-- YOUR APACHE LDAP PASSWORD --> </password> </server> <!-- To stage a website of some part of Maven --> <server> <id>stagingSite</id> <!-- must match hard-coded repository identifier in site:stage-deploy --> <username> <!-- YOUR APACHE LDAP USERNAME --> </username> <filePermissions>664</filePermissions> <directoryPermissions>775</directoryPermissions> </server> </servers> ... <profiles> <profile> <id>apache-release</id> <properties> <gpg.useagent>false</gpg.useagent> <gpg.passphrase><!-- YOUR GPG PASSPHRASE --></gpg.passphrase> <test>false</test> </properties> </profile> </profiles> ... </settings>
Make and Verify the Release
git clone https://github.com/apache/servicecomb-service-center.git cd servicecomb-service-center gvt restore
Create a Tag from the master branch based on the version number which needs to be released.
Run RAT tool to ensure no license issues are there, follow the guide over here
Run the make_release.sh to make the release for windows and linux following the guide over here.
Last Step will make the releases in root folder.
Run the releases of frontend and service-center in both linux and windows.
Run the integration test on the release.
If all the test passes then send the release candidate to peers to test in different machines.
Push the tag to master.
Sign the Release
Once the tag is pushed then using the tag download the source code from git tag.
Sign the 4 releases(linux, windows, darwin, src) and checksum.
Create a new directory Apache dev Release SVN with release package name and release candidate number. (for example : if you want to release 1.0.0-m2 and this is the second attempt of the release then the folder structure will be 1.0.0-m2/rc02
)
Upload the release to the directory created in last step.
Download all the releases from SVN and verify the signature and checksum.
PMC Approval
Send the voting mail in dev@servicecomb.apache.org for 1PMC approval.
Wait for 72 hours or unless you get 3 +1 binding vote with no -1 vote. If you get even one -1 binding vote then fix the issue and start again from Step 1.
Publish the result of the vote in dev@servicecomb.apache.org.
Announcements
Upload the releases to Apache release repository.
Wait for 24 hours to replicate the release in all the mirrors.
Delete old releases from dev and [release] (https://dist.apache.org/repos/dist/release) and check for the old release in archive, update the same links in the website for old releases.
Upload the release page of ServiceComb Website.
Send the announcement mails to dev@servicecomb.apache.org, announce@apache.org
Make and Verify the Release
git clone https://github.com/apache/servicecomb-java-chassis.git
find . -name 'pom.xml'|xargs perl -pi -e 's/1.0.0-m2-SNAPSHOT/1.0.0-m2/g'
Create a Tag from the master branch using the version number.
Clear all the redundant servicecomb releases in repository.apache.org
Add the keys in a reference folder.
Update the key path and passphrase in ~/.m2/settings.xml file.
Update the apache account username and password in the settings file.
Run the maven deploy command.
mvn deploy -DskipTests -Prelease -Pdistribution -Ppassphrase
Once every thing is uploaded then use the staging repo to verify the build using Company workshop.
Share the staging repo with peers to verify on different OS and machines using the demo.
If everything is fine then push the tag to master.
Close the staging repo is apache repositories
Sign the Releases
Download the source code and distribution from the staging repo.
Sign the 2 releases(distribution, src) and checksum.
Create a new directory Apache dev Release SVN with release package name and release candidate number. (for example : if you want to release 1.0.0-m2 and this is the first attempt of the release then the folder structure will be 1.0.0-m2/rc01
)
Upload the release to directory created in last step.
Download all the releases from SVN and verify the signature and checksum.
PMC approval
Send the voting mail in dev@servicecomb.apache.org for PMC approval.
Wait for 72 hours or unless you get 3 +1 binding vote with no -1 vote. If you get even one -1 binding vote then fix the issue and start again from Step 1.
Publish the result of the vote in dev@servicecomb.apache.org.
Announcements
Upload the releases to Apache release repository.
Wait for 24 hours to replicate the release in all the mirrors.
Delete old releases from dev and [release] (https://dist.apache.org/repos/dist/release) and check for the old release in archive, update the same links in the website for old releases.
Upload the release page of ServiceComb Website.
Send the announcement mails to dev@servicecomb.apache.org, announce@apache.org
Make and Verify the Release
git clone https://github.com/apache/servicecomb-saga.git
Cut the release using per command to replace all the versions in pom.xml files
Create a Tag from the master branch using the version number.
find . -name 'pom.xml'|xargs perl -pi -e 's/1.0.0-m2-SNAPSHOT/1.0.0-m2/g'
Clear all the redundant servicecomb releases in repository.apache.org
Add the keys in a reference folder.
Update the key path and passphrase in your ~/.m2/settings.xml file.
Update the apache account username and password in the settings.xml file.
Run the maven deploy command.
mvn deploy -DskipTests -Ppassphrase -Prelease
Once every thing is uploaded then use the staging repo to verify the build using the acceptance test.
Share the staging repo with peers to verify on different OS and machines using the demo.
If everything is fine then push the tag to master.
Close the staging repo is apache repositories.
Sign the Releases
Download the source code and distribution from the staging repo.
Sign the 2 releases(distribution, src) and checksum.
Create a new directory Apache dev Release SVN with release package name and release candidate number. (for example : if you want to release 1.0.0-m2 and this is the third attempt of the release then the folder structure will be 1.0.0-m2/rc03
)
Upload the release to directory created in last step.
Download all the releases from SVN and verify the signature and checksum.
PMC approval
Send the voting mail in dev@servicecomb.apache.org.
Wait for 72 hours or unless you get 3 +1 binding vote with no -1 vote. If you get even one -1 binding vote then fix the issue and start again from Step 1.
Publish the result of the vote in dev@servicecomb.apache.org.
Announcements
Upload the releases to Apache release repository.
Wait for 24 hours to replicate the release in all the mirrors.
Delete old releases from dev and [release] (https://dist.apache.org/repos/dist/release) and check for the old release in archive, update the same links in the website for old releases.
Upload the release page of ServiceComb Website.
Send the announcement mails to dev@servicecomb.apache.org, announce@apache.orgg
NOTE