Jump to: navigation, search

Difference between revisions of "Tycho/Release Notes/0.19"

(Test Execution)
(new logging for p2 artifact downloads)
(6 intermediate revisions by one other user not shown)
Line 3: Line 3:
 
   #versionNav{ position:absolute; top: 0px; right: 0px; margin-right: 1em; font-size: 84%; line-height: 1.2em; color: rgb(125, 125, 125); }
 
   #versionNav{ position:absolute; top: 0px; right: 0px; margin-right: 1em; font-size: 84%; line-height: 1.2em; color: rgb(125, 125, 125); }
 
</css>  
 
</css>  
<div id="versionNav">[[Tycho/Release Notes/0.18|&lt; Previous Version]] | Next Version &gt;</div>  
+
<div id="versionNav">[[Tycho/Release Notes/0.18|&lt; Previous Version]] | [[Tycho/Release Notes/0.20|Next Version &gt;]]</div>  
Tycho 0.19.0 is currently under development. This page shows a preview of features which will be available in the 0.19.0 milestone.
+
  
[https://bugs.eclipse.org/bugs/buglist.cgi?classification=Technology&product=Tycho&query_format=advanced&resolution=FIXED&target_milestone=0.19.0&order=bug_id&query_based_on= List of bug fixes and enhancements in 0.19.0]  
+
[https://bugs.eclipse.org/bugs/buglist.cgi?classification=Technology&product=Tycho&query_format=advanced&resolution=FIXED&target_milestone=0.19.0&order=bug_id&query_based_on= Detailed list of bug fixes and enhancements in 0.19.0]  
 
+
== SNAPSHOT builds ==
+
 
+
To try out the most recent snapshot build of 0.19.0, simply add the following snippet to your (parent) pom.xml, and set the property for the Tycho version (e.g. <tt>tycho-version</tt>) to <tt>0.19.0-SNAPSHOT</tt>.
+
+
<pre>
+
&lt;pluginRepositories&gt;
+
  &lt;pluginRepository&gt;
+
    &lt;id&gt;tycho-snapshots&lt;/id&gt;
+
    &lt;url&gt;https://oss.sonatype.org/content/groups/public/&lt;/url&gt;
+
  &lt;/pluginRepository&gt;
+
&lt;/pluginRepositories&gt;
+
</pre>
+
 
+
=== SNAPSHOT site docs ===
+
 
+
Refer to the [https://hudson.eclipse.org/tycho/job/tycho-sitedocs/ws/target/staging/index.html latest SNAPSHOT site docs for Tycho] and [https://hudson.eclipse.org/tycho/job/tycho-extras-sitedocs/ws/target/staging/index.html Tycho Extras].
+
  
 
== New and Noteworthy  ==
 
== New and Noteworthy  ==
Line 32: Line 14:
 
* (INCOMPATIBLE CHANGE) <tt>system</tt>-scoped pom dependencies will now be ignored if used with <tt>pomDependencies=consider</tt> ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=415774 bug 415774]). <br/>This corner case was supported only half-way anyway. If you absolutely have to use local-only jars with <tt>pomDependencies=consider</tt>, use e.g. [http://maven.apache.org/plugins/maven-install-plugin/ mvn install:install-file] instead which will allow to reference them as normal (compile-scoped) pom dependencies without a hardcoded filesystem path.
 
* (INCOMPATIBLE CHANGE) <tt>system</tt>-scoped pom dependencies will now be ignored if used with <tt>pomDependencies=consider</tt> ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=415774 bug 415774]). <br/>This corner case was supported only half-way anyway. If you absolutely have to use local-only jars with <tt>pomDependencies=consider</tt>, use e.g. [http://maven.apache.org/plugins/maven-install-plugin/ mvn install:install-file] instead which will allow to reference them as normal (compile-scoped) pom dependencies without a hardcoded filesystem path.
 
* <tt>Bundle-ClassPath: external:...</tt> MANIFEST entries in referenced bundles no longer fail the build, but will be ignored with a warning now ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=370958 bug 370958])
 
* <tt>Bundle-ClassPath: external:...</tt> MANIFEST entries in referenced bundles no longer fail the build, but will be ignored with a warning now ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=370958 bug 370958])
 +
* The logging of download problems for artifacts from p2 repositories has been significantly improved.
  
 
=== Test Execution ===
 
=== Test Execution ===
Line 68: Line 51:
 
Note that <tt>testRuntime=p2Installed</tt> currently only works when testing products.
 
Note that <tt>testRuntime=p2Installed</tt> currently only works when testing products.
 
You can also run tests on existing product archives built elsewhere. To do this, just make sure to extract the product archive into <tt>target/work</tt> before the tests are run(i.e. in a [http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference phase] prior to <tt>integration-test</tt>).
 
You can also run tests on existing product archives built elsewhere. To do this, just make sure to extract the product archive into <tt>target/work</tt> before the tests are run(i.e. in a [http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference phase] prior to <tt>integration-test</tt>).
See [https://hudson.eclipse.org/tycho/job/tycho-sitedocs/ws/target/staging/tycho-surefire/tycho-surefire-plugin/test-mojo.html#testRuntime site docs] for details.
+
See [http://eclipse.org/tycho/sitedocs/tycho-surefire/tycho-surefire-plugin/test-mojo.html#testRuntime site docs] for details.
 
</li>
 
</li>
<li> Add suppport for [https://hudson.eclipse.org/tycho/job/tycho-sitedocs/ws/target/staging/tycho-surefire/tycho-surefire-plugin/test-mojo.html#runOrder runOrder] parameter in tycho-surefire-plugin to run tests in random order ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=409923 bug 409923])</li>
+
<li> Add suppport for [http://eclipse.org/tycho/sitedocs/tycho-surefire/tycho-surefire-plugin/test-mojo.html#runOrder runOrder] parameter in tycho-surefire-plugin to run tests in random order ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=409923 bug 409923])</li>
 
<li>To avoid OSGi framework restarts caused by stale bundle cache entries (e.g. if maven <tt>clean</tt> phase is omitted), the OSGi test runtime is now launched with <tt>-Dosgi.clean=true</tt> by default ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=415489 bug 415489])</li>
 
<li>To avoid OSGi framework restarts caused by stale bundle cache entries (e.g. if maven <tt>clean</tt> phase is omitted), the OSGi test runtime is now launched with <tt>-Dosgi.clean=true</tt> by default ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=415489 bug 415489])</li>
 
</ul></p>
 
</ul></p>
Line 81: Line 64:
  
 
<p><ul>
 
<p><ul>
<li>The versions of JDT, p2 and Equinox used by Tycho have been updated to Kepler SR1 ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=418998 bug 418998])</li>
 
 
<li> <tt>tycho-version-plugin:set-version</tt> now also updates versions of exported packages, when the packages have the same version as the bundle version without qualifier.</li>
 
<li> <tt>tycho-version-plugin:set-version</tt> now also updates versions of exported packages, when the packages have the same version as the bundle version without qualifier.</li>
 
<li> [[Tycho/Reproducible Version Qualifiers|Reproducible version qualifiers based on git commit timestamps]] ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=402949 bug 402949])
 
<li> [[Tycho/Reproducible Version Qualifiers|Reproducible version qualifiers based on git commit timestamps]] ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=402949 bug 402949])
Line 114: Line 96:
 
* (INCOMPATIBLE CHANGE) [[Tycho/FAQ#Can_I_use_the_Tycho_compiler_support_in_non-OSGi_projects.2C_too.3F| plugging Tycho's JDT compiler into maven-compiler-plugin]] 2.x is no longer supported due to incompatible plexus compiler API changes
 
* (INCOMPATIBLE CHANGE) [[Tycho/FAQ#Can_I_use_the_Tycho_compiler_support_in_non-OSGi_projects.2C_too.3F| plugging Tycho's JDT compiler into maven-compiler-plugin]] 2.x is no longer supported due to incompatible plexus compiler API changes
 
</li>
 
</li>
 +
<li>The versions of JDT, p2 and Equinox used by Tycho have been updated to Kepler SR1 ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=418998 bug 418998])</li>
 
</ul></p>
 
</ul></p>
  
 
[[Category:Tycho|Release Notes/0.19]]
 
[[Category:Tycho|Release Notes/0.19]]

Revision as of 09:23, 28 October 2013

Detailed list of bug fixes and enhancements in 0.19.0

New and Noteworthy

Target Platform & Dependency Resolution

  • (INCOMPATIBLE CHANGE) The syntax for specifying profile properties during dependency resolution was changed to the normal <key>value</key> syntax. See bug 412283 for an example.
  • (INCOMPATIBLE CHANGE) system-scoped pom dependencies will now be ignored if used with pomDependencies=consider (bug 415774).
    This corner case was supported only half-way anyway. If you absolutely have to use local-only jars with pomDependencies=consider, use e.g. mvn install:install-file instead which will allow to reference them as normal (compile-scoped) pom dependencies without a hardcoded filesystem path.
  • Bundle-ClassPath: external:... MANIFEST entries in referenced bundles no longer fail the build, but will be ignored with a warning now (bug 370958)
  • The logging of download problems for artifacts from p2 repositories has been significantly improved.

Test Execution

  • Add experimental support for test runtime provisioned by p2.
    This can be used for integration test scenarios which require a fully provisioned application (including root files, start levels, etc.), same as it would be delivered to customers.
    Example: To install product under test with ID "example.product.id", test bundle and tycho surefire test harness bundles using the p2 director, use the following pom.xml snippet in the test module:
    <plugin>
       <groupId>org.eclipse.tycho</groupId>
       <artifactId>tycho-surefire-plugin</artifactId>
       <version>${tycho-version}</version>
       <configuration>
          <testRuntime>p2Installed</testRuntime>
       </configuration>
    </plugin>
    <plugin>
       <groupId>org.eclipse.tycho</groupId>
       <artifactId>target-platform-configuration</artifactId>
       <version>${tycho-version}</version>
       <configuration>
          <dependency-resolution>
             <extraRequirements>
                <!-- add dependency  to product IU under test -->
                <requirement>
                   <type>p2-installable-unit</type>
                   <id>example.product.id</id>
                   <versionRange>0.0.0</versionRange>
                </requirement>
             </extraRequirements>
          </dependency-resolution>
       </configuration>
    </plugin>
    

    Note that testRuntime=p2Installed currently only works when testing products. You can also run tests on existing product archives built elsewhere. To do this, just make sure to extract the product archive into target/work before the tests are run(i.e. in a phase prior to integration-test). See site docs for details.

  • Add suppport for runOrder parameter in tycho-surefire-plugin to run tests in random order (bug 409923)
  • To avoid OSGi framework restarts caused by stale bundle cache entries (e.g. if maven clean phase is omitted), the OSGi test runtime is now launched with -Dosgi.clean=true by default (bug 415489)

Packaging

Other

  • tycho-version-plugin:set-version now also updates versions of exported packages, when the packages have the same version as the bundle version without qualifier.
  • Reproducible version qualifiers based on git commit timestamps (bug 402949)
    • (INCOMPATIBLE CHANGE) By default, any uncommitted local changes will now fail the build to ensure reproducibility.
    • Configuration option jgit.dirtyWorkingTree allows to control behaviour in case of uncommitted changes detected for a module:
      • error (default): fail the build if git status is not clean. This is useful for production builds to make sure the commit timestamp build qualifier used is really reproducible
      • warning: warn about any uncommitted changes and use the current build timestamp as build qualifier for the "dirty" module. This is useful for local builds with uncommitted changes.
      • ignore: do not check whether git status is clean and use the timestamp of the last git commit as build qualifier regardless of uncommitted changes done on top. This can be used in case jgit should report a false positive dirty working tree or in case you want to restore pre-0.19.0 behaviour.
    Sample configuration:
    <plugin>
       <groupId>org.eclipse.tycho</groupId>
       <artifactId>tycho-packaging-plugin</artifactId>
       <version>${tycho.version}</version>
       <dependencies>
          <dependency>
             <groupId>org.eclipse.tycho.extras</groupId>
             <artifactId>tycho-buildtimestamp-jgit</artifactId>
             <version>${tycho-extras.version}</version>
          </dependency>
       </dependencies>
       <configuration>
          <timestampProvider>jgit</timestampProvider>
          <jgit.dirtyWorkingTree>warning</jgit.dirtyWorkingTree>
       </configuration>
    </plugin>
    
  • Port tycho's JDT compiler to maven-compiler-plugin 3.x (bug 405385)
  • The versions of JDT, p2 and Equinox used by Tycho have been updated to Kepler SR1 (bug 418998)