              Apache Creadur Rat 0.12
                  RELEASE NOTES

The Apache Creadur Rat team is pleased to announce the release of Apache Creadur Rat 0.12

Apache Rat is a release audit tool. It improves accuracy and efficiency when checking
releases. It is heuristic in nature: making guesses about possible problems. It
will produce false positives and cannot find every possible issue with a release.
Its reports require interpretation.

In response to demands from project quality tool developers, Rat is available as a
library suitable for inclusion in tools. This POM describes that library.
Note that binary compatibility is not guaranteed between 0.x releases.

Apache Rat is developed by the Apache Creadur project, a language and build
agnostic home for software distribution comprehension and audit tools.

We now require Maven 3.0.5+ to build Rat, but as before we only require
Maven 2.2.1+ if you want to use Rat in your own Maven projects.
We've integrated Rat into the ASF Jenkins to ensure continuous builds with various JDK versions.

Changes in this version include:

New features:
o RAT-196:  Minor refactoring in pom.xml. Thanks to Karl Heinz Marbais.
o RAT-61:   List files with unapproved licenses in Maven output. Thanks to Jukka Zitting.
o RAT-170:  RAT should use itself during build and site generation. Thanks to Philipp Ottlinger.
o RAT-181:  BinaryGuesser should treat *.truststore as binary.
o RAT-184:  Add DEPENDENCIES to the list of ignored files in NoteGuesser. Thanks to Karl Heinz Marbaise.
o RAT-185:  .repository folder should be ignored. Thanks to Karl Heinz Marbaise.
o RAT-186:  BinaryGuesser should recognize PSD files as images.
o RAT-187:  Add 'SAR', 'HAR', 'WSR' as archives which should be ignored. Thanks to Karl Heinz Marbaise.
o RAT-197:  Improve exclusion defaults when working with Maven 3.3.1 (exclude .mvn). Thanks to Karl Heinz Marbaise.
o RAT-201:  BinaryGuesser should treat *.swf as binary.
            Furthermore BinaryGuesser falls back to UTF-8 encoding in case the encoding given via system property
            (-Dfile.encoding) was not found.
o RAT-202:  Report layout differs between successful RAT checks and existence of unapproved files.
o RAT-202:  Report layout differs between successful RAT checks and existence of unapproved files.
o RAT-203:  Using 'license' in README, source code, javadoc, comments and site instead of 'licence';
            improve terminology to not confuse RAT consumers.
o RAT-204:  Unify resource handling in code and tests, make sure the resources are properly closed. Apply minor refactorings.

Fixed Bugs:
o RAT-163:  Removing the Gradle Plugin from the Rat Core project, so that building
            with Java 5 works again.
o RAT-158:  Fix SAX-Parser warning by explicitly excluding xerces in Doxia 1.2. Thanks to Hervé Boutemy.
o RAT-173:  Allow complete skip of RAT plugin with rat.skip property. Thanks to Chris Burroughs.
o RAT-174:  CDDL1License still very slow, replace Pattern matching with simple String comparison. Thanks to Chris Burroughs.
o RAT-175:  SourceCodeManagementSystems.hasIgnoreFile() should return boolean.
o RAT-177:  Final arrays should be private.
o RAT-188:  Fix problems with AnimalSniffer-plugin when running in GUMP with Java 8.
            Workaround for https://jira.codehaus.org/browse/MANIMALSNIFFER-45 Thanks to Mark Thomas.
o RAT-160:  Ignore build.log created by maven-invoker-plugin. Thanks to Christopher Tubbs.
o RAT-179:  Maven plugin and Ant task do not support adding extra approved licenses.
o RAT-180:  Generify and beautify texts in RAT report.
o RAT-194:  Upgrade to Doxia 1.6 if called directly, does not affect problems reported in RAT-158. Minor improvements. Thanks to Hervé Boutemy.
o RAT-198:  Upgrade plexus-utils to 3.0.20. Thanks to Karl Heinz Marbaise.
o RAT-172:  Exclude technical directories of source code management systems and their ignore files from RAT scans.
o RAT-200:  Upgrade ASF parent POM to 17.


Historical list of changes: http://creadur.apache.org/rat/changes-report.html

For complete information on Apache Creadur Rat, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Apache Creadur Rat website:

http://creadur.apache.org/rat/
