<?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.
-->

<!-- Description: http://maven.apache.org/plugins/maven-changes-plugin/changes.html -->

<document>
  <properties>
    <title>Apache Commons Build Plugin Release Notes</title>
    <author email="dev@commons.apache.org">Apache Commons Developers</author>
  </properties>

  <body>
    <release version="1.13" date="20YY-MM-DD" description="Feature release">
      <action dev="ggregory" type="update" due-to="Dependabot">
        Bump maven-antrun-plugin from 1.8 to 3.0.0, #18.
      </action>
      <action dev="ggregory" type="update" due-to="Gary Gregory, Dependabot">
        Update spotbugs-maven-plugin from 4.1.3 to 4.2.1, #24.
      </action>
      <action dev="ggregory" type="update" due-to="Dependabot">
        Update actions/checkout from v2.3.3 to v2.3.4 #9, #14, #21.
      </action>
      <action dev="ggregory" type="update" due-to="Dependabot">
        Bump actions/cache from v2 to v2.1.4 #25.
      </action>
    </release>
    <release version="1.12" date="2020-10-17" description="Feature release">
      <action dev="sebb" type="update">
        commons-build:mail-page - add links to lists.apache.org.
      </action>
      <action dev="sebb" type="fix" issue="COMMONSSITE-137">
        commons-build:all ignores commons.release.hash settings.
      </action>
      <action dev="ggregory" type="update">
        Enable GitHub build.
      </action>
      <action dev="ggregory" type="update" due-to="Gary Gregory, Dependabot">
        Update spotbugs-maven-plugin from 4.0.0 to 4.1.3, #7, #12, #15.
      </action>
      <action dev="ggregory" type="update" due-to="Dependabot">
        Update actions/checkout from v2.3.1 to v2.3.3 #9, #14, #21.
      </action>
      <action dev="ggregory" type="update" due-to="Dependabot">
        Update versions-maven-plugin from 2.7 to 2.8.1 #10.
      </action>
      <action dev="ggregory" type="update" due-to="Dependabot">
        Update actions/setup-java from v1.4.0 to v1.4.2 #13.
      </action>
    </release>
    <release version="1.11" date="2019-08-30" description="Feature release">
      <action dev="ggregory" type="update">
        Update versions-maven-plugin 2.5 -> 2.7.
      </action>
      <action dev="ggregory" type="update">
        Update maven-plugin-plugin 3.5.2 -> 3.6.0.
      </action>
      <action dev="ggregory" type="update">
        Update maven-plugin-tools-ant  3.5.2 -> 3.6.0.
      </action>
      <action dev="ggregory" type="update">
        Update commons.release-plugin.version 1.5 -> 1.6.
      </action>
      <action dev="ggregory" type="update">
        Replace http://mail-archives.apache.org with https://mail-archives.apache.org.
      </action>
    </release>
    <release version="1.10" date="2019-02-26" description="Feature release">
      <action dev="ggregory" type="update">
        Use SHA512 signatures as the default in the download page.
      </action>
      <action dev="sebb" type="update">
        Use SHA256 signatures as the default in the download page.
      </action>
    </release>
    <release version="1.9" date="2018-06-16" description="Feature release">
      <action dev="ggregory" type="fix">
        Fix in src/main/resources/commons-xdoc-templates/readme-md-template.md for components that have a major version number in their artifact IDs.
      </action>
      <action dev="ggregory" type="add" issue="COMMONSSITE-109">
        Add a goal for creating all items for pre-release.
      </action>
      <action dev="ggregory" type="add" issue="COMMONSSITE-116">
        Add a goal for creating the NOTICE.txt file.
      </action>
      <action dev="ggregory" type="add">
        Fix README.md generation typo: 'JavaDoc' -> 'Javadoc'.
      </action>
      <action dev="ggregory" type="update">
        Change the Maven goal prefix from "commons" to "commons-build".
      </action>
      <action dev="ggregory" type="update">
        Update platform requirement from Java 7 to Java 8.
      </action>
    </release>
    <release version="1.8" date="2018-04-02" description="Feature release">
      <action dev="sebb" type="update">
        Use sha1 signatures as opposed to md5 signatures in download page.
      </action>
      <action dev="britter" type="add" issue="COMMONSSITE-94">
        Include Javadoc badge in README.md file.
      </action>
      <action dev="sebb" type="fix">
        Add eol-style:native otherwise generated files can cause commit errors
      </action>
    </release>
    <release version="1.7" date="2016-11-18" description="Feature release">
      <action dev="ggregory" type="add" issue="COMMONSSITE-90">
        Include badges in the README.md file. 
      </action>
      <action dev="ggregory" type="add" issue="COMMONSSITE-91">
        Build plugin does not pass the JIRA_ID property when generating README.md.
      </action>
    </release>

    <release version="1.6" date="2016-04-24" description="Feature release">
      <action dev="sebb" type="add">
        Added new download-page subdir property: set this (e.g. to '1.2' or 'lang-1.2' etc) to override the default of binaries/source 
      </action>
    </release>

    <release version="1.5" date="2015-11-28" description="Feature and fix release">
      <action dev="ecki" type="update" issue="COMMONSSITE-81">
        commons-build-plugin README/CONTRIBUTING.md handle multi-modules
      </action>
      <action dev="ecki" type="update">
        Download Page - Better describes KEYS file (and uses https links).
      </action>
      <action dev="britter" type="add">
        CONTRIBUTING.md/README.md - New Goals to build Markdown formatted intro files for GitHub.
      </action>
    </release>

    <release version="1.4" date="3 March 2012" description="Feature and fix release.">
      <action dev="ggregory" type="fix" issue="COMMONSSITE-66">
        Add support for a "commons.release.3" set of properties to offer a 3rd download option.
      </action>
      <action type="update">
        Mailing List Page - Make it clear that you have to be subscribed to post.
      </action>
      <action type="fix">
        Fix announce mod_mbox link
      </action>
    </release>
  </body>
</document>
