<?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 Release Plugin Changes</title>
    <author email="dev@commons.apache.org">Apache Commons Developers</author>
  </properties>

  <body>
    <release version="1.6" date="2019-03-08" description="Version 1.6">
      <action issue="COMMONSSITE-128" type="add" dev="chtompki">Release plugin cleans up staging area before staging</action>
      <action type="update" dev="ggregory">Update Apache Commons Codec from 1.11 to 1.12.</action>
    </release>

    <release version="1.5" date="2019-01-26" description="Version 1.5">
      <action type="update" dev="chtompki">vote-txt, use github as opposed to git-wip</action>
      <action type="fix" dev="chtompki">ReadmeHtmlVelocityDelegate, accommodate for artifactIds ending in numbers</action>
      <action type="fix" dev="chtompki">ReadmeHtmlVelocityDelegate, bcel's artifactId != commons-bcel, but is just bcel</action>
      <action type="update" dev="ggregory">Drop sha-256 and leave sha-512 only</action>
      <action type="update" dev="ggregory">commons.jacoco.version: 0.8.0 -> 0.8.2; java 11 compatibility</action>
      <action issue="COMMONSSITE-123" type="add" dev="mbenson">introduce configuration parameter to perfom distribution checkin using Maven settings server credentials</action>
      <action issue="COMMONSSITE-122" type="fix" dev="mbenson">stage-distributions mojo assumes site directory has basename 'site'</action>
    </release>

    <release version="1.4" date="2018-08-29" description="Version 1.4">
      <action type="update" dev="ggregory">Better error message when files cannot be checked in to the SCM.</action>
      <action type="fix" dev="ggregory">Check the result of checking out files from the SCM.</action>
      <action issue="COMMONSSITE-120" type="update" dev="ggregory">[release-plugin] Use SHA-256 and SHA-512, not MD5, not SHA-1.</action>
      <action type="update" dev="ggregory">Update Apache Commons Compress from 1.17 to 1.18.</action>
      <action type="update" dev="ggregory">Drop SHA-256 code, leaving only SHA-512.</action>
    </release>

    <release version="1.3" date="2018-06-15" description="Version 1.3">
      <action issue="COMMONSSITE-117" type="update" dev="chtompki">Remove md5 signatures from release artifacts.</action>
      <action issue="COMMONSSITE-113" type="update" dev="chtompki">Put unpacked site in scm dev dist directory for navigating purposes.</action>
      <action issue="COMMONSSITE-112" type="add" dev="ggregory">Add a vote.txt file.</action>
      <action issue="COMMONSSITE-108" type="add" dev="chtompki">Adding README.html and HEADER.html to staged release</action>
      <action type="update" dev="ggregory">Update platform requirement from Java 7 to Java 8.</action>
    </release>

    <release version="1.2" date="2018-04-02" description="Version 1.2">
      <action issue="COMMONSSITE-107" type="fix" dev="chtompki">Adding ./target/commons-release-plugin/scm/RELEASE-NOTES.txt to svn as opposed to ./RELEASE-NOTES.txt</action>
    </release>

    <release version="1.1" date="2018-02-28" description="1.1">
      <action issue="COMMONSSITE-104" type="fix" dev="chtompki">Sha1 signature files now reflect actual signatures.</action>
      <action issue="COMMONSSITE-98"  type="add" dev="chtompki">Making the project more multi-module compatible</action>
      <action issue="COMMONSSITE-102" type="fix" dev="chtompki">Commons Release Plugin doesn't work with Commons Release Plugin</action>
      <action issue="COMMONSSITE-101" type="fix" dev="chtompki">Make -Dcommons.release.dryRun=true our commit toggle</action>
    </release>


    <release version="1.0" date="2018-01-10" description="Initial release">
      <action issue="COMMONSSITE-96" type="add" dev="chtompki">Create commons-release-component project skeleton.</action>
      <action issue="COMMONSSITE-99" type="add" dev="chtompki">Prepare Standard Build integrations, travis, jacoco, checkstyle, etc.</action>
      <action issue="COMMONSSITE-97" type="add" dev="chtompki">Documentation for commons-release-plugin</action>
    </release>
  </body>
</document>
