<?xml version='1.0'?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<!--
This file is also used by the maven-changes-plugin to generate the release notes.
Useful ways of finding items to add to this file are:

1.  Add items when you fix a bug or add a feature (this makes the
release process easy :-).

2.  Do a JIRA search for tickets closed since the previous release.

3.  Use the report generated by the maven-changelog-plugin to see all
SVN commits. TBA how to use this with SVN.

To generate the release notes from this file:

mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=nn]
then tweak the formatting if necessary
and commit

The <action> type attribute can be add,update,fix,remove.

    Please list action attributes in the following order:
    issue - required
    type - required
    the rest are optional; order not important

    having the issue number first makes it easier to read the XML outline

-->

<document xmlns="http://maven.apache.org/changes/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/changes/1.0.0 http://maven.apache.org/xsd/changes-1.0.0.xsd">
  <properties>
    <title>Changes in Apache Creadur RAT</title>
    <author email="dev@creadur.apache.org">Apache Creadur RAT developers</author>
  </properties>

  <body>
    <release version="0.13" date="2016-xx-xx" description="Current SNAPSHOT - to be done">
      <action issue="RAT-223" type="fix" due-to="Eric Friedrich" dev="pottlinger">
        Add support for Golang and Perl module files.
      </action>
    </release>

    <release version="0.12" date="2015-09-30" description=
" 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.
">
      <action issue="RAT-215" type="fix" dev="pottlinger">
        Add WOFF2, WOFF, TTF and EOT font file extensions to binary file collection to allow faster detection as binary without reading in the files.
      </action>
      <action issue="RAT-214" type="fix" dev="pottlinger">
        Upgrade commons-compress and apache-ant due to possible security problems.
      </action>
      <action issue="RAT-213" type="fix" dev="pottlinger">
        Upgrade to commons-collections 3.2.2.
      </action>
      <action issue="RAT-210" type="fix" dev="pottlinger">
        Adapt layout of Creadur project pages to use the new ASF logo. Change links to SSL.
      </action>
      <action issue="RAT-163" type="fix" dev="jochen">
        Removing the Gradle Plugin from the Rat Core project, so that building
        with Java 5 works again.
      </action>
      <action issue="RAT-158" type="fix" due-to="Hervé Boutemy" dev="pottlinger">
        Fix SAX-Parser warning by explicitly excluding xerces in Doxia 1.2.
      </action>
      <action issue="RAT-173" type="fix" due-to="Chris Burroughs" dev="pottlinger">
        Allow complete skip of RAT plugin with rat.skip property.
      </action>
      <action issue="RAT-174" type="fix" due-to="Chris Burroughs" dev="pottlinger">
        CDDL1License still very slow, replace Pattern matching with simple String comparison.
      </action>
      <action issue="RAT-175" type="fix" dev="sebb">
        SourceCodeManagementSystems.hasIgnoreFile() should return boolean.
      </action>
      <action issue="RAT-177" type="fix" dev="pottlinger">
        Final arrays should be private.
      </action>
      <action issue="RAT-188" type="fix" due-to="Mark Thomas" dev="pottlinger">
        Fix problems with AnimalSniffer-plugin when running in GUMP with Java 8.
        Workaround for https://jira.codehaus.org/browse/MANIMALSNIFFER-45
      </action>
      <action issue="RAT-160" type="fix" due-to="Christopher Tubbs" dev="pottlinger">
        Ignore build.log created by maven-invoker-plugin.
      </action>
      <action issue="RAT-179" type="fix" dev="pottlinger">
        Maven plugin and Ant task do not support adding extra approved licenses.
      </action>
      <action issue="RAT-180" type="fix" dev="pottlinger">
        Generify and beautify texts in RAT report.
      </action>
      <action issue="RAT-196" type="add" due-to="Karl Heinz Marbais" dev="pottlinger">
        Minor refactoring in pom.xml.
      </action>
      <action issue="RAT-194" type="fix" due-to="Hervé Boutemy" dev="pottlinger">
        Upgrade to Doxia 1.6 if called directly, does not affect problems reported in RAT-158. Minor improvements.
      </action>
      <action issue="RAT-61" type="add" due-to="Jukka Zitting" dev="dennisl">
        List files with unapproved licenses in Maven output.
      </action>
      <action issue="RAT-170" type="add" due-to="Philipp Ottlinger" dev="dennisl">
        RAT should use itself during build and site generation.
      </action>
      <action issue="RAT-181" type="add" dev="sebb">
        BinaryGuesser should treat *.truststore as binary.
      </action>
      <action issue="RAT-184" type="add" due-to="Karl Heinz Marbaise" dev="pottlinger">
        Add DEPENDENCIES to the list of ignored files in NoteGuesser.
      </action>
      <action issue="RAT-185" type="add" due-to="Karl Heinz Marbaise" dev="dennisl">
        .repository folder should be ignored.
      </action>
      <action issue="RAT-186" type="add" dev="dennisl">
        BinaryGuesser should recognize PSD files as images.
      </action>
      <action issue="RAT-187" type="add" due-to="Karl Heinz Marbaise" dev="dennisl">
        Add 'SAR', 'HAR', 'WSR' as archives which should be ignored.
      </action>
      <action issue="RAT-197" type="add" due-to="Karl Heinz Marbaise" dev="pottlinger">
        Improve exclusion defaults when working with Maven 3.3.1 (exclude .mvn).
      </action>
      <action issue="RAT-198" type="fix" due-to="Karl Heinz Marbaise" dev="pottlinger">
        Upgrade plexus-utils to 3.0.20.
      </action>
      <action issue="RAT-172" type="fix" dev="pottlinger">
        Exclude technical directories of source code management systems and their ignore files from RAT scans.
      </action>
      <action issue="RAT-200" type="fix" dev="pottlinger">
        Upgrade ASF parent POM to 17.
      </action>
      <action issue="RAT-201" type="add" dev="pottlinger">
        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.
      </action>
      <action issue="RAT-202" type="add" dev="pottlinger">
         Report layout differs between successful RAT checks and existence of unapproved files.
      </action>
      <action issue="RAT-202" type="add" dev="pottlinger">
         Report layout differs between successful RAT checks and existence of unapproved files.
      </action>
      <action issue="RAT-203" type="add" dev="pottlinger">
         Using 'license' in README, source code, javadoc, comments and site instead of 'licence';
         improve terminology to not confuse RAT consumers.
      </action>
      <action issue="RAT-204" type="add" dev="pottlinger">
        Unify resource handling in code and tests, make sure the resources are properly closed. Apply minor refactorings.
      </action>
    </release>
    <release version="0.11" date="2014-08-31" description=
"* Rat stays at compiler level 1.5 to be more compliant with other Maven plugins,
  fixed build/CI environment to reflect and ensure that.

  * Fixed Javadoc warnings during build, upgraded Maven Plugin Plugin to avoid
  warnings in generated code (https://jira.codehaus.org/browse/MPLUGIN-237)
">
    <action issue="RAT-135" type="fix">addLicenseHeaders is missing a space on license header.</action>
    <action issue="RAT-144" type="fix">AbstractRatMojo String constant arrays should be private</action>
    <action issue="RAT-148" type="fix" due-to="Chris A Mattmann">LicenseAddingReport#report has useless call to metaData.getData</action>
    <action issue="RAT-151" type="fix">Detect more archive file formats</action>
    <action issue="RAT-152" type="fix">Recognize the format for .bsh, .fml and .jsp file types</action>
    <action issue="RAT-153" type="fix">Do not add extra empty lines when appending headers for the Apache License</action>
    <action issue="RAT-154" type="fix">Indentation of the license header should be decided per family</action>
    <action issue="RAT-155" type="fix">Do not add empty first and last lines in the license header for certain families</action>
    <action issue="RAT-156" type="fix">Add some symmetry when applying license headers to files with file type specific headers</action>
    <action issue="RAT-159" type="fix">Detect OpenOffice documents as being archives</action>
    <action issue="RAT-129" type="add">Add support for CDDL 1.0</action>
    <action issue="RAT-162" type="add" due-to="Andrew Gaul">CDDL1License.matches slow with large inputs</action>
    <action issue="RAT-164" type="add">Allow skipping execution entirely</action>
    <action issue="RAT-165" type="add">Use a maven defaultGoal for RAT's base pom.xml</action>
    </release>
    <release version="0.10" date="2013-09-05" description=
"The 0.10 version includes several bug fixes,
most notably a fix for 0.9 performance issues.
 * Simpler binary archive
 * Updated dependencies and plugins
 * Fixed up generics and annotations">
      <action issue="RAT-137" type="fix">Website shows incorrect Maven goals in some pages</action>
      <action issue="RAT-128" type="fix">Use the proper name for the Apache License</action>
      <action issue="RAT-138" type="fix">RAT runs very slowly on some input</action>
      <action issue="RAT-140" type="fix">OASISLicense allows invalid Copyright line</action>
      <action issue="RAT-139" type="fix">FullTextMatchingLicense.prune uses inefficient deleteAtChar</action>
      <action issue="RAT-145" type="fix">Maven plugin should not run in the "verify" phase, but in the "validate" phase</action>
      <action issue="RAT-129" type="add">Add support for CDDL 1.0 </action>
    </release>
    <release version="0.9"  date="2013-05-02" description=
" * Improved documentation
  * Rat now requires Java5 at runtime
  * The Antlib contains a new matcher type that allows matching on the
   full text of the license rather than a single line.
 * Support automatic addition of license headers to svg files.">
      <action issue="RAT-3" type="fix">Incorrect alignment of file contents</action>
      <action issue="RAT-102" type="fix">typo in pom.xml / field description</action>
      <action issue="RAT-109" type="fix">Return value of mkdirs() is not checked and no error handling occurs</action>
      <action issue="RAT-116" type="fix">Docs don't say what the default excludes are</action>
      <action issue="RAT-120" type="fix">fix some maven warnings and upgrade some dependencies.</action>
      <action issue="RAT-121" type="fix">use maven java5 annotations for maven plugins</action>
      <action issue="RAT-122" type="fix">Maven Plugin: field to ignore errors and continue the build</action>
      <action issue="RAT-124" type="fix">Rat plugin should exclude the configuration directory used by IDEA</action>
      <action issue="RAT-126" type="fix">Default excludes do not ignore .git/ repository</action>
      <action issue="RAT-13" type="update">[GOOGLE-14] GNU License support</action>
      <action issue="RAT-49" type="update">Recognise MIT LIcense</action>
      <action issue="RAT-104" type="update">
          Using jUnit4 annotation based tests instead of junit3 - migration from junit 3.8.2 to current junit 4.10
      </action>
      <action issue="RAT-106" type="fix">Minor Javadoc errors fixed in 3 files</action>
      <action issue="RAT-108" type="update">Add native support for thrift generated code to be ignored</action>
      <action issue="RAT-111" type="update">RAT does not ignore javah generated files</action>
      <action issue="RAT-125" type="update">Support applied AL20 license headers, including checking for required copyright header line</action>
      <action issue="RAT-78" type="add">Support doxia 1.1.2</action>
      <action issue="RAT-59" type="update">Upgrade To Java 1.5</action>
      <action issue="RAT-119" type="update">Upgrade Maven prerequisite to 2.2.1</action>
    </release>
    <release version="0.8-incubating"  date="2011-11-15" description=
"Version 0.8 improves the command line interface, supports more file
types when adding license headers and makes it easier to detect custom
licenses.
Some website fixes
The Antlib and Maven plugins now provide simpler ways to detect licenses not directly supported by Rat.">
      <action issue="RAT-86" type="bug">CLI doesn't allow adding of licenses unless a custom stylesheet has been specified</action>
      <action issue="RAT-87" type="bug">Tests could leave temporary files around.></action>
      <action issue="RAT-92" type="bug">When adding licenses Rat used \n instead of the platform dependent line--end character(s)</action>
      <action issue="RAT-94" type="bug">Streams were not always closed immediately when adding licenses.</action>
      <action issue="RAT-79" type="update">Support automatic addition of license headers to Velocity templates</action>
      <action issue="RAT-83" type="update">Support automatic addition of license headers to Scala source files</action>
      <action issue="RAT-84" type="update">Support automatic addition of license headers to Ruby source files</action>
      <action issue="RAT-89" type="update">Support automatic addition of license headers to Perl, TCL, C++, C# and PHP source files</action>
      <action issue="RAT-91" type="update">Support automatic addition of license headers to Groovy source files</action>
      <action issue="RAT-85" type="update">Allow --addLicense as an alias for --addLicence for people used to the US spelling.</action>
      <action issue="RAT-34" type="update">--addLicense will add the license to the top of Java files without a package line or XML files without an XML declaration now - it used to not add anything.</action>
      <action issue="RAT-67" type="update">The XML and standard plain text reports now contain a timestamp with the time the report has been generated.</action>
      <action issue="RAT-95" type="update"> When adding licenses Rat will now remove any BOM from the file.</action>
      <action issue="RAT-93" type="update">--addLicense now supports more .NET specific files like MS Visual Studio project and solution files</action>
      <action issue="RAT-99" type="update">The command line interface has a new option that specifies a file containing regular expressions for files to exclude</action>
    </release>
    <release version="0.7-incubating"  date="2013-05-02" description=
"The following changes have been made in Apache RAT 0.7:

- Add support for Python scripts, C source files, Unix shell scripts (.sh) and Windows batch files (.bat) (RAT-68)
- Allow Ant task to output report as XML. (RAT-73)
- Allow users to specify a custom XSLT stylesheet for reports (RAT-74, and RAT-75)
- Some website fixes
- Optionally auto-add headers to source files. (RAT-76) ">
      <action issue="RAT-62" type="fix">Some of Rat's own files missing License Headers</action>
      <action issue="RAT-63" type="fix">ant-task-examples.xml has an wrong uri in the -typedef ant target</action>
      <action issue="RAT-70" type="fix">Missing closing html tag in generated report by</action>
      <action issue="RAT-17" type="update">Support the use of archives as input</action>
      <action issue="RAT-30" type="update">Support automatic addition of license headers</action>
      <action issue="RAT-76" type="update">Support automatic addition of license headers</action>
      <action issue="RAT-52" type="update">Merge In Rat Output Semantics</action>
      <action issue="RAT-56" type="update">Commons IO Wildcard Excludes</action>
      <action issue="RAT-65" type="update">Rat Pom cleanup</action>
      <action issue="RAT-68" type="update">Add support for Python, C, &amp; script files (.bat &amp; .sh)</action>
      <action issue="RAT-72" type="update">Keep version in plugins sample doc up to date</action>
      <action issue="RAT-73" type="update">Support for XML output in Ant task and Maven Plugin</action>
      <action issue="RAT-73" type="update">Support for XML output in Ant task and Maven Plugin</action>
      <action issue="RAT-74" type="update">Support for custom XSLT stylesheets</action>
      <action issue="RAT-75" type="update">Support for custom XSLT stylesheets</action>
    </release>
    <release version="0.6-incubating" date="2009-04-10" description=
"This is the first version using the org.apache package
structure and related names. RAT users are strongly encouraged to
migrate, as the old Google version will no longer be maintained.
 * Support for TMF header
 * Comprehend PEM, CRL file endings
 * Added reporting capability to recursive rat script
 * Moved to the Incubator@Apache
">
      <action issue="RAT-37" type="fix" dev="jochen"
          due-to="Jukka Zitting" due-to-email="jukka@apache.org">
        List all resources with unapproved licenses at the beginning of the report.
      </action>
      <action issue="RAT-36" type="fix" dev="jochen"
          due-to="Jukka Zitting" due-to-email="jukka@apache.org">
        Report header incorrectly refers to an "L" license marker
      </action>
      <action issue="RAT-33" type="fix" dev="jochen"
          due-to="Gavin" due-to-email="gavin@16degrees.com.au">
        Mailing list subscribe points to unsubscribe
      </action>
      <action issue="RAT-3" type="fix">Incorrect alignment of file contents</action>
      <action issue="RAT-11" type="fix">Incorrect number of unnapproved licences reported</action>
      <action issue="RAT-12" type="fix">Incorrect SCM info in maven plugin pom</action>
      <action issue="RAT-29" type="fix">NPE on &quot;mvn install&quot; in rat-anttasks</action>
      <action issue="RAT-34" type="fix">No license header added for java files that do not contain project line</action>
      <action issue="RAT-35" type="fix">Incorrect number of unapproved licenses reported by rat:check</action>
      <action issue="RAT-8" type="update">add JavaCC to GeneratedLicenseNotRequired</action>
      <action issue="RAT-9" type="update">A more informative website</action>
      <action issue="RAT-10" type="update">A few Javadoc comments</action>
      <action issue="RAT-23" type="update">More details in text summary</action>
      <action issue="RAT-24" type="update">Include checksums on web page</action>
      <action issue="RAT-26" type="update">Improve web summary</action>
      <action issue="RAT-27" type="update">Index page</action>
      <action issue="RAT-6" type="add">RAT Source Import</action>
      <action issue="RAT-28" type="add">Repackage maven plugin</action>
      <action issue="RAT-1" type="add">maven-rat-plugin and ant-rat tasks</action>
    </release>
    <release version="0.5.1" description=
"* Fixed file closing bug
 * Fixed XML bad character bug"/>
    <release version="0.5" description=
" * Added header matcher for DoJo.
 * Refactoring existing codebase to separate concerns and use
   resource pipeline.
 * New header matching library."/>
    <release version="0.4.1" description=
"Rat 0.4.1 is the first release with distributions. The release was cut
for this purpose.
 * Created POM for use with Rat library.
 * Ant task switched to use Xml based report."/>
    <release version="0.4" description=
" * Ant tasks added. These allow Rat reports to be run against a wide variety
   of resources from within Ant.
 * Legacy report is now deprecated. It will be removed before the next release.
 * Created stylesheet for xml reports which produce output similar to the legacy
   plain text report. Application now uses the xml report with that stylesheet.
 * Revised xml output format
 * Improve support for binary recognition by adding code that tastes files"/>
    <release version="0.3" description=
" * This is the last release with the original hacked together plain test report.
   The new XML reporting code is present but is not yet the default.
 * Rat 0.3 is the first release with release notes. All previous releases are
   now consigned to Ancient History. No record of them will be found here."/>
  </body>
</document>
