<?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-233" type="add" due-to="Stefan Bodewig" dev="pottlinger">
	Recognize XML-based .Net Core xproj files.
      </action>
      <action issue="RAT-226" type="add" dev="pottlinger">
        Update to latest available and compatible Apache ANT 1.9.9.
      </action>
      <action issue="RAT-222" type="fix" dev="pottlinger">
        Download section does not work if SNAPSHOT is deployed, add download of previous RAT release.
      </action>
      <action issue="RAT-224" type="fix" due-to="John Patrick" dev="pottlinger">
        Fixed example on webpage abozt usage of custom licenses.
      </action>
      <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 Marbaise" 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>
