| Apache Ivy v2.0.0-beta2 |
| 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 of Ivy since it has graduated as a sub project of Apache Ant. |
| As a beta version, we encourage the use of this version for testing and validation. |
| Still API and features are still likely to change until final 2.0.0 version. |
| |
| 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. Review of settings loading |
| |
| This new Ivy version experience with a new way of loading the settings. The configure task |
| is deprecated, and replaced by a settings task. By using the settings task, you can |
| easily use several settings inside one Ant build script, and use a scope to tell Ivy which |
| settings to use when calling a task which requires some settings. |
| |
| This is still an experiment though, so feedback is very welcome in the mailing lists. |
| |
| 3.4. 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.5. Relative paths resolution |
| |
| Relative paths resolution in Ivy used to be resolved against the current directory. |
| Some work is in progress in this area, currently relative path resolution for the inclusion |
| of configuration files in Ivy files has been modified to work relative to the Ivy file in which |
| the configurations are included. |
| |
| This may break your dependency resolution if you used to use relative paths for configuration |
| file inclusion. |
| |
| 3.6 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. |
| |
| 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 |
| Gilles Scokart |
| |
| Contributors |
| Andrea Bernardo Ciddio |
| Mikkel Bjerg |
| Mirko Bulovic |
| Danno Ferrin |
| Benjamin Francisoud |
| Nicolas Lalevée |
| Markus M. May |
| Adrian Sandor |
| Ruslan Shevchenko |
| Johan Stuyts |
| |
| 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-beta1: |
| - NEW: Introduce RepositoryManagementEngine (IVY-665) |
| - NEW: Add support for importing environment variables (IVY-608) |
| - NEW: Add ability for buildlist task to start build from specified module in the list (IVY-697) (thanks to Mirko Bulovic) |
| - NEW: Cache dynamic revision resolution (IVY-694) |
| - NEW: Make resolve console output configurable per resolve (IVY-715) |
| |
| - IMPROVEMENT: branch and extra attributes missing from info Ant task (IVY-721) |
| - IMPROVEMENT: Review settings loading in Ant (IVY-703) |
| - IMPROVEMENT: Move useOrigin to repository cache manager (IVY-700) |
| - IMPROVEMENT: Make IBiblio resolver compatible with maven proxy (IVY-466) |
| - IMPROVEMENT: Use namespace aware validation (IVY-553) |
| - IMPROVEMENT: use ModuleRevisionId instead of ModuleId in IvySettings#getResolver (IVY-691) |
| - IMPROVEMENT: Flexible cache management (IVY-399) (With contribution of Adrian Sandor) |
| - IMPROVEMENT: Decrease memory footprint (IVY-662) |
| - IMPROVEMENT: Downgrade Ant version requirement to 1.6 to build Ivy (IVY-687) |
| - IMPROVEMENT: In the ResolveReport class, add the possibility to filter the evicted module while getting the list of DownloadArtifact (IVY-704) (thanks to Nicolas Lalevée) |
| - IMPROVEMENT: Refactor the PomModuleDescriptorParser in order to allow easier integration of maven pom |
| |
| - FIX: ivy:install task not using validate attribute (IVY-728) |
| - FIX: Bad conflict resolution leads to bad "configuration(s) not found" error (IVY-729) |
| - FIX: Resolving for muyltiple configurations when one is not in the list of available configurations does not abort the build (IVY-720) |
| - FIX: Branch attribute considered as both a standard and extra attribute on module info (IVY-726) |
| - FIX: Branch attribute not set on deliver when using a non default branch (IVY-724) |
| - FIX: NullPointerException reported instead of error in ivy:cachepath (IVY-690) |
| - FIX: NPE when calling retrieve if some artifacts are not available locally (IVY-712) |
| - FIX: When in ssh plugin we does not set username in scheme, Ivy always try to connect with guest username, even if we change one in panel. (IVY-710) (thanks to Ruslan Shevchenko) |
| - FIX: NPE in SshCache during publish with ssh resolver without passFile (IVY-709) (thanks to Ruslan Shevchenko) |
| - FIX: Update install ivy build file example (IVY-705) (thanks to Benjamin Francisoud) |
| - FIX: Ivy swallows ParseException when using a latest strategy requiring module descriptors (IVY-702) (thanks to Nicolas Lalevée) |
| - FIX: Problem with cached Ivy files which have extra attributes (IVY-693) |
| - FIX: Detection of newer and better artifacts should not happen if 'checkModified' is set to 'false' (IVY-389) (with contribution from Johan Stuyts) |
| - FIX: Ivy doesn't respect the order of the ivy patterns as defined in the settings (IVY-676) |
| - FIX: XmlModuleDescriptorWriter doesn't write the deprecated attribute of the "ivy-module/configurations/conf" element (IVY-664) |
| - FIX: XMLModuleDescriptorWriter does not write extra attributes (IVY-471) (with contribution from Mikkel Bjerg) |
| - FIX: latest compatible conflict manager fails with circular dependencies and dynamic revision (IVY-663) |
| - FIX: Strict conflictmanager seems to not support dynamic revisions (IVY-474) |
| - FIX: NPE in namespace transformation during the ivy:findrevision and ivy:resolve task execution (IVY-659) (thanks to Andrea Bernardo Ciddio) |
| - FIX: Maven test scope includes all runtime dependencies (IVY-682) |
| - FIX: Inherit depedencies defined in parent pom (IVY-683) |
| - FIX: Incorrect ivy from maven pom generation when classifier are user (IVY-714) (thanks to Ruslan Shevchenko) |
| - FIX: m2 incompatibility - IVY does not recognize property section(IVY-637) |
| - FIX: Maven test scope not mapped to test conf (IVY-744) (thanks to Danno Ferrin) |
| |
| - TASK: Remove cache attribute on Ant tasks (IVY-685) |
| |
| - Improvement in coding conventions (IVY-511) (with contribution from Markus M. May) |