mirror of https://github.com/apache/ant-ivy
324 lines
18 KiB
Plaintext
324 lines
18 KiB
Plaintext
Apache Ivy v2.0.0-rc1
|
|
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 first 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
|
|
Carlton Brown
|
|
Chris
|
|
Archie Cobbs
|
|
Ben Hale
|
|
Tobias Himstedt
|
|
Michael Kebe
|
|
Alexey Kiselev
|
|
Sakari Maaranen
|
|
David Maplesden
|
|
Brian Sanders
|
|
Simon Steiner
|
|
James P. White
|
|
Patrick Woodworth
|
|
Jing Xue
|
|
|
|
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-beta2:
|
|
- NEW: Report version of Ivy in HTTP headers (user-agent?) when Ivy downloads artifacts (IVY-878)
|
|
- NEW: Add publish support to URL resolver (IVY-848) (thanks to Brian Sanders)
|
|
- NEW: Better support for local builds (IVY-857)
|
|
- NEW: Retain original dependency constraint rules in resolved ivy file (IVY-739)
|
|
- NEW: Add a new resolve mode (optionally per module) to utilize dynamic constraint rule metadata (IVY-740)
|
|
- NEW: Add transitive dependency version and branch override mechanism (IVY-784)
|
|
- NEW: Add new packager resolver (IVY-829) (thanks to Archie Cobbs)
|
|
|
|
- IMPROVEMENT: DualResolver should also provide setDescriptor method instead of setAllownomd, which is deprecated for the other resolvers (IVY-903)
|
|
- IMPROVEMENT: Parse license information in poms (IVY-892)
|
|
- IMPROVEMENT: Change 'alwaysUseExactRevision' default value to false (IVY-891)
|
|
- IMPROVEMENT: Better and more homogeneous relative paths handling (IVY-387)
|
|
- IMPROVEMENT: undeprecate configure task (IVY-849)
|
|
- IMPROVEMENT: Detect missing artifacts on publish asap (IVY-862)
|
|
- IMPROVEMENT: Allow to set the branch at deliver/publish time (IVY-859)
|
|
- IMPROVEMENT: Add defaultconf in publications tag of ivy file (IVY-801)
|
|
- IMPROVEMENT: Support atomic publish with sub directory structure (IVY-856)
|
|
- IMPROVEMENT: Provide ant task to retrieve information from published ivy modules (IVY-838) (thanks to David Maplesden)
|
|
- IMPROVEMENT: Install task fails but reason is not displayed without using -debug or -verbose (IVY-834)
|
|
- IMPROVEMENT: SSH resolver doesn't support keyboard-interactive authentication (IVY-836) (thanks to Tobias Himstedt)
|
|
- IMPROVEMENT: declare source and javadoc artifacts in maven2 modules (IVY-325)
|
|
- IMPROVEMENT: Set the last modified attribute of files downloaded from repositories (IVY-823)
|
|
- IMPROVEMENT: If DNS is playing up, Ivy takes a lot longer to sort project dependencies (IVY-817)
|
|
- IMPROVEMENT: make it possible to specify permissions of published files for the SSH resolver (IVY-764)
|
|
- IMPROVEMENT: Load Ivy version number into some Ant property (IVY-790)
|
|
- IMPROVEMENT: Make Ivy standalone runnable with no required dependencies (IVY-757)
|
|
- IMPROVEMENT: add branch attribute in ivy:install task (IVY-727)
|
|
- IMPROVEMENT: Parse description information in ivy files (IVY-766)
|
|
- IMPROVEMENT: Parse description and home page from poms (IVY-767)
|
|
- IMPROVEMENT: Change allownomd and skipbuildwithoutivy into a more semantically correct name (IVY-297)
|
|
- IMPROVEMENT: Smarter determination if an expression is exact or not for RegexpPatternMatcher and GlobPatternMatcher
|
|
- IMPROVEMENT: Check branch consistency during resolve (IVY-858)
|
|
- IMPROVEMENT: Give the possibility to not compute ivy.deps.changed (IVY-876)
|
|
- IMPROVEMENT: Add a memory cache for the module descriptor that are parsed from the cache (IVY-883)
|
|
- IMPROVEMENT: Improve performance (IVY-872)
|
|
- IMPROVEMENT: Additional descriptions of build.xml targets (IVY-499)
|
|
|
|
- FIX: Publish Ant Task 'warnonmissing' ignored (IVY-867)
|
|
- FIX: Ivy stand-alone ignores -cache argument (IVY-901) (thanks to Chris)
|
|
- FIX: ivy.cache.dir.${settingsRef} is set to default instead of the defaultCacheDir from the ivysettings.xml after ivy:resolve (IVY-898)
|
|
- FIX: Ivy ibiblio resolver chokes on variables while checking descriptor consistency (IVY-818)
|
|
- FIX: Enable consistent support of the configuration negation operator (IVY-894) (thanks to Patrick Woodworth)
|
|
- FIX: add variable expansion in extra attributes (IVY-798)
|
|
- FIX: Invalid URL when using dynamic ranges (IVY-885)
|
|
- FIX: can't use gotoNode with a node which has not been visited yet (IVY-874)
|
|
- FIX: Ivy Publish Task Fails When XML Comments Exist Next to Dependency Declarations (IVY-888)
|
|
- FIX: Incorrect directory path resolve when running from a different directory (IVY-232)
|
|
- FIX: Ivy#listTokenValues(String, Map) does not filter returned values, and does not use maven-metadata.xml files with IBiblio resolver (IVY-886)
|
|
- FIX: Circular Dependency messages in a resolve do not reflect the configuration used during the resolve (IVY-708)
|
|
- FIX: Failure to transitively install Maven2 artifacts with namespace (IVY-440)
|
|
- FIX: Unwanted eviction of dependencies when optional attributes in dependency and info tags are in consistent (IVY-745)
|
|
- FIX: HTTP Handlers ignore unsuccessful response codes (IVY-864) (thanks to James P. White)
|
|
- FIX: Deliver delivers the wrong version when a dynamic revision is evicted before being resolved (IVY-707)
|
|
- FIX: Inconsistency with "multi-project" tutorial (IVY-667)
|
|
- FIX: URLRepository does not allow some valid file scheme uri's (IVY-884)
|
|
- FIX: Incorrect parsing artifactPattern attribute in a sftp resolver (IVY-661) (thanks to Alexey Kiselev)
|
|
- FIX: Maven2 "ejb" packaging is not supported (IVY-873)
|
|
- FIX: Config files with # in path can't be read (IVY-868) (thanks to Simon Steiner)
|
|
- FIX: Cache can't distinguish artifacts with classifiers (IVY-803) (thanks to James P. White)
|
|
- FIX: Reports showing double dependencies in certain cases (IVY-578)
|
|
- FIX: Dynamic revision resolve does not throw error when configuration is missing (IVY-861)
|
|
- FIX: Referenced resolver not found in macro (IVY-860)
|
|
- FIX: Ivy files are not retrieved when using useOrigin=true (IVY-713)
|
|
- FIX: NPE in Ivy:install task if the repository cache dir has been cleared (IVY-843)
|
|
- FIX: Maven version ranges with ( ) are not supported (IVY-678) (thanks to Michael Kebe)
|
|
- FIX: Ignore maven metadata files when listing revisions (IVY-765)
|
|
- FIX: haltonmissing on publish task does not prevent the other files to be published, even with an atomic publisher (IVY-656)
|
|
- FIX: Transitive dependencies resolves incorrectly when different modules uses the same dependency with different configurations in the same build (IVY-541)
|
|
- FIX: transitive attribute set to false because of dependency (IVY-105)
|
|
- FIX: Wrong check for defaultCacheArtifactPattern (IVY-840)
|
|
- FIX: NPE in ivy:install if ivy.settings.xml contains custom attribute for a module (IVY-838)
|
|
- FIX: Ivy unit tests fail because 'classifier' attribute of 'artifacts' element is missing in ivy.xsd (IVY-837)
|
|
- FIX: Ivy build system: fix build.xml to allow "ant coverage-report" behind a proxy (IVY-832)
|
|
- FIX: NPE in AbstractResolver.exists() if a resource cannot be found (IVY-831)
|
|
- FIX: Ivy distribution jars contains duplicate entries (IVY-828)
|
|
- FIX: ivy:report will generate an HTML file that references non-existent ivy-report.css (IVY-826)
|
|
- FIX: dynamic resolveMode not being dynamic on branch (IVY-825)
|
|
- FIX: Filesystem repositories can not have () in the path (IVY-797)
|
|
- FIX: Type tag in poms not supported (IVY-762)
|
|
- FIX: An empty exclusion tag results in an IllegalArgumentException (IVY-821)
|
|
- FIX: Maven scope defined in POM dependencyManagement section not honoured (IVY-811)
|
|
- FIX: SFTPRepository incorrectly calculates last modified time for resources (IVY-815)
|
|
- FIX: Filesystem resolver does not evaluate [branch] token when publishing (IVY-814)
|
|
- FIX: Using ivy:settings with the "id" attribute not behaving as expected (IVY-809)
|
|
- FIX: onMissingDescriptor doesn't work due to == comparison (IVY-805) (thanks to Ben Hale)
|
|
- FIX: revision token is not set in report outputpattern (IVY-272)
|
|
- FIX: Ivy uses the first set of configurations it sees when resolving multiple versions of a module (IVY-681)
|
|
- FIX: Eviction fails for libs not providing their ivy configuration and providing artifacts named different between lib versions (IVY-537)
|
|
- FIX: Memory leak in ModuleRevisionId.java (IVY-791)
|
|
- FIX: conflict manager scoping does not work as expected (IVY-465)
|
|
- FIX: ivy.original.xml file using artifact pattern in cache and causing problems (IVY-787)
|
|
- FIX: ivy:retrieve with sync="true" removes the .svn directory (IVY-763)
|
|
- FIX: Ivy silently fails XML errors in ivyrep (IVY-579)
|
|
- FIX: Extra Attributes are not available to resolver after resolve if cache was empty (IVY-773)
|
|
- FIX: NullPointerException during ResovleEngine.downloadArtifacts. (IVY-592)
|
|
- FIX: setting m2compatible on ibiblio resolver overwrite root and pattern settings (IVY-437) (thanks to Jing Xue)
|
|
- FIX: unable to resolve snapshot versions (IVY-501)
|
|
- FIX: No error or warning when a resolver references a non-existent cache (IVY-777)
|
|
- FIX: ivy properties defined in an include file not available in the file that includes it (IVY-780)
|
|
- FIX: SFTPRepository.list(String) hides exceptions (IVY-751)
|
|
- FIX: Wrong error message for republishing a module (IVY-752)
|
|
- FIX: resolve fails to put metadata in cache (IVY-779)
|
|
- FIX: multiple cleancache and inline retrieve error (IVY-778)
|
|
- FIX: buildlist evicts modules with the same name, but different organisation (IVY-731)
|
|
- FIX: Out of memory/Stack overflow for new highly coupled project (IVY-595)
|
|
- FIX: Compatibility with maven's dependencyMangement (IVY-753)
|
|
- FIX: ivy:settings fails when override is not set to 'true' (IVY-771)
|
|
- FIX: NPE when specifying both resolveId and inline in an Ivy:Resolve (IVY-776)
|
|
- FIX: repreport task not working against a repository structured by branches (IVY-716)
|
|
- FIX: Ivy reports a conflict when the same file is supposed to be retrieved at the same location twice (or more) (IVY-743)
|
|
- FIX: StackOverflowError when configuration extends itself (IVY-696)
|
|
- FIX: XML schema ambiguity (IVY-750)
|
|
- FIX: ivy-resolve fails when a project has different dependencies in different branches (IVY-717)
|
|
- FIX: PublishEventsTest fails when Ivy sources are located in a directory with a + (IVY-755)
|
|
- FIX: XML entity parsing does not work properly (IVY-737) (thanks to Patrick Woodworth)
|
|
- FIX: Cachefileset task silently fails with parent dir ".." construct (IVY-638)
|
|
- FIX: SFTP should verify input parameter for hostname (IVY-734)
|
|
- FIX: Classpath issues with vfs ftp while being used as a bundle (IVY-785)
|
|
- FIX: Relative include in a settings must be evaluated relatively to the settings file (IVY-372)
|
|
- FIX: The Bundle-Version is 0.0.0 in the build artifacts (IVY-802)
|
|
- FIX: Fix the encoding used in XML reports (IVY-816)
|
|
- FIX: Properties tag in ivy conf do not support relative path (IVY-89)
|
|
- FIX: Ivy causes IveDE to fail where a properties file is relative to ivyconf.xml (IVY-573)
|
|
|
|
- DOCUMENTATION: Fixed more than a hundred (100+) obsolete "configuration" references; replaced with "settings" (IVY-863) (thanks to Sakari Maaranen)
|
|
- DOCUMENTATION: Elaborated documentation of ivy files and deliver/publish tasks (IVY-847) (thanks to Sakari Maaranen)
|
|
- DOCUMENTATION: Ivy terminology elaboration and illustration (IVY-852) (thanks to Sakari Maaranen)
|
|
- DOCUMENTATION: Broken link in documentation in Ivy files section, info element page (IVY-788)
|
|
- DOCUMENTATION: Add new cache information to resolver doc (IVY-772) (thanks to Carlton Brown)
|