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 "Tycho/Release Notes/1.2"

m
(New and Noteworthy)
Line 29: Line 29:
 
=== Testing ===
 
=== Testing ===
  
* Support for JUnit 5 is here! ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=522475 bug 522475])
+
* Support for '''JUnit 5''' is here! ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=522475 bug 522475])
 
**  We ported [https://github.com/junit-team/junit5/tree/master/junit-platform-surefire-provider junit-platform-surefire-provider] to Tycho. As soon as a test bundle requires any of the <tt>org.junit.jupiter.api.*</tt> packages, the JUnit 5 surefire provider is used, no need for explicit configuration in the default case.
 
**  We ported [https://github.com/junit-team/junit5/tree/master/junit-platform-surefire-provider junit-platform-surefire-provider] to Tycho. As soon as a test bundle requires any of the <tt>org.junit.jupiter.api.*</tt> packages, the JUnit 5 surefire provider is used, no need for explicit configuration in the default case.
 
** We added <tt>junit-vintage-engine</tt> so you can mix and match JUnit 5 and JUnit 4 tests in the same test bundle. This should ease gradual migration to JUnit 5
 
** We added <tt>junit-vintage-engine</tt> so you can mix and match JUnit 5 and JUnit 4 tests in the same test bundle. This should ease gradual migration to JUnit 5
 
** You can exclude or include test based on JUnit 5 tags, see the [http://git.eclipse.org/c/gerrit/tycho/org.eclipse.tycho.git/tree/tycho-its/projects/surefire.junit5/bundle.test/pom.xml#n31 JUnit 5 example test bundle] used by the integration tests
 
** You can exclude or include test based on JUnit 5 tags, see the [http://git.eclipse.org/c/gerrit/tycho/org.eclipse.tycho.git/tree/tycho-its/projects/surefire.junit5/bundle.test/pom.xml#n31 JUnit 5 example test bundle] used by the integration tests
 +
 +
== p2 and Dependency resolution ==
 +
 +
* Move to Equinox p2 Photon M6 ( {{bug|532775}} )
 +
** This adds sha-256 signatures to p2 metadata for downloadable artifacts
 +
** Publish OSGi capabilites as p2 requires/provides and take them into account during dependency resolution.
 +
** The [[../../Execution_Environments|execution environment]] (EE) is now published as a requirement and taken into account during dependency resolution. This change can introduce new errors when resolving dependencies, when building a bundle targeting an EE that's older than the one required by one of its dependencies. For example:
 +
<pre>
 +
[ERROR] Cannot resolve project dependencies:
 +
[ERROR]  Software being installed: org.eclipse.ui.cocoa 1.1.200.qualifier
 +
[ERROR]  Missing requirement: org.eclipse.core.jobs 3.10.0.qualifier requires 'osgi.ee; (&(osgi.ee=JavaSE)(version=1.8))' but it could not be found
 +
[ERROR]  Cannot satisfy dependency: org.eclipse.core.runtime 3.14.0.qualifier depends on: osgi.bundle; org.eclipse.core.jobs [3.2.0,4.0.0)
 +
[ERROR]  Cannot satisfy dependency: org.eclipse.ui 3.109.100.qualifier depends on: osgi.bundle; org.eclipse.core.runtime [3.2.0,4.0.0)
 +
[ERROR]  Cannot satisfy dependency: org.eclipse.ui.cocoa 1.1.200.qualifier depends on: osgi.bundle; org.eclipse.ui [3.5.0,4.0.0)
 +
</pre>
 +
As Tycho use bundle BREE to provision a EE during dependency resolution, every bundle that depends on other bundles with higher BREE will see a similar error, because newer EE will be missing to transitive deps during resolution. Either such "old BREE" bundles have to bump their BREE to keep in sync, or the pom.xml needs to be tweaked to force a newer EE at build-time for these bundles (or for the whole project), or <tt>target-platform-configuration</tt> must be tweaked to ignore EE requirements.
 +
* Default [[../../Execution_Environments|execution environment]], used when no better source in the module is found to decide it, is now <tt>JavaSE-9</tt>.
  
 
[[Category:Tycho|Release Notes/1.2]]
 
[[Category:Tycho|Release Notes/1.2]]

Revision as of 11:02, 19 April 2018

< Previous Version | Next Version >

SNAPSHOT builds

Tycho 1.2.0-SNAPSHOT is currently in development. To try out the most recent snapshot build, simply add the following snippet to your (parent) pom.xml or settings.xml, and set the property for the Tycho version (e.g. tycho-version) to 1.2.0-SNAPSHOT.

<pluginRepositories>
    <pluginRepository>
      <id>tycho-snapshots</id>
      <url>https://repo.eclipse.org/content/repositories/tycho-snapshots/</url>
    </pluginRepository>
</pluginRepositories>

SNAPSHOT site docs

Refer to the latest SNAPSHOT site docs for Tycho and Tycho Extras.


New and Noteworthy

Complete list of bug fixes and enhancements in 1.2.0-SNAPSHOT

Testing

  • Support for JUnit 5 is here! (bug 522475)
    • We ported junit-platform-surefire-provider to Tycho. As soon as a test bundle requires any of the org.junit.jupiter.api.* packages, the JUnit 5 surefire provider is used, no need for explicit configuration in the default case.
    • We added junit-vintage-engine so you can mix and match JUnit 5 and JUnit 4 tests in the same test bundle. This should ease gradual migration to JUnit 5
    • You can exclude or include test based on JUnit 5 tags, see the JUnit 5 example test bundle used by the integration tests

p2 and Dependency resolution

  • Move to Equinox p2 Photon M6 ( bug 532775 )
    • This adds sha-256 signatures to p2 metadata for downloadable artifacts
    • Publish OSGi capabilites as p2 requires/provides and take them into account during dependency resolution.
    • The execution environment (EE) is now published as a requirement and taken into account during dependency resolution. This change can introduce new errors when resolving dependencies, when building a bundle targeting an EE that's older than the one required by one of its dependencies. For example:
[ERROR] Cannot resolve project dependencies:
[ERROR]   Software being installed: org.eclipse.ui.cocoa 1.1.200.qualifier
[ERROR]   Missing requirement: org.eclipse.core.jobs 3.10.0.qualifier requires 'osgi.ee; (&(osgi.ee=JavaSE)(version=1.8))' but it could not be found
[ERROR]   Cannot satisfy dependency: org.eclipse.core.runtime 3.14.0.qualifier depends on: osgi.bundle; org.eclipse.core.jobs [3.2.0,4.0.0)
[ERROR]   Cannot satisfy dependency: org.eclipse.ui 3.109.100.qualifier depends on: osgi.bundle; org.eclipse.core.runtime [3.2.0,4.0.0)
[ERROR]   Cannot satisfy dependency: org.eclipse.ui.cocoa 1.1.200.qualifier depends on: osgi.bundle; org.eclipse.ui [3.5.0,4.0.0)

As Tycho use bundle BREE to provision a EE during dependency resolution, every bundle that depends on other bundles with higher BREE will see a similar error, because newer EE will be missing to transitive deps during resolution. Either such "old BREE" bundles have to bump their BREE to keep in sync, or the pom.xml needs to be tweaked to force a newer EE at build-time for these bundles (or for the whole project), or target-platform-configuration must be tweaked to ignore EE requirements.

  • Default execution environment, used when no better source in the module is found to decide it, is now JavaSE-9.

Back to the top