Apache Ivy v2.0.0-alpha2-incubating 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 in the Apache incubator, and as an alpha version we do not guarantee any stability. API and features are still likely to change until final 2.0.0 version. Still we encourage the use of this version for early testing. 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. This new version of Apache Ivy is fully compatible with previous versions 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 datatype. By using the settings datatype, 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. 4. Migrating from Jayasoft Ivy to Apache Ivy 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. 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://incubator.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 Stephane Bailliez Mikkel Bjerg Jeffrey Blattman Archie Cobbs Scott Goldstein Jan Materne Tjeerd Verhagen John Williams Jaroslaw Wypychowski 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-alpha-1-incubating: - NEW: Add cleancache task (IVY-565) - NEW: A checkstyle report is generated (IVY-483) (thanks to Jan Materne) - NEW: Hide private or specific conf when publishing (IVY-77) - IMPROVEMENT: File buffer increased to 64KB (IVY-551) - IMPROVEMENT: Expose default cache location as an ant property (IVY-563) - IMPROVEMENT: Expose Ivy variables as Ant Properties (IVY-564) - IMPROVEMENT: Change default cache location (IVY-530) - IMPROVEMENT: Upgraded VFS dependency to 1.0 and removed dependency on VFS-sandbox (IVY-498) - IMPROVEMENT: Use maven2 repository to download dependencies - IMPROVEMENT: Allow "main" parameters to be passed directly (instead of using -args flag) (IVY-480) (thanks to Archie Cobbs) - IMPROVEMENT: Remove @author tags (thanks to Stephane Bailliez) - IMPROVEMENT: Remove use of deprecated elements in ivysettings.xml (IVY-505) (with contribution from Jan Materne) - IMPROVEMENT: Buildlist onlydirectdep attribute (IVY-473 and IVY-504) (with contribution from Mikkel Bjerg) - IMPROVEMENT: Code / XML Polished (IVY-554) (with contribution from Tjeerd Verhagen) - IMPROVEMENT: Javadoc improvements (IVY-544) (with contribution from Tjeerd Verhagen) - IMPROVEMENT: Unit test improvements (IVY-545) (thanks to Tjeerd Verhagen) - IMPROVEMENT: Dependent jars missing in ivy binaries (IVY-481) - FIX: Ant target "clean" on Ivy multi-project tutorial points to wrong cache directory. (IVY-548) - FIX: Variables not replaced during deliver (IVY-520) (thanks to John Williams) - FIX: XmlModuleDescriptorWriter does not produce matcher attribute on include and exclude rules (IVY-556) - FIX: pom.groupId is not recognized in maven 2 pom parser (IVY-550) - FIX: Evicted modules report depends on the order of the dependencies (IVY-526) - FIX: Ivy does not work on Turkish machines (IVY-65) - FIX: Ivy does not handle multiple version dependencies in maven2 poms correctly (IVY-494) - FIX: pom parser doesn't necessarily processes all important information (IVY-524) - FIX: element of Ivy file in cache is not updated when using namespaces (IVY-516) - FIX: Retrieve Ant task ignores resolveId attribute (IVY-522) (thanks to Scott Goldstein) - FIX: The deprecated "keep" attribute on post resolve tasks causes an error (IVY-517) - FIX: Some circular dependencies not retrieved (IVY-400) - FIX: ${version} property not recognized in poms (IVY-512) - FIX: Bug on handling dependency artifacts when a module configuration is specified (IVY-507) - FIX: Configure fails when having httpclient in classpath without commons-logging (IVY-502) - FIX: packaging data not parsed in maven 2 pom (IVY-500) (thanks to Jeffrey Blattman) - FIX: install ant task: requires default resolver in ivy settings (IVY-477) - FIX: Ant project reference lost from context on multiple ant calls in single thread (IVY-497) (thanks to Jaroslaw Wypychowski) - FIX: EOL in the doc pages (IVY-470) - FIX: Cache is storing ArtifactOrigin properties with no guarantee of unicity and types telescope during resolve. (IVY-430) (thanks to Stephane Bailliez) - FIX: ivy:install ant task does not fail on error (IVY-475) (thanks to Jeffrey Blattman) - FIX: Credentials are shown in build log even if debug is not enabled (IVY-486) - FIX: Post-Resolve task shouldn't set the 'resolveid' (IVY-489) - FIX: build fails without emma code coverage JARs present (IVY-478) - FIX: buildlist broken - regression in 2.0.0-alpha1-incubating (IVY-493) - FIX: Circular dependency startegy in buildlist (IVY-509) - FIX: ivy should stop telling me off twice for ivyconf.xml files (IVY-513) - FIX: Allow relative path in ivy.xml files (IVY-347)