Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Tycho/Release Notes/0.24"
< Tycho | Release Notes
m |
m (Some minor grammatical fixes) |
||
(21 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
#versionNav{ position:absolute; top: 0px; right: 0px; border-color: transparent; background: transparent; } | #versionNav{ position:absolute; top: 0px; right: 0px; border-color: transparent; background: transparent; } | ||
</css> | </css> | ||
− | <div id="versionNav" class="alert alert-small alert-warning">[[Tycho/Release Notes/0.23|< Previous Version]] | Next Version ></div> | + | <div id="versionNav" class="alert alert-small alert-warning">[[Tycho/Release Notes/0.23|< Previous Version]] | [[Tycho/Release Notes/0.25|Next Version >]]</div> |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
== New and Noteworthy == | == New and Noteworthy == | ||
Line 28: | Line 11: | ||
=== POM-less Tycho builds === | === POM-less Tycho builds === | ||
− | * A [http://takari.io/2015/03/19/core-extensions.html core 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]).< | + | * A [http://takari.io/2015/03/19/core-extensions.html maven core build extension] has been added to support (almost) pom-less builds of eclipse plugins and features (<strike>[https://bugs.eclipse.org/bugs/show_bug.cgi?id=462531 bug 462531]</strike>,<strike>[https://bugs.eclipse.org/bugs/show_bug.cgi?id=386114 bug 386114]</strike>). This avoids duplication of version and artifactId metadata in <tt>MANIFEST.MF/feature.xml</tt> and <tt>pom.xml</tt>. This feature requires [http://maven.apache.org/download.cgi maven 3.3 or later] <br/> To enable it, |
− | + | ||
** Add a <tt>.mvn/extensions.xml</tt> descriptor to the root of your build: | ** Add a <tt>.mvn/extensions.xml</tt> descriptor to the root of your build: | ||
<pre> | <pre> | ||
Line 37: | Line 20: | ||
<groupId>org.eclipse.tycho.extras</groupId> | <groupId>org.eclipse.tycho.extras</groupId> | ||
<artifactId>tycho-pomless</artifactId> | <artifactId>tycho-pomless</artifactId> | ||
− | <version>0.24.0 | + | <version>0.24.0</version> |
</extension> | </extension> | ||
</extensions> | </extensions> | ||
</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 | ||
− | ** <tt>pom.xml</tt> | + | ** features and plugins do not require <tt>pom.xml</tt> anymore. If no <tt>pom.xml</tt> is provided, the maven project model is derived as follows: |
*** <tt>groupId</tt>: inherited from parent | *** <tt>groupId</tt>: inherited from parent | ||
− | *** <tt>arifactId</tt>: | + | *** <tt>arifactId</tt>: Bundle-SymbolicName from <tt>META-INF/MANIFEST.MF</tt> or feature id from <tt>feature.xml</tt> |
*** <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>) | *** <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>) | ||
− | *** <tt>packaging</tt>: | + | *** <tt>packaging</tt>: |
**** <tt>eclipse-plugin</tt> if <tt>META-INF/MANIFEST.MF</tt> found | **** <tt>eclipse-plugin</tt> if <tt>META-INF/MANIFEST.MF</tt> found | ||
**** <tt>eclipse-feature</tt> if <tt>feature.xml</tt> found | **** <tt>eclipse-feature</tt> if <tt>feature.xml</tt> found | ||
**** <tt>eclipse-test-plugin</tt> if <tt>Bundle-SymbolicName</tt> ending with <tt>.tests</tt> found in <tt>META-INF/MANIFEST.MF</tt> | **** <tt>eclipse-test-plugin</tt> if <tt>Bundle-SymbolicName</tt> ending with <tt>.tests</tt> 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 <tt>feature.xml</tt> or <tt>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 <tt>feature.xml</tt> or <tt>MANIFEST.MF</tt> | ||
− | ** See the [ | + | ** you can still use <tt>pom.xml</tt> for plugins and features in case you want to configure more than the above defaults |
+ | ** See the [https://git.eclipse.org/c/tycho/org.eclipse.tycho.extras.git/tree/tycho-extras/tycho-extras-its/src/test/resources/testpomless sample build] used by the integration tests | ||
+ | ** Note that if you are using <tt>tycho-versions-plugin</tt> for consistently changing versions in <tt>MANIFEST.MF/feature.xml</tt> and <tt>pom.xml</tt>, support for pom-less builds is still missing for this plugin ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=472579 bug 472579]) | ||
+ | |||
+ | === p2 === | ||
+ | |||
+ | * The build will now fail with a clear error message when trying to build a MacOS product with native launchers against Luna or earlier (as opposed to of silently producing a broken product installation) ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=463670 <strike>bug 463670</strike>]). Also, the bundled ".app" filesystem layout for MacOSX product installs is now automatically enabled since it is the only layout that works. No need to configure an installation root folder ending with ".app" for MacOSX anymore ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=461606 <strike>bug 461606</strike>]). | ||
+ | * The version of p2 bundled with Tycho has been updated to Mars.1 ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=480216 <strike>bug 480216</strike>]) | ||
+ | |||
=== compare-version-with-baselines mojo === | === compare-version-with-baselines mojo === | ||
− | <tt>org.eclipse.tycho.extras:tycho-p2-extras-plugin</tt> plugin features a new <tt>compare-version-with-baselines</tt> mojo that allows | + | <tt>org.eclipse.tycho.extras:tycho-p2-extras-plugin</tt> plugin features a new <tt>compare-version-with-baselines</tt> mojo that allows verifying 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 a lower version than what exists in baseline |
− | * artifact has same major.minor.micro version than what exists in baseline | + | * artifact has the 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. | + | * artifact has the same fully qualified (major.minor.micro.qualifier version) than what exists in the 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 [[../../Reproducible Version Qualifiers]] strategy. | This is used in order to guarantee necessary version bumps have been applied, and this is compliant with the [[../../Reproducible Version Qualifiers]] strategy. | ||
Line 64: | Line 55: | ||
See [http://git.eclipse.org/c/tycho/org.eclipse.tycho.extras.git/tree/tycho-p2-extras-plugin/src/it/baseline/pom.xml#n33 IT tests] for an example of usage. | See [http://git.eclipse.org/c/tycho/org.eclipse.tycho.extras.git/tree/tycho-p2-extras-plugin/src/it/baseline/pom.xml#n33 IT tests] for an example of usage. | ||
+ | === Other === | ||
+ | |||
+ | * The versions of Equinox and JDT compiler bundled with Tycho have been updated to Mars.1 ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=480216 <strike>bug 480216</strike>]) | ||
+ | * JGit was updated to version 4.0.1 ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=472455 <strike>bug 472455</strike>]) | ||
[[Category:Tycho|Release Notes/0.24]] | [[Category:Tycho|Release Notes/0.24]] |
Latest revision as of 16:14, 11 February 2020
Contents
New and Noteworthy
Complete list of bug fixes and enhancements in 0.24.0
POM-less Tycho builds
- A maven core build extension has been added to support (almost) pom-less builds of eclipse plugins and features (
bug 462531,bug 386114). This avoids duplication of version and artifactId metadata in MANIFEST.MF/feature.xml and pom.xml. This feature requires maven 3.3 or later
To enable it,
- 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</version> </extension> </extensions>
- The parent pom for features and plugins must reside in the parent directory
- features and plugins do not require pom.xml anymore. If 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
- you can still use pom.xml for plugins and features in case you want to configure more than the above defaults
- See the sample build used by the integration tests
- Note that if you are using tycho-versions-plugin for consistently changing versions in MANIFEST.MF/feature.xml and pom.xml, support for pom-less builds is still missing for this plugin (bug 472579)
p2
- The build will now fail with a clear error message when trying to build a MacOS product with native launchers against Luna or earlier (as opposed to of silently producing a broken product installation) (
bug 463670). Also, the bundled ".app" filesystem layout for MacOSX product installs is now automatically enabled since it is the only layout that works. No need to configure an installation root folder ending with ".app" for MacOSX anymore (bug 461606). - The version of p2 bundled with Tycho has been updated to Mars.1 (
bug 480216)
compare-version-with-baselines mojo
org.eclipse.tycho.extras:tycho-p2-extras-plugin plugin features a new compare-version-with-baselines mojo that allows verifying 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 a lower version than what exists in baseline
- artifact has the same major.minor.micro version than what exists in baseline
- artifact has the same fully qualified (major.minor.micro.qualifier version) than what exists in the 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.
Other
- The versions of Equinox and JDT compiler bundled with Tycho have been updated to Mars.1 (
bug 480216) - JGit was updated to version 4.0.1 (
bug 472455)