Eclipse Tycho 6: Release notes
May 26, 2026 ยท View on GitHub
This page describes the noteworthy improvements provided by each release of Eclipse Tycho.
If you are reading this in the browser, then you can quickly jump to specific versions by using the rightmost button above the headline:
6.0.0 (under development)
new tycho-p2-extras:p2-manager mojo for managing P2 update sites
The new tycho-p2-extras:p2-manager goal provides a convenient way to maintain, update, and manage the integrity of public update sites. This mojo wraps the P2 Manager application from JustJ Tools and makes it much easier to use compared to the previous approach using the eclipse-run goal.
The P2 Manager helps with:
- Promoting builds to update sites (nightly, milestone, or release)
- Generating composite repositories
- Managing repository history and retention policies
- Creating browsable HTML pages for your update sites
- Maintaining repository integrity
<plugin>
<groupId>org.eclipse.tycho.extras</groupId>
<artifactId>tycho-p2-extras-plugin</artifactId>
<version>${tycho-version}</version>
<executions>
<execution>
<id>promote-build</id>
<goals>
<goal>p2-manager</goal>
</goals>
<configuration>
<root>${project.build.directory}/updatesite</root>
<promote>file:${project.build.directory}/repository</promote>
<timestamp>${maven.build.timestamp}</timestamp>
<type>nightly</type>
</configuration>
</execution>
</executions>
</plugin>
new tycho-test-plugin for unified testing of OSGi bundles
Historically Tycho has provided something similar to maven-surefire-plugin and also actually using it internally. This was to give a kind of "like maven" and as surefire is acting as an abstraction over different test-engines and offering a unified configuration, but this has had its shortcomings:
- surefire was never designed to run inside OSGi so we have to use several kinds of workarounds to mitigate for that fact
- as we need special setup and consideration, we never really extended the surefire mojo and only emulated to be similar to maven-surefire-plugin settings leading to slight diverging over time
- due to the design we often are bound to the specific test framework by a so called "provider" that helps in setting things up so it plays well with OSGi requirements and surefire demands
- In the meanwhile there are other techniques like junit-platform that offer similar features like surefire (e.g. the abstraction of test engines) or better integrate into OSGi (e.g. bnd-testing framework) and new features have to be implemented that are often missing.
This now introduces a new tycho-test-plugin to make clear it is no longer bound to surefire and open it up for a more unified testing of OSGi bundles, e.g. we might offer different implementations.
the new tycho-test:junit-platform mojo
With that new approach we now support a new tycho-test:junit-platform that integrates the tests-console-launcher into any OSGi Framework
what has several advantages over the previous approaches:
- As we are calling it via a commandline interface, this now makes Tycho completely independent from the used junit-framework version
- A better and more natural integration of selecting test-engines in the pom.xml or with the target platform
- You can use any of the junit provided test engines or new features that might be added
You can find a demo project [here}(https://github.com/eclipse-tycho/tycho/tree/main/demo/testing/junit-platform).
new tycho-wrap:verify to test a maven-project with a generated manifest can resolve
A common way to ensure compatibility and integration of java libraries is to enable the generation of an OSGi manifest automatically. As one can not expect such project to be OSGi experts there is often a problem that these do not feel comfortable with adding such without any mean to validate the outcome. Also it is often not obvious when using a new dependency if this would hinder integration with OSGi or to ensure the actual result is usable without complex and hard to maintain full blown integration-test scenarios that project hardly can handle over a long time.
This now introduces a new tycho-wrap:verify mojo that tries to fill the gap here between full integration testing and a basic validation with the intention to give clear hint how to handle issues.
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-wrap-plugin</artifactId>
<version>${tycho-version}</version>
<executions>
<execution>
<goals>
<goal>verify</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
</plugin>
A very important part here is that it is possible to ignore problems (either temporary or permanent) so it never completely blocks further development:
<execution>
<goals>
<goal>verify</goal>
</goals>
<phase>verify</phase>
<configuration>
<ignored>
<!-- This is currently not an OSGi bundle, we would need help from other to resolve the problem, so please feel free to suggest ways to fix this -->
<ignore>Import-Package: x.y.z</ignore>
<!-- We are working on this, will be fixed in next release cycle -->
<ignore>Import-Package: work.in.progress</ignore>
</ignored>
</configuration>
</execution>
This has likely to improve over time when we find new issues, or get feedback from users!
new tycho-sbom:generator mojo to create SBOM from existing products
While creating SBOMs for individual reactor projects is already possible It is often more useful to generate one for an actual deployed product, as these can be extended afterwards. Also there are some short comings when it comes to identify licenses.
There is currently an eclipse tool in development that allows feed with a product and then gathers a lot of information from different sources (e.g. maven central, clearly defined, ...) and generates a SBOM from that.
Tycho now supports calling this tool from CLI (e.g. mvn org.eclipse.tycho:tycho-sbom-plugin:6.0.0-SNAPSHOT:generator -Dinstallations=<some folder>) or as part of a maven build:
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-sbom-plugin</artifactId>
<version>${tycho-version}</version>
<executions>
<execution>
<id>generate-sbom</id>
<goals>
<goal>generator</goal>
</goals>
<configuration>
<installations>${project.build.directory}/target/myproducts</installations>
</configuration>
</execution>
</executions>
</plugin>
new tycho-dependency-tools:usage mojo to analyze target platform dependency usage
Managing target platform dependencies can be challenging, especially when it comes to identifying which dependencies are actually needed versus which can be removed.
The new tycho-dependency-tools:usage mojo helps solve this problem by analyzing the actual usage of dependencies from target platform definitions across all projects in the reactor.
This mojo compares the content of target definitions against what is actually used in your projects, making it easy to:
- Identify unused dependencies that can be safely removed
- See which dependencies are used directly versus indirectly (through transitive dependencies)
- Understand the relationship between target platform units and the projects that use them
You can run it from the command line:
mvn org.eclipse.tycho.extras:tycho-dependency-tools-plugin:6.0.0-SNAPSHOT:usage
The mojo supports two report layouts:
- tree (default): Organizes units by target file and location with a hierarchical view
- simple: One-line-per-unit format
You can switch layouts using the usage.layout property:
mvn org.eclipse.tycho.extras:tycho-dependency-tools-plugin:6.0.0-SNAPSHOT:usage -Dusage.layout=simple
For more detailed output showing which projects use each dependency, add the verbose flag:
mvn org.eclipse.tycho.extras:tycho-dependency-tools-plugin:6.0.0-SNAPSHOT:usage -Dverbose=true
Migration Guide 5.x > 6.x
5.x
For release notes of the Tycho 5 see here
4.x
For release notes of the Tycho 4 see here
3.x
For release notes of the Tycho 3 see here
2.x
For release notes of the Tycho 2 see here