Release Notes

XXXX DATE XXXXXX - The Apache Ivy project is pleased to announce its 2.5.0 release.

What is Ivy?

Apache Ivy is a tool for managing (recording, tracking, resolving and reporting) project dependencies, characterized by flexibility, configurability, and tight integration with Apache Ant.

Download

You can download this release at https://ant.apache.org/ivy/download.cgi

Issues should either be discussed in the Ivy user mailing list or reported at https://issues.apache.org/jira/browse/IVY

More information about the project can be found on the website https://ant.apache.org/ivy/

Key features in this release

Key features of this 2.5.0 release are:

  • The minimum runtime Java version required is now Java 7

  • Ivy now uses BouncyCastle OpenPGP API 1.59. Due to the non backward compatibility of that library, earlier versions are not supported.

  • Ivy now uses HttpComponents HttpClient 4.5.x version with HTTP backed resolvers. Users are expected to have this version of the library (and its dependencies) in their runtime classpath if they want to use such resolvers. The previous (similarly named but not the same) commons-httpclient library is no longer used or supported. (IVY-1563)

List of Changes in this Release

For details about the following changes, check our JIRA install at https://issues.apache.org/jira/browse/IVY

List of changes since Ivy 2.4.0:

  • FIX: Local conflict manager didn’t handle deeper conflicts in transitive dependencies (IVY-1404)

  • FIX: Made the Maven 'test' configuration public so we can use the test-jar as dependency (IVY-1444)

  • FIX: NullPointerException in dependencytree with no dependencies (IVY-1539)

  • FIX: checkIfChanged is not settable attribute for checkdepsupdate ant task (IVY-1549)

  • FIX: ArrayIndexOutOfBoundsException when using a p2 repository for dependencies (IVY-1504)

  • FIX: fixdeps remove transitive 'kept' dependencies

  • FIX: PomModuleDescriptorParser should parse licenses from parent POM (IVY-1526) (Thanks to Jaikiran Pai)

  • FIX: dynamic revisions are not cached per resolver (IVY-1430) (Thanks to Stephen Haberman)

  • FIX: Dependencies failed using branch attribute (and extra attributes) (IVY-1141) (Thanks to Stephen Haberman)

  • FIX: useCacheOnly should allow lookup of changing dependencies in cache (IVY-1515) (Thanks to Ilya)

  • FIX: Translation of POM to Ivy XML with * exclusion is removing main artifact (IVY-1531) (Thanks to Jaikiran Pai)

  • FIX: Have makepom task take description from ivy-module > info > description element (IVY-1520)

  • FIX: Fix RetrieveEngine to take into account the correct extension while dealing with unpacked artifacts (IVY-1478) (Thanks to Jaikiran Pai)

  • FIX: ParseException "Unsupported repository, resources names are not uris" for ivy.xml with parent on Windows (IVY-1448) (Thanks to Riccardo Foschia and Jaikiran Pai)

  • FIX: Ivy 2.4.0 improperly handles modules with colon (:) in version (IVY-1522) (Thanks to Jaikiran Pai)

  • FIX: Delay the processing of configured cache ttls, until the IvySettings object is usable (IVY-1495) (Thanks to Jaikiran Pai)

  • FIX: Including optional ivysettings of type 'file' doesn’t work when file doesn’t exist (IVY-1555) (Thanks to Jaikiran Pai)

  • FIX: Makepom ignores dependency classifiers (IVY-1528) (Thanks to Jaikiran Pai)

  • FIX: Infinite loop in dependency tree (IVY-1540) (Thanks to Jaikiran Pai)

  • FIX: HTTP issue: Basic authentication is stuck in 401 loop (IVY-1336)

  • FIX: command line: -types seems to not accept comma [IVY-1355]

  • FIX: Mixed use of symlinks leads to cache corruption [IVY-1498] (Thanks to Stephen Haberman)

  • FIX: Some cached locations are stored incorrectly resulting in MalformedURLException [IVY-1566] (Thanks to Aurélien Pupier)

  • FIX: defaultconf/mapping attributes ignored when extended/included from parent file [IVY-1315] [IVY-1419] [IVY-1420] [IVY-1437] (Thanks to Willem Verstraeten)

  • FIX: ApacheURLLister skips versions with URL encoded characters [IVY-1442] [IVY-1573]

  • FIX: Configuration lists are sensitive to whitespace; multiple split/merge methods [IVY-309] [IVY-1282]

  • FIX: Warnings about illegal reflection access due to lack of methods to retrieve default authenticator in Java 5 to 8 [IVY-1569]

  • FIX: Cycle in parent POM ancestry yields StackOverflowError in PomModuleDescriptorParser (IVY-1545) (Thanks to Brett Randall)

  • FIX: The method hasIvyListener in org.apache.ivy.core.event.EventManager always returned false

  • FIX: Allow conditionally activated properties through Maven profiles, to be referenced in the pom.xml (IVY-1577)

  • FIX: Fix Maven dependency resolution for dependencies with multiple different classifiers (IVY-1576)

  • FIX: Correct parent classloader when lauching resolved artifacts from CLI (IVY-1483) (Thanks to Stephan Feder)

  • FIX: Make Main.run() public (usable with REPL) (IVY-1321 IVY-1578) (Thanks to Greg Perry)

  • IMPROVEMENT: Throw an IllegalStateException when retrieving the resolutionCacheRoot on the DefaultResolutionCacheManager if the basedir (or IvySettings) is not set (IVY-1482)

  • IMPROVEMENT: Optimization: limit the revision numbers scanned if revision prefix is specified (Thanks to Ernestas Vaiciukevičius)

  • IMPROVEMENT: Update BouncyCastle to 1.59 (IVY-1521) (Thanks to Michal Srb)

  • IMPROVEMENT: symlinkmass option of retrieve task has been deprecated in this release and will no longer be supported since, starting this version of Ivy, Ivy uses Java standard API(s) for symlink management and as such doesn’t spawn a process to execute symlink creation shell commands, like it used to do earlier. The symlinkmass option was previously there to launch just one single process instead of multiple processes for symlink creation. Now with the usage of the Java standard API(s), this option no longer is relevant.

  • IMPROVEMENT: Ivy command line now supports passing overwriteMode option to retrieve task (IVY-1447)

  • IMPROVEMENT: Support timestamped SNAPSHOT versions from Maven repository (IVY-1153) and (IVY-1476)

  • IMPROVEMENT: Update Commons VFS to 2.2

  • IMPROVEMENT: Ivy now supports activating of Maven profiles, in pom.xml, by jdk, os, property and file (IVY-1558) and (IVY-1577)

  • NEW: Lets SSH-based resolvers use an ~/.ssh/config file to find username/hostname/keyfile options (Thanks to Colin Stanfill)

  • NEW: Add ivy.maven.lookup.sources and ivy.maven.lookup.javadoc variables to control the lookup of the additional artifacts. Defaults to true, for backward compatibility (IVY-1529)

  • NEW: Add (conditional) support for SHA-256, SHA-512 and SHA-384 checksum algorithms (IVY-1554) (Thanks to Jaikiran Pai)

  • NEW: The standalone Ivy jar can now be used to generate a pom file for the resolved module, using the makepom option (Thanks to Thomas Pasch)

Committers and Contributors

Here is the list of people who have contributed source code and documentation up to this release. Many thanks to all of them, and also to the whole IvyDE community contributing ideas and feedback, and promoting the use of Apache Ivy !

Committers:

  • Matt Benson

  • Jean-Louis Boudart

  • Maarten Coene

  • Charles Duffy

  • Gintautas Grigelionis

  • Xavier Hanin

  • Nicolas Lalevée

  • Jaikiran Pai

  • Jon Schneider

  • Gilles Scokart

Contributors:

  • Ingo Adler

  • alex322

  • Mathieu Anquetin

  • Andreas Axelsson

  • Stéphane Bailliez

  • Karl Baum

  • Andrew Bernhagen

  • Mikkel Bjerg

  • Per Arnold Blaasmo

  • Jeffrey Blattman

  • Jasper Blues

  • Jim Bonanno

  • Joseph Boyd

  • Dave Brosius

  • Matthieu Brouillard

  • Carlton Brown

  • Mirko Bulovic

  • Ed Burcher

  • Jamie Burns

  • Wei Chen

  • Chris Chilvers

  • Kristian Cibulskis

  • Andrea Bernardo Ciddio

  • Archie Cobbs

  • Flavio Coutinho da Costa

  • Stefan De Boey

  • Mykhailo Delegan

  • Charles Duffy

  • Martin Eigenbrodt

  • Stephen Evanchik

  • Stephan Feder

  • Robin Fernandes

  • Gregory Fernandez

  • Danno Ferrin

  • Riccardo Foschia

  • Benjamin Francisoud

  • Wolfgang Frank

  • Jacob Grydholt Jensen

  • John Gibson

  • Mitch Gitman

  • Evgeny Goldin

  • Scott Goldstein

  • Stephen Haberman

  • Aaron Hachez

  • Ben Hale

  • Peter Hayes

  • Scott Hebert

  • Payam Hekmat

  • Tobias Himstedt

  • Achim Huegen

  • Pierre Hägnestrand

  • Ilya

  • Matt Inger

  • Anders Jacobsson

  • Anders Janmyr

  • Steve Jones

  • Christer Jonsson

  • Michael Kebe

  • Matthias Kilian

  • Alexey Kiselev

  • Gregory Kisling

  • Stepan Koltsov

  • Heschi Kreinick

  • Sebastian Krueger

  • Thomas Kurpick

  • Costin Leau

  • Tat Leung

  • Antoine Levy-Lambert

  • Tony Likhite

  • Andrey Lomakin

  • William Lyvers

  • Sakari Maaranen

  • Jan Materne

  • Markus M. May

  • Abel Muino

  • J. Lewis Muir

  • Stephen Nesbitt

  • Joshua Nichols

  • Bernard Niset

  • Ales Nosek

  • David Maplesden

  • Glen Marchesani

  • Phil Messenger

  • Steve Miller

  • Mathias Muller

  • Randy Nott

  • Peter Oxenham

  • Douglas Palmer

  • Thomas Pasch

  • Jesper Pedersen

  • Emmanuel Pellereau

  • Greg Perry

  • Carsten Pfeiffer

  • Yanus Poluektovich

  • Roshan Punnoose

  • Aurélien Pupier

  • Jean-Baptiste Quenot

  • Carl Quinn

  • Damon Rand

  • Geoff Reedy

  • Torkild U. Resheim

  • Christian Riege

  • Frederic Riviere

  • Jens Rohloff

  • Andreas Sahlbach

  • Brian Sanders

  • Adrian Sandor

  • Michael Scheetz

  • Ben Schmidt

  • Ruslan Shevchenko

  • John Shields

  • Nihal Sinha

  • Gene Smith

  • Michal Srb

  • Colin Stanfill

  • Simon Steiner

  • Johan Stuyts

  • John Tinetti

  • Erwin Tratar

  • Jason Trump

  • David Turner

  • Ernestas Vaiciukevičius

  • Tjeerd Verhagen

  • Willem Verstraeten

  • Richard Vowles

  • Sven Walter

  • Zhong Wang

  • James P. White

  • Tom Widmer

  • John Williams

  • Chris Wood

  • Patrick Woodworth

  • Jaroslaw Wypychowski

  • Sven Zethelius

  • Aleksey Zhukov