Jump to: navigation, search

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

(Other)
(reformatted (use html tags so that pre are indented within lists))
Line 29: Line 29:
 
=== Test Execution ===
 
=== Test Execution ===
  
* Add experimental support for test runtime provisioned by p2.<p> This can be used for integration test scenarios which require a fully provisioned application (including root files etc.), same as it would be delivered to customers. Example:<br/>
+
<p><ul>
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:
+
<li> 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.  
 +
<br/>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:
 
<pre>
 
<pre>
 
<plugin>
 
<plugin>
<groupId>org.eclipse.tycho</groupId>
+
  <groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-surefire-plugin</artifactId>
+
  <artifactId>tycho-surefire-plugin</artifactId>
<version>${tycho-version}</version>
+
  <version>${tycho-version}</version>
<configuration>
+
  <configuration>
<testRuntime>p2Installed</testRuntime>
+
      <testRuntime>p2Installed</testRuntime>
</configuration>
+
  </configuration>
 
</plugin>
 
</plugin>
 
<plugin>
 
<plugin>
<groupId>org.eclipse.tycho</groupId>
+
  <groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
+
  <artifactId>target-platform-configuration</artifactId>
<version>${tycho-version}</version>
+
  <version>${tycho-version}</version>
<configuration>
+
  <configuration>
<dependency-resolution>
+
      <dependency-resolution>
<extraRequirements>
+
        <extraRequirements>
<!-- add dependency  to product IU under test -->
+
            <!-- add dependency  to product IU under test -->
<requirement>
+
            <requirement>
<type>p2-installable-unit</type>
+
              <type>p2-installable-unit</type>
<id>example.product.id</id>
+
              <id>example.product.id</id>
<versionRange>0.0.0</versionRange>
+
              <versionRange>0.0.0</versionRange>
</requirement>
+
            </requirement>
</extraRequirements>
+
        </extraRequirements>
</dependency-resolution>
+
      </dependency-resolution>
</configuration>
+
  </configuration>
 
</plugin>
 
</plugin>
 
</pre>
 
</pre>
Line 62: Line 63:
 
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 docs &lt;TODO link to maven site&gt; for details.
 
See docs &lt;TODO link to maven site&gt; for details.
 
+
</li>
* Add suppport for '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> Add suppport for '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>
 +
</ul></p>
  
 
=== Other ===
 
=== Other ===
  
* <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.
+
<p><ul>
* [[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> <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>
** (INCOMPATIBLE CHANGE) By default, any uncommitted local changes will now fail the build (this was never meant to be supported)
+
<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])
** Configuration option <tt>jgit.dirtyWorkingTree</tt> allows to control behaviour in case of uncommitted changes detected for a module:
+
* (INCOMPATIBLE CHANGE) By default, any uncommitted local changes will now fail the build (this was never meant to be supported)
*** error (default): fail the build if <tt>git status</tt> is not clean. This is useful for production builds to make sure the commit timestamp build qualifier used is really reproducible
+
* Configuration option <tt>jgit.dirtyWorkingTree</tt> allows to control behaviour in case of uncommitted changes detected for a module:
*** 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.
+
** error (default): fail the build if <tt>git status</tt> is not clean. This is useful for production builds to make sure the commit timestamp build qualifier used is really reproducible
*** ignore: do not check whether <tt>git status</tt> is clean and use the timestamp of the last git commit as build qualifier. This can be used in case jgit should report a false positive dirty working tree.
+
** 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 <tt>git status</tt> is clean and use the timestamp of the last git commit as build qualifier. This can be used in case jgit should report a false positive dirty working tree.
  
 
Sample configuration:
 
Sample configuration:
Line 79: Line 82:
 
<pre>
 
<pre>
 
<plugin>
 
<plugin>
<groupId>org.eclipse.tycho</groupId>
+
  <groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-packaging-plugin</artifactId>
+
  <artifactId>tycho-packaging-plugin</artifactId>
<version>${tycho.version}</version>
+
  <version>${tycho.version}</version>
<dependencies>
+
  <dependencies>
  <dependency>
+
      <dependency>
  <groupId>org.eclipse.tycho.extras</groupId>
+
        <groupId>org.eclipse.tycho.extras</groupId>
  <artifactId>tycho-buildtimestamp-jgit</artifactId>
+
        <artifactId>tycho-buildtimestamp-jgit</artifactId>
  <version>${tycho-extras.version}</version>
+
        <version>${tycho-extras.version}</version>
  </dependency>
+
      </dependency>
</dependencies>
+
  </dependencies>
<configuration>
+
  <configuration>
  <timestampProvider>jgit</timestampProvider>
+
      <timestampProvider>jgit</timestampProvider>
  <jgit.dirtyWorkingTree>warning</jgit.dirtyWorkingTree>
+
      <jgit.dirtyWorkingTree>warning</jgit.dirtyWorkingTree>
</configuration>
+
  </configuration>
 
</plugin>
 
</plugin>
 
</pre>
 
</pre>
 
+
</li>
* Port tycho's JDT compiler to maven-compiler-plugin 3.x ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=405385 bug 405385])
+
<li>Port tycho's JDT compiler to maven-compiler-plugin 3.x ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=405385 bug 405385])</li>
** (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>
 +
</ul></p>
  
 
[[Category:Tycho|Release Notes/0.19]]
 
[[Category:Tycho|Release Notes/0.19]]

Revision as of 09:25, 18 October 2013

< Previous Version | Next Version >

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.

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. tycho-version) to 0.19.0-SNAPSHOT.

<pluginRepositories>
  <pluginRepository>
    <id>tycho-snapshots</id>
    <url>https://oss.sonatype.org/content/groups/public/</url>
  </pluginRepository>
</pluginRepositories>

SNAPSHOT site docs

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

New and Noteworthy

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 docs <TODO link to maven site> for details.

  • Add suppport for 'runOrder' parameter in tycho-surefire-plugin to run tests in random order (bug 409923)

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 (this was never meant to be supported)
    • 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. This can be used in case jgit should report a false positive dirty working tree.
    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)