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"

m
(4 intermediate revisions by the same user not shown)
Line 4: Line 4:
 
# Schedule a new release and generate the IP log on [https://projects.eclipse.org/projects/technology.tycho projects.eclipse.org]  
 
# Schedule a new release and generate the IP log 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 [[Tycho/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] and 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. *# # Steps below apply to both [http://git.eclipse.org/c/tycho/org.eclipse.tycho.git/ tycho] and [http://git.eclipse.org/c/tycho/org.eclipse.tycho.extras.git/ tycho-extras] git repositories as these should normally be released together and with the same version
+
# 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> (and <tt>tycho-extras-&lt;VERSION&gt;</tt> respectively) on this commit   
+
# Commit version change, and create a git tag <tt>tycho-&lt;VERSION&gt;</tt> on this commit   
 
# Update versions (same as above) to next <tt>-SNAPSHOT</tt> development version and push commit to <tt>master</tt> branch  
 
# Update versions (same as above) to next <tt>-SNAPSHOT</tt> development version and push commit to <tt>master</tt> branch  
 
# Create the new version and milestone in the [https://dev.eclipse.org/committers/bugs/bugz_manager.php bugzilla manager]
 
# Create the new version and milestone in the [https://dev.eclipse.org/committers/bugs/bugz_manager.php bugzilla manager]
Line 24: Line 25:
 
</settings>
 
</settings>
 
</source>
 
</source>
# Checkout the tag versions for both <tt>tycho-&lt;VERSION&gt;</tt> (and <tt>tycho-extras-&lt;VERSION&gt;</tt> so current commit is the tag.
+
# Checkout the tag version <tt>tycho-&lt;VERSION&gt;</tt> so current commit is the tag.
# Sync to release commit and deploy to nexus staging repository: <br/><tt>mvn clean deploy -Prelease -DforgeReleaseId=&lt;OSS_ID&gt; -DforgeReleaseUrl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -Dgpg.passphrase=&lt;YOUR_GPG_PASSPAHRASE&gt;</tt>
+
# Sync to release commit and deploy to nexus staging repository: <br/><tt>mvn clean deploy -Prelease -DforgeReleaseId=sonatype-nexus-staging -DforgeReleaseUrl=https://oss.sonatype.org/service/local/staging/deploy/maven2/</tt>
# Prepare update [http://git.eclipse.org/c/tycho/org.eclipse.tycho-demo.git/ tycho-demo projects] to the latest release and push the change as a review to Gerrit
+
# Generate site docs using <tt>mvn clean install site site:stage</tt> and check the result from <tt>target/staging</tt>
# Generate site docs for both tycho and tycho-extras using <tt>mvn clean install site site:stage</tt> and check the result in to [http://www.eclipse.org/tycho/sitedocs tycho homepage site docs]
+
 
# On https://oss.sonatype.org/#stagingRepositories , Close the staging repository and announce the temporary stage URL on tycho-user@eclipse.org:
 
# On https://oss.sonatype.org/#stagingRepositories , Close the staging repository and announce the temporary stage URL on tycho-user@eclipse.org:
 
<pre>
 
<pre>
Line 49: Line 49:
 
   </pluginRepositories>
 
   </pluginRepositories>
 
</pre>
 
</pre>
 +
# Prepare update [http://git.eclipse.org/c/tycho/org.eclipse.tycho-demo.git/ tycho-demo projects] to the latest release and push the change as a review to Gerrit
 +
# Prepare Update yo the webite, using git repo https://git.eclipse.org/c/www.eclipse.org/tycho.git/
 +
## Change versions on main page
 +
## Update the New and Noteworthy section
 +
## Prepare sitedocs: Copy the local site docs folders <tt>target/staging/sitedocs</tt> to the existing <tt>sitedocs</tt> folder
 +
## Submit those change as Gerrit review (don't merge yet)
 
# ... Wait until review date (usually a week later)...
 
# ... Wait until review date (usually a week later)...
 
# After ~1 week of testing, promote the stage repository on https://oss.sonatype.org/
 
# After ~1 week of testing, promote the stage repository on https://oss.sonatype.org/
Line 54: Line 60:
 
# Push the release tags to git: <tt>git push origin --tags</tt>
 
# Push the release tags to git: <tt>git push origin --tags</tt>
 
# 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> in Gerrit ( https://git.eclipse.org/r/#/q/project:tycho/org.eclipse.tycho-demo+status:open )
+
# Merge the update to <tt>org.eclipse.tycho-demo</tt> and website in Gerrit
# Update the webite (using <tt>www.eclipse.org/tycho</tt> Git repo)
+
## Update the [http://www.eclipse.org/tycho tycho homepage new and noteworthy section]
+
## Copy the local site docs folders target/staging/sitedocs and target/staging/sitedocs-extras to the website
+
 
# Prepare next stream
 
# Prepare next stream
 
## Set versions in <n+1>-SNAPSHOT
 
## Set versions in <n+1>-SNAPSHOT
Line 63: Line 66:
 
## When green, merge <tt>org.eclipse.tycho</tt> change
 
## When green, merge <tt>org.eclipse.tycho</tt> change
 
## Then build https://ci.eclipse.org/tycho/job/tycho-build/
 
## Then build https://ci.eclipse.org/tycho/job/tycho-build/
## (Re)build Gerrit trigger for <tt>org.eclipse.tycho.extras</tt>
+
# Announce the release
## Then buld https://ci.eclipse.org/tycho/job/tycho.extras<
+
## Find out who contributed to the release:  
-build/
+
# Find out who contributed to the release:  
+
 
<pre>
 
<pre>
 
git log --pretty=format:%an tycho-0.<n>..tycho-0.<n+1> | sort | uniq
 
git log --pretty=format:%an tycho-0.<n>..tycho-0.<n+1> | sort | uniq
 
git log --grep="Also-[bB]y:" tycho-0.<n>..tycho-0.<n+1> | grep -i also-by | sed -e 's/.*Also-[bB]y:\s*\(.*\)/\1/' | sort | uniq
 
git log --grep="Also-[bB]y:" tycho-0.<n>..tycho-0.<n+1> | grep -i also-by | sed -e 's/.*Also-[bB]y:\s*\(.*\)/\1/' | sort | uniq
 
</pre>
 
</pre>
# Announce the release on tycho-user@eclipse.org, tycho-dev@eclipse.org, thanking the contributors:
+
## Announce the release on tycho-user@eclipse.org, tycho-dev@eclipse.org, thanking the contributors:
 
<pre>
 
<pre>
 
Subject: Tycho &lt;n&gt; released
 
Subject: Tycho &lt;n&gt; released
Line 92: Line 93:
 
[1] http://wiki.eclipse.org/Tycho/Release_Notes/&lt;n&gt;
 
[1] http://wiki.eclipse.org/Tycho/Release_Notes/&lt;n&gt;
 
</pre>
 
</pre>
 +
## Optionally, announce on other medias (Twitter)
  
  
 
[[Category:Tycho]]
 
[[Category:Tycho]]

Revision as of 05:58, 7 November 2019

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

  1. Make sure all bugs have the correct target milestone for this release
  2. Schedule a new release and generate the IP log on projects.eclipse.org
  3. Prepare the Tycho/Release Notes which should provide a quick overview of new features and bug fixes
  4. Link the N&N to the release review
  5. At least once per year, a review is required. In that case, send email to technology-pmc@eclipse.org to review the release docs.
  6. Update versions using
    mvn org.eclipse.tycho:tycho-versions-plugin:set-version -DnewVersion=...
  7. Commit version change, and create a git tag tycho-<VERSION> on this commit
  8. Update versions (same as above) to next -SNAPSHOT development version and push commit to master branch
  9. Create the new version and milestone in the bugzilla manager
  10. Make sure you have everything setup (GPG installed!) for deploying to the Nexus OSS repository, see guide
  11. 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. Generate site docs using mvn clean install site site:stage and check the result from target/staging
  4. On https://oss.sonatype.org/#stagingRepositories , Close the staging repository and 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 update tycho-demo projects to the latest release and push the change as a review to Gerrit
  2. Prepare Update yo the webite, using git repo https://git.eclipse.org/c/www.eclipse.org/tycho.git/
    1. Change versions on main page
    2. Update the New and Noteworthy section
    3. Prepare sitedocs: Copy the local site docs folders target/staging/sitedocs to the existing sitedocs folder
    4. Submit those change as Gerrit review (don't merge yet)
  3. ... Wait until review date (usually a week later)...
  4. After ~1 week of testing, promote the stage repository on https://oss.sonatype.org/
    1. Only drop the staging repository once the artifacts have reached Maven central.
  5. Push the release tags to git: git push origin --tags
  6. Browse the Tycho wiki pages to update any hardcoded tycho versions to the latest version
  7. Merge the update to org.eclipse.tycho-demo and website in Gerrit
  8. Prepare next stream
    1. Set versions in <n+1>-SNAPSHOT
    2. Commit to Gerrit
    3. When green, merge org.eclipse.tycho change
    4. Then build https://ci.eclipse.org/tycho/job/tycho-build/
  9. Announce the release
    1. Find out who contributed to the release:
git log --pretty=format:%an tycho-0.<n>..tycho-0.<n+1> | sort | uniq
git log --grep="Also-[bB]y:" tycho-0.<n>..tycho-0.<n+1> | 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.

See the release notes [1] 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,
Tycho team

[1] http://wiki.eclipse.org/Tycho/Release_Notes/<n>
    1. Optionally, announce on other medias (Twitter)

Back to the top