mirror of https://github.com/apache/ant-ivy
225 lines
11 KiB
Plaintext
225 lines
11 KiB
Plaintext
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
|
||
Nicolas Lalev<65>e
|
||
Gilles Scokart
|
||
|
||
Contributors
|
||
Andrea Bernardo Ciddio
|
||
Mikkel Bjerg
|
||
Mirko Bulovic
|
||
Danno Ferrin
|
||
Benjamin Francisoud
|
||
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<65>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<65>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)
|