<?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.14-SNAPSHOT" date="2019-xx-xx" description="Current SNAPSHOT - to be done">
      <action issue="RAT-262" type="fix" dev="pottlinger">
        Treat JSON data as binary to avoid reports of missing licenses.
      </action>
      <action issue="RAT-260" type="fix" due-to="Kamil Breguła" dev="pottlinger">
        Change to docker image when building on Travis to avoid JDK version mixup in traditional build setup.
      </action>
      <action issue="RAT-258" type="fix" dev="pottlinger">
        Update to latest commons-compress to fix CVE-2019-12402.
      </action>
      <action issue="RAT-257" type="fix" dev="pottlinger">
        Adapt help text for CLI usage of RAT.
      </action>
      <action issue="RAT-254" type="add" dev="pottlinger">
        Properly finish move to gitbox/github, get rid of SVN references and adapt main branch to master and fix all Jenkins build jobs for RAT.
      </action>
      <action issue="RAT-244" type="add" dev="pottlinger">
        Update compiler level to 1.7 to allow building with more recent JDKs. Update plugins and dependencies to more modern versions to fix security issues (CVE-warnings).
      </action>
      <action issue="RAT-212" type="add" due-to="Niels Basjes" dev="pottlinger">
        Add alternative https URLs in Apache License, Version 2.0 to allow automatic recognition as valid ASF2.0.
      </action>
      <action issue="RAT-250" type="add" dev="pottlinger">
        Update to latest available and compatible Apache ANT 1.9.14 to get bugfixes.
      </action>
      <action issue="INFRA-17348" type="add" dev="jochen">
        SCM repository has been moved from svn.apache.org (Subversion) to gitbox.apache.org (Git)
      </action>
    </release>
    <release version="0.13" date="2018-10-13" description="Lots of bugfixes and improvements.">
      <action issue="RAT-228" type="add" due-to="Romain Manni-Bucau" dev="pottlinger">
        Fixing broken Ant unit test setup and making tests run more deterministic.
      </action>
      <action issue="RAT-245" type="add" dev="pottlinger">
        Update to latest available and compatible Apache ANT 1.9.12 to get bugfixes and newer JDK support.
      </action>
      <action issue="RAT-245" type="add" dev="pottlinger">
        Update to latest available and compatible Apache ANT 1.9.11 to get bugfixes and newer JDK support.
      </action>
      <action issue="RAT-245" type="add" dev="pottlinger">
        Update to latest available and compatible Apache ANT 1.9.10 due to CVE-2017-5645.
      </action>
      <action issue="RAT-242" type="fix" due-to="Matthias Bläsing" dev="pottlinger">
	Use UTF-8 as default encoding for RAT Ant reports.
      </action>
      <action issue="RAT-234" type="fix" due-to="ajbanck" dev="pottlinger">
	Do not treat TypeScript files as binary.
      </action>
      <action issue="RAT-243" type="add" due-to="Matthew Ouyang" dev="pottlinger">
	Add .checkstyle to Eclipse default exclusions.
      </action>
      <action issue="RAT-241" type="add" due-to="Andrew Gaul" dev="pottlinger">
	Reduce default log level of used exclusions to debug, only print totals into the maven log like includes.
      </action>
      <action issue="RAT-240" type="fix" dev="pottlinger">
	Overhauled CLI module to allow file based exclusions with wildcards and explicit file names.
      </action>
      <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>
