              Apache Creadur Rat 0.13
                  RELEASE NOTES

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

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.

Current SNAPSHOT - to be done

Changes in this version include:

New features:
o RAT-228:  Fixing broken Ant unit test setup and making tests run more deterministic. Thanks to Romain Manni-Bucau.
o RAT-245:  Update to latest available and compatible Apache ANT 1.9.12 to get bugfixes and newer JDK support.
o RAT-245:  Update to latest available and compatible Apache ANT 1.9.11 to get bugfixes and newer JDK support.
o RAT-245:  Update to latest available and compatible Apache ANT 1.9.10 due to CVE-2017-5645.
o RAT-243:  Add .checkstyle to Eclipse default exclusions. Thanks to Matthew Ouyang.
o RAT-241:  Reduce default log level of used exclusions to debug, only print totals into the maven log like includes. Thanks to Andrew Gaul.
o RAT-233:  Recognize XML-based .Net Core xproj files. Thanks to Stefan Bodewig.
o RAT-226:  Update to latest available and compatible Apache ANT 1.9.9.

Fixed Bugs:
o RAT-242:  Use UTF-8 as default encoding for RAT Ant reports. Thanks to Matthias Bläsing.
o RAT-234:  Do not treat TypeScript files as binary. Thanks to ajbanck.
o RAT-240:  Overhauled CLI module to allow file based exclusions with wildcards and explicit file names.
o RAT-222:  Download section does not work if SNAPSHOT is deployed, add download of previous RAT release.
o RAT-224:  Fixed example on webpage abozt usage of custom licenses. Thanks to John Patrick.
o RAT-223:  Add support for Golang and Perl module files. Thanks to Eric Friedrich.


Historical list of changes: https://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:

https://creadur.apache.org/rat/
