<?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.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-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)
- Optionally auto-add headers to source files. (RAT-76) ">
 * Some website fixes
 * Issues Resolved (see http://issues.apache.org/jira):
  * Bug:
      <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>
