| Apache Ivy v2.0.0-rc2 |
| Release Notes |
| ----------------------------------------------------------------------- |
| |
| CONTENTS |
| 1. What is Apache Ivy? |
| 2. Status of this release |
| 3. Major Changes in this Release |
| 4. Migrating from Jayasoft Ivy to Apache Ivy |
| 5. How to Get Involved |
| 6. How to Report Issues |
| 7. Committers and Contributors for this release |
| 8. List of Changes in this Release |
| |
| |
| 1. What is Apache Ivy? |
| |
| Apache Ivy is a tool for managing (recording, tracking, resolving and reporting) |
| project dependencies. |
| It is characterized by the following: |
| |
| 1. flexibility and configurability |
| Apache Ivy is essentially process agnostic and is not tied to any |
| methodology or structure. |
| Instead it provides the necessary flexibility and configurability |
| to be adapted to a broad range of dependency management and build |
| processes. |
| 2. tight integration with Apache Ant |
| while available as a standalone tool, Apache Ivy works particularly well |
| with Apache Ant providing a number of powerful Ant tasks ranging |
| from dependency resolution to dependency reporting and publication. |
| |
| 2. Status of this release |
| |
| This is the second release candidate of Ivy targetting 2.0.0. |
| As a release candidate version, we strongly encourage the use of this version for |
| testing and validation. |
| From now on, features are frozen until final 2.0.0 version, only bug fixes may be |
| applied before 2.0.0. |
| If no outstanding bugs are reported with this release candidate, it will promoted |
| to 2.0.0 about two weeks after this release candidate. |
| |
| The current production quality version is still 1.4.1, which has not been produced |
| within the Apache Software Foundation. |
| |
| 3. Major Changes in this Release |
| |
| This section describes what has changed between version 1.4.1 and this version of |
| Apache Ivy which may cause incompatibilities. For a full list of detailed changes, |
| please refer to CHANGES.txt file. |
| |
| This new version of Apache Ivy is almost fully compatible with 1.4 version as long |
| as you do not use custom plugins: Ivy API has changed, but not its behavior. |
| |
| Some tasks and configuration elements have been renamed, but the old versions |
| are still available, they are only deprecated (you will see deprecated warnings). |
| |
| 3.1. Java Package Name Changes |
| |
| All of the Ivy Java package names have changed in Apache Ivy. They now start |
| with org.apache rather than fr.jayasoft. There have been other changes as well. |
| Important refactorings have done on the source code to ease the understanding |
| of Ivy internal architecture by new developers. |
| |
| A class named org.apache.ivy.Ivy14 is provided with an API compatible with the |
| fr.jayasoft.Ivy class of Ivy 1.4.1, to ease migration to this new version. |
| |
| 3.2. Configuration replaced by Settings |
| |
| Configuration used to have two meanings in prior Ivy versions, causing some confusion |
| with new users. |
| To avoid this confusion, Apache Ivy calls settings instead of configuration the files |
| used to customize Ivy. Configuration is still used for module configurations. |
| |
| Besides the changes in the documentation, this renaming also imply a modification |
| in settings files, which now use ivysettings as root element instead of ivyconf, |
| and settings instead of conf element to define top level defaults (such as |
| defaultCache, ...). |
| Previous names have been deprecated, so previous settings files can still be used, but |
| you will see a deprecation warning. |
| |
| 3.3. Public resolver in default settings is now ibiblio in m2 compatible mode |
| |
| In previous versions Ivy used to use the ivyrep resolver as default public resolver, |
| but ivyrep is no longer maintained, while maven 2 repository on ibiblio is growing rapidly. |
| |
| Since Ivy is compatible with maven 2 repository, defaulting to the ibiblio maven 2 |
| repository makes more sense. |
| |
| If you have any issue of backward compatibility with these new settings, you can simply |
| set the following ant property before loading the settings (implicitly or explicitly): |
| ivy.14.compatible=true |
| |
| 3.4. Relative paths resolution |
| |
| Relative paths resolution in Ivy used to be resolved against the current directory. |
| In 2.0, relative path resolution is done like this: |
| * In an Ivy file, paths are relative to the Ivy file itself (the only possible path |
| in an Ivy file is for configurations declaration inclusion) |
| * In settings files, paths for file inclusion (namely properties file loading and |
| settings inclusion) are relative to the directory in which the settings file is |
| located. All other paths must be absolute unless explicitly noted. |
| * In Ivy Ant tasks and Ivy parameters or options, paths are relative to Ivy base |
| directory, which when called from Ant is the same as your Ant basedir. |
| |
| This may break your dependency resolution if you used to use relative paths for configuration |
| file inclusion. |
| |
| 3.5 Ivyrep ivyroot attribute is now mandatory |
| |
| If you still use the ivyrep resolver, you will need to provide an ivyroot. |
| To restore the previous behavior, use ivyroot="http://ivyrep.jayasoft.org/". |
| |
| Since Ivyrep is not maintained anymore, we recommend moving away from this repository anyway. |
| |
| 3.6 alwaysCheckExactRevision now defaults to false |
| |
| This property common to many resolvers is used to tell the resolver if the raw revision |
| should be tested even when the revision is dynamic. This is used in very few use cases, |
| so we decided to change the default to false. |
| |
| If you want to set the default to true, set 'ivy.default.always.check.exact.revision' to |
| 'true' before loading Ivy settings. |
| |
| 4. Migrating from Jayasoft Ivy to Apache Ivy |
| |
| Besides what is stated in "3. Major Changes in this Release" |
| Apache Ivy is fully compatible with Jayasoft Ivy as long as you do not use |
| custom plugins. |
| This means that you can use Apache Ivy as a drop in replacement of Jayasoft Ivy |
| in most cases. |
| |
| However due to the the renaming of configuration files to settings files, we |
| strongly suggest to update your configuration files: |
| - rename the files called ivyconf*.xml in ivysettings*.xml |
| - rename 'ivyconf' element in 'ivysettings' |
| - rename 'conf' element of those settings file in 'settings' |
| |
| We also suggest using the new org.apache.ivy.ant package name for the antlib declaration. |
| |
| Migrating custom plugins can be done by using the org.apache.ivy.Ivy14 class |
| instead of fr.jayasoft.ivy.Ivy, and reorganizing your imports to reflect the |
| changes in the package names. |
| |
| 5. How to Get Involved |
| |
| The Apache Ivy project really needs and appreciates any contributions, |
| including documentation help, source code and feedback. If you are interested |
| in contributing, please visit http://ant.apache.org/ivy/get-involved.html. |
| |
| 6. How to Report Issues |
| |
| The Apache Ivy project uses JIRA for issue tracking. Please report any |
| issues you find at http://issues.apache.org/jira/browse/IVY |
| |
| 7. Committers and Contributors for this Release |
| |
| Here is the list of people who have contributed source code and documentation |
| to this release. Many thanks to all of them, and also to the whole Ivy community |
| contributing ideas and feedback, and promoting the use of Ivy. The list would be too |
| long, but Ivy couldn't be what it is without you! |
| |
| Committers |
| Maarten Coene |
| Xavier Hanin |
| Nicolas Lalevee |
| Gilles Scokart |
| |
| Contributors |
| Scott Hebert |
| Phil Messenger |
| Randy Nott |
| Tom Widmer |
| Chris Wood |
| Patrick Woodworth |
| Jaroslaw Wypychowski |
| |
| For the list of people who have contributed since Ivy inception, see CHANGES.txt file. |
| |
| 8. List of Changes in this Release |
| |
| For a full release history of Ivy see the file CHANGES.txt |
| |
| For details about the following changes, check our JIRA install at |
| http://issues.apache.org/jira/browse/ivy |
| |
| List of changes since Ivy 2.0.0-rc1: |
| - NEW: Allow authentication credentials to be specified in settings file (IVY-943) (thanks to Randy Nott) |
| |
| - IMPROVEMENT: Error messages on use of relative paths can be cyrptic (IVY-909) |
| - IMPROVEMENT: Maven accepts illegal XML for its pom's, Ivy not (IVY-921) |
| - IMPROVEMENT: Ivy should set the ${basedir} property (IVY-953) |
| |
| - FIX: NullPointerException in AbstractPatternsBasedResolver when organization is null (IVY-928) |
| - FIX: NullPointerException when Ivy cannot locate pom parent (IVY-927) |
| - FIX: Cannot configure items with java.io.File attributes (IVY-905) |
| - FIX: Environment properties in ivy settings are no longer resolved (IVY-907) |
| - FIX: Resolve failed on certain proxy environment (IVY-911) |
| - FIX: Ivy can't handle bare POM ${groupId} property (IVY-913) (thanks to Tom Widmer) |
| - FIX: Properties needed to parse version in POM (IVY-914) (thanks to Tom Widmer) |
| - FIX: build.xml: checkstyle + checkstyle-report dont work together (IVY-919) |
| - FIX: Maven packaging of "pom" should add a "jar" artifact if present (IVY-920) |
| - FIX: StackOverflow when using ivy:settings with "ivy.instance" as id (IVY-924) |
| - FIX: Maven Pom reader doesn't handle optional dependencies correctly in some instances (IVY-926) (thanks to Phil Messenger) |
| - FIX: ivy:settings doesn't work if id is a property (IVY-925) |
| - FIX: HttpClientHandler hanging in certain cases (IVY-930) (thanks to Scott Hebert) |
| - FIX: Can't download files containing space or + in their names by HTTP (IVY-923) |
| - FIX: Maven2 parser doesn't support POMs with <model> as root (IVY-932) |
| - FIX: Default retrieve, publish and deliver patterns doesn't include the [classifier] token (IVY-935) |
| - FIX: Can't use latest.release for pom dependencies (IVY-936) |
| - FIX: Unable to resolve snapshot versions depending on xml elements order (IVY-940) |
| - FIX: pre-resolve-dependency event doesn't export branch information (IVY-941) (thanks to Jaroslaw Wypychowski) |
| - FIX: cachefileset produces an empty fileset when the cache refers to libs in directories that only have the root directory in common (IVY-948) (thanks to Chris Wood) |
| - FIX: Extra Attributes specified in the Dependency's Module Descriptor are not available to resolvers (IVY-929) (thanks to Scott Hebert) |
| - FIX: Support for passing arbitrary arguments to the -main invoked class when using the standalone mode is severely limited (IVY-952) (thanks to Patrick Woodworth) |
| - FIX: Correctly set ivy.resolved.configurations property when the conf string includes a negation operator (IVY-951) (thanks to Patrick Woodworth) |
| - FIX: Maven pom license url can contain xml entities (IVY-950) |
| - FIX: Maven pom license has name as optional element (IVY-949) |
| - FIX: Ivy doesn't throw an error when the parent POM cannot be loaded (IVY-931) |
| - FIX: Maven pom parser is not handling pom property ${project.parent.version} (IVY-955) |
| |
| - DOCUMENTATION: Filesystem resolver: talks about "patterns" but does not mention these must become absolute file paths (IVY-910) |