Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Releasing Tycho"

Line 1: Line 1:
 
This page describes the steps necessary to create releases of the Tycho project.  
 
This page describes the steps necessary to create releases of the Tycho project.  
  
# Make sure all bugs have the correct target milestone for this release
+
# Make sure all fixed issues and merged PRs have the correct milestone for this release
# Schedule a new release and generate the IP log on [https://projects.eclipse.org/projects/technology.tycho projects.eclipse.org]  
+
# Declare release on [https://projects.eclipse.org/projects/technology.tycho projects.eclipse.org]  
# Prepare the [[Tycho/Release Notes]] which should provide a quick overview of new features and bug fixes  
+
# Prepare the [https://github.com/eclipse/tycho/blob/master/RELEASE_NOTES.md release notes] which should provide a quick overview of new features and bug fixes  
 
# Link the N&N to the [https://projects.eclipse.org/projects/technology.tycho release review]
 
# Link the N&N to the [https://projects.eclipse.org/projects/technology.tycho release review]
# At least once per year, a review is required. In that case, send [mailto:technology-pmc@eclipse.org?subject=release%20review%20docs%20for%20Eclipse%20Tycho&body=Hi%20PMC%20members,%0A%0Aplease%20approve%20release%20review%20docs%20for%20Tycho%20VERSION%0A%0Ahttps://projects.eclipse.org/projects/technology.tycho/releases/VERSION%0A%0ABest%20Regards,%0ATycho%20team email to technology-pmc@eclipse.org] to review the release docs.
 
 
# Update versions using <br/><tt>mvn org.eclipse.tycho:tycho-versions-plugin:set-version -DnewVersion=...</tt>  
 
# Update versions using <br/><tt>mvn org.eclipse.tycho:tycho-versions-plugin:set-version -DnewVersion=...</tt>  
 
# Commit version change, and create a git tag <tt>tycho-&lt;VERSION&gt;</tt> on this commit   
 
# Commit version change, and create a git tag <tt>tycho-&lt;VERSION&gt;</tt> on this commit   
Line 30: Line 29:
 
# When previous <tt>mvn</tt> command is complete, generate site docs using <tt>mvn install site site:stage -DskipTests</tt> and check the result from <tt>target/staging</tt> seems viable.
 
# When previous <tt>mvn</tt> command is complete, generate site docs using <tt>mvn install site site:stage -DskipTests</tt> and check the result from <tt>target/staging</tt> seems viable.
 
# On https://oss.sonatype.org/#stagingRepositories , Close the staging repository, get the staging repo URL from Nexus
 
# On https://oss.sonatype.org/#stagingRepositories , Close the staging repository, get the staging repo URL from Nexus
# Update http://wiki.eclipse.org/Tycho/Release_Notes/x.y.z to replace reference to snapshot build to reference to staging repo
+
# Update [https://github.com/eclipse/tycho/blob/master/RELEASE_NOTES.md release notes] to replace reference to snapshot build to reference to staging repo
 
# Announce the temporary stage URL on tycho-user@eclipse.org:
 
# Announce the temporary stage URL on tycho-user@eclipse.org:
 
<pre>
 
<pre>
Line 59: Line 58:
 
# Wait for artifacts to be available on Maven central.
 
# Wait for artifacts to be available on Maven central.
 
# Push the release tags to git: <tt>git push origin --tags</tt>
 
# Push the release tags to git: <tt>git push origin --tags</tt>
# Update http://wiki.eclipse.org/Tycho/Release_Notes/x.y.z to remove reference to staging repo
+
# Update [https://github.com/eclipse/tycho/blob/master/RELEASE_NOTES.md release notes] to remove reference to staging repo
 
# Browse the [[:Category:Tycho|Tycho wiki pages]] to update any hardcoded tycho versions to the latest version  
 
# Browse the [[:Category:Tycho|Tycho wiki pages]] to update any hardcoded tycho versions to the latest version  
 
# Merge the update to <tt>org.eclipse.tycho-demo</tt> and website in Gerrit
 
# Merge the update to <tt>org.eclipse.tycho-demo</tt> and website in Gerrit
Line 75: Line 74:
  
 
See the release notes  
 
See the release notes  
[1] http://wiki.eclipse.org/Tycho/Release_Notes/&lt;n&gt; for details of enhancements and bug fixes in this release.
+
[1] https://github.com/eclipse/tycho/blob/master/RELEASE_NOTES.md#n for details of enhancements and bug fixes in this release.
  
 
Thanks to  
 
Thanks to  

Revision as of 05:30, 9 July 2021

This page describes the steps necessary to create releases of the Tycho project.

  1. Make sure all fixed issues and merged PRs have the correct milestone for this release
  2. Declare release on projects.eclipse.org
  3. Prepare the release notes which should provide a quick overview of new features and bug fixes
  4. Link the N&N to the release review
  5. Update versions using
    mvn org.eclipse.tycho:tycho-versions-plugin:set-version -DnewVersion=...
  6. Commit version change, and create a git tag tycho-<VERSION> on this commit
  7. Update versions (same as above) to next -SNAPSHOT development version and push commit to master branch
  8. Create the new version and milestone in the bugzilla manager
  9. Make sure you have everything setup (GPG installed!) for deploying to the Nexus OSS repository, see guide
  10. Add your credentials for server sonatype-nexus-staging in ~/.m2/settings.xml
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
   <!-- ... -->
   <servers>
    <server>
      <id>sonatype-nexus-staging</id>
      <username>mickael.istria</username>
      <password>securePassword</password> <!-- use `mvn --encrypt-password` to not store plain text -->
    </server>
    <!-- ... -->
   </servers>
</settings>
  1. Checkout the tag version tycho-<VERSION> so current commit is the tag.
  2. Sync to release commit and deploy to nexus staging repository:
    mvn clean deploy -Prelease -DforgeReleaseId=sonatype-nexus-staging -DforgeReleaseUrl=https://oss.sonatype.org/service/local/staging/deploy/maven2/
  3. In parallel of previous mvn command, prepare update tycho-demo projects to the latest release and push the change as a review to Gerrit
  4. When previous mvn command is complete, generate site docs using mvn install site site:stage -DskipTests and check the result from target/staging seems viable.
  5. On https://oss.sonatype.org/#stagingRepositories , Close the staging repository, get the staging repo URL from Nexus
  6. Update release notes to replace reference to snapshot build to reference to staging repo
  7. Announce the temporary stage URL on tycho-user@eclipse.org:
Subject: please test staged tycho <VERSION>

Tycho release <VERSION&> has been staged. For details of new features and bugfixes, see release notes [1].
Please help by testing the staged build. To use it, change your tycho version to <VERSION> and add snippet [2] to your pom.

We plan to promote this release in one week unless major regressions are found.

Regards,
Tycho team

[1] http://wiki.eclipse.org/Tycho/Release_Notes/<VERSION>
[2]
  <pluginRepositories>
    <pluginRepository>
      <id>tycho-staged</id>
      <url><NEXUS_OSS_STAGING_URL></url
    </pluginRepository>
  </pluginRepositories>
  1. Prepare documentation on the webite, using git repo https://git.eclipse.org/c/www.eclipse.org/tycho.git/ : copy the local site docs folders target/staging/sitedocs to the existing sitedocs folder and then submit as Gerrit review (don't merge yet)

... Wait until review date (usually a week later)...

  1. After ~1 week of testing, promote the stage repository on https://oss.sonatype.org/
  2. Wait for artifacts to be available on Maven central.
  3. Push the release tags to git: git push origin --tags
  4. Update release notes to remove reference to staging repo
  5. Browse the Tycho wiki pages to update any hardcoded tycho versions to the latest version
  6. Merge the update to org.eclipse.tycho-demo and website in Gerrit
  7. Announce the release
    1. Find out who contributed to the release:
git log --pretty=format:%an tycho-<previousVersion>..tycho-<newVersion> | sort | uniq
git log --grep="Also-[bB]y:" tycho-<previousVersion>..tycho-<newVersion> | grep -i also-by | sed -e 's/.*Also-[bB]y:\s*\(.*\)/\1/' | sort | uniq
    1. Announce the release on tycho-user@eclipse.org, tycho-dev@eclipse.org, thanking the contributors:
Subject: Tycho <n> released

Tycho <n> has been released and is available from Maven Central repository.

See the release notes 
[1] https://github.com/eclipse/tycho/blob/master/RELEASE_NOTES.md#n for details of enhancements and bug fixes in this release.

Thanks to 
<contributors>
who contributed patches for this release, and thanks and to everyone who helped us with testing the staged version.

Regards,

    1. Optionally, announce on other medias (Twitter)
    2. Create, push and merge patch changing the bootstrap Tycho version for Tycho build (eg https://git.eclipse.org/r/c/tycho/org.eclipse.tycho/+/174964 )

Back to the top