Jump to: navigation, search

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

m
Line 29: Line 29:
  
 
* A build extension has been added to support (almost) pom-less builds of eclipse plugins and features ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=462531 bug 462531]). To enable it,
 
* A build extension has been added to support (almost) pom-less builds of eclipse plugins and features ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=462531 bug 462531]). To enable it,
** Requires maven 3.3+
+
** Requires [http://takari.io/2015/03/19/core-extensions.html maven 3.3+]
** Add a .mvn/extensions.xml descriptor to the root of your build:
+
** Add a <tt>.mvn/extensions.xml</tt> descriptor to the root of your build:
 
<pre>
 
<pre>
 
<?xml version="1.0" encoding="UTF-8"?>
 
<?xml version="1.0" encoding="UTF-8"?>
Line 42: Line 42:
 
</pre>
 
</pre>
 
** The parent pom for features and plugins must reside in the parent directory
 
** The parent pom for features and plugins must reside in the parent directory
** features and plugins do not require pom.xml anymore. Maven coordinates are derived as follows:
+
** <tt>pom.xml</tt> is optional now for features and plugins. In case no <tt>pom.xml</tt> is provided, the maven project model is derived as follows:
*** groupId: inherited from parent
+
*** <tt>groupId</tt>: inherited from parent
*** arifactId: Bundle-SymbolicName from META-INF/MANIFEST.MF or feature id from feature.xml
+
*** <tt>arifactId</tt>: <tt>Bundle-SymbolicName</tt> from <tt>META-INF/MANIFEST.MF</tt> or feature id from <tt>feature.xml</tt>
*** version: Bundle-Version from META-INF/MANIFEST.MF or feature version from feature.xml (with ".qualifier" suffix replaced by "-SNAPSHOT")
+
*** <tt>version</tt>: <tt>Bundle-Version</tt> from <tt>META-INF/MANIFEST.MF</tt> or feature version from <tt>feature.xml</tt> (with <tt>.qualifier</tt> suffix replaced by <tt>-SNAPSHOT</tt>)
*** packaging: eclipse-plugin if META-INF/MANIFEST.MF found, eclipse-feature if feature.xml found, eclipse-test-plugin if META-INF/MANIFEST.MF with Bundle-SymbolicName ending with ".tests" found
+
*** <tt>packaging</tt>: <tt>eclipse-plugin</tt> if <tt>META-INF/MANIFEST.MF</tt> found, <tt>eclipse-feature</tt> if <tt>feature.xml</tt> found, <tt>eclipse-test-plugin</tt> if <tt>Bundle-SymbolicName</tt> ending with ".tests" found in <tt>META-INF/MANIFEST.MF</tt>
** At minimum a parent (and aggregator) pom is still required which configures Tycho, the modules to build, the p2 repositories used etc. as this cannot be derived from feature.xml or MANIFEST.MF
+
** At minimum a parent (and aggregator) pom is still required which configures Tycho, the modules to build, the p2 repositories used etc. as this cannot be derived from <tt>feature.xml</tt> or <tt>MANIFEST.MF</tt>
 
** See the [http://git.eclipse.org/c/tycho/org.eclipse.tycho.extras.git/tree/tycho-extras-its/src/test/resources/testpomless sample build] used by the integration tests
 
** See the [http://git.eclipse.org/c/tycho/org.eclipse.tycho.extras.git/tree/tycho-extras-its/src/test/resources/testpomless sample build] used by the integration tests
  

Revision as of 04:09, 14 July 2015

< Previous Version | Next Version >

SNAPSHOT builds

To try out the most recent snapshot build of 0.24.0, 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 0.24.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 0.24.0

POM-less Tycho builds

  • A build extension has been added to support (almost) pom-less builds of eclipse plugins and features (bug 462531). To enable it,
    • Requires maven 3.3+
    • Add a .mvn/extensions.xml descriptor to the root of your build:
<?xml version="1.0" encoding="UTF-8"?>
<extensions>
  <extension>
    <groupId>org.eclipse.tycho.extras</groupId>
    <artifactId>tycho-pomless</artifactId>
    <version>0.24.0-SNAPSHOT</version>
  </extension>
</extensions>
    • The parent pom for features and plugins must reside in the parent directory
    • pom.xml is optional now for features and plugins. In case no pom.xml is provided, the maven project model is derived as follows:
      • groupId: inherited from parent
      • arifactId: Bundle-SymbolicName from META-INF/MANIFEST.MF or feature id from feature.xml
      • version: Bundle-Version from META-INF/MANIFEST.MF or feature version from feature.xml (with .qualifier suffix replaced by -SNAPSHOT)
      • packaging: eclipse-plugin if META-INF/MANIFEST.MF found, eclipse-feature if feature.xml found, eclipse-test-plugin if Bundle-SymbolicName ending with ".tests" found in META-INF/MANIFEST.MF
    • At minimum a parent (and aggregator) pom is still required which configures Tycho, the modules to build, the p2 repositories used etc. as this cannot be derived from feature.xml or MANIFEST.MF
    • See the sample build used by the integration tests

compare-version-with-baselines mojo

org.eclipse.tycho.extras:tycho-p2-extras-plugin plugin features a new compare-version-with-baselines mojo that allows to verify that the version of the just-build artifacts doesn't break some basic rules of OSGi versioning. It will make the build of your artifact fail if:

  • artifact has lower version than what exists in baseline
  • artifact has same major.minor.micro version than what exists in baseline
  • artifact has same fully qualified (major.minor.micro.qualifier version) than what exists in baseline, but with different binary content.

This is used in order to guarantee necessary version bumps have been applied, and this is compliant with the Tycho/Reproducible Version Qualifiers strategy.

See IT tests for an example of usage.