<?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.8.1" date="2020-MM-DD" description="Version 1.8">
      <!-- FIXES -->
      <action type="update" dev="ggregory" due-to="Marc Wrobel">Fix minor typos #131.</action>
      <!-- UPDATES -->
      <action type="update" dev="ggregory" due-to="Gary Gregory">Bump actions/cache from 3 to 3.0.10 #123, #126, #128, #139, #140.</action>
      <action type="update" dev="ggregory" due-to="Gary Gregory, Dependabot">Bump actions/checkout from 3 to 3.1.0 #141.</action>
      <action type="update" dev="kinow" due-to="Dependabot">Bump actions/setup-java from 2 to 3.5.1. #108.</action>
      <action type="update" dev="kinow" due-to="Dependabot">Bump github/codeql-action from 1 to 2 #109.</action>
      <action type="update" dev="kinow" due-to="Dependabot">Bump commons-parent from 52 to 56 #111, #137, #153, #162.</action>
      <action type="update" dev="kinow" due-to="Dependabot">Bump jacoco-maven-plugin from 0.8.7 to 0.8.8 #112.</action>
      <action type="update" dev="kinow" due-to="Dependabot">Bump plexus-velocity from 1.3 to 2.0 #116.</action>
      <action type="update" dev="ggregory" due-to="Dependabot">Bump maven-scm.version from 1.12.2 to 1.13.0 #117.</action>
      <action type="update" dev="kinow" due-to="Dependabot">Bump maven.dependency.version from 3.8.5 to 3.8.7 #120, #161.</action>
      <action type="update" dev="ggregory" due-to="Dependabot">Bump maven-pmd-plugin from 3.16.0 to 3.20.0 #119, #129, #135, #167.</action>
      <action type="update" dev="kinow" due-to="Dependabot">Bump junit-vintage-engine from 5.8.2 to 5.9.1 #125, #136.</action>
      <action type="update" dev="ggregory" due-to="Dependabot">Bump spotbugs-maven-plugin from 4.5.3.0 to 4.7.3.0 #106, #115, #122, #124, #133, #142, #150.</action>
      <action type="update" dev="kinow" due-to="Gary Gregory, Dependabot">Bump spotbugs from 4.6.0 to 4.7.3 #114, #134, #145.</action>
      <action type="update" dev="kinow" due-to="Dependabot">Bump maven-checkstyle-plugin from 3.1.2 to 3.2.1 #130, #166.</action>
      <action type="update" dev="kinow" due-to="Dependabot">Bump commons-compress from 1.21 to 1.22 #148.</action>
      <action type="update" dev="kinow" due-to="Dependabot">Bump maven.plugin.version from 3.6.4 to 3.7.0 #149.</action>
    </release>
    <release version="1.8.0" date="2022-03-13" description="Version 1.8">
      <action issue="COMMONSSITE-138" type="add" dev="chtompki, ggregory">Create signature validation script for releases.</action>
      <!-- FIXES -->
      <action type="fix" dev="sebb">Fail if commons.nexus.repo.id is not defined.</action>
      <action type="fix" dev="sebb">Allow for old-style group ids in vote-txt.</action>
      <action type="fix" dev="sebb">Don't create hash for .asc files.</action>
      <action type="fix" dev="ggregory" due-to="Arturo Bernal, Bruno P. Kinoshita">Replace construction of FileInputStream and FileOutputStream objects with Files NIO APIs. #44.</action>
      <action type="fix" dev="ggregory">Replace FindBugs with SpotBugs.</action>
      <action type="fix" dev="ggregory" due-to="Arturo Bernal">Minor Improvements #34.</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Workaround UnsupportedOperationException in CommonsDistributionDetachmentMojo.execute due to https://issues.apache.org/jira/browse/MNG-7316.</action>
      <!-- UPDATES -->
      <action type="update" dev="kinow">Bump maven-checkstyle-plugin from 3.1.1 to 3.1.2 #36.</action>
      <action type="update" dev="kinow">Bump maven-pmd-plugin from 3.13.0 to 3.15.0 #29 #72.</action>
      <action type="update" dev="kinow">Bump commons-build-plugin from 1.11 to 1.12 #25.</action>
      <action type="update" dev="kinow">Bump actions/setup-java from v1.4.0 to v2 #11 #19 #49.</action>
      <action type="update" dev="kinow" due-to="Gary Gregory">Bump spotbugs from 4.1.1 to 4.6.0 #10 #24 #30 #37 #41 #51 #59 #68 #71 #80 #93 #98.</action>
      <action type="update" dev="kinow">Bump spotbugs-maven-plugin from 4.1.1 to 4.5.3.0 #20 #26 #33 #45 #52 #61 #74 #79 #81 #88 #94 #99.</action>
      <action type="update" dev="ggregory">Update JUnit from 4.12 to 4.13.2, #23 #39.</action>
      <action type="update" dev="kinow" due-to="Gary Gregory, Dependabot">Bump maven.dependency.version from 3.6.1 to 3.8.5 #47 #76 #86.</action>
      <action type="update" dev="ggregory">Update commons-io:commons-io from 2.6 to 2.11.0 #13 #63.</action>
      <action type="update" dev="ggregory">Update checkstyle from 8.34 to 9.3 #5, #12, #14, #27, #31, #35, #40, #46, #53, #58, #64, #65, #69, #77, #84, #91, #95, #101.</action>
      <action type="update" dev="ggregory">Update actions/checkout from v2.3.1 to v3 #8, #16, #28, #78, #83, #103.</action>
      <action type="update" dev="ggregory">Update velocity-engine-core from 2.1 to 2.3 #4 #43.</action>
      <action type="update" dev="ggregory">Update commons-codec from 1.13 to 1.15.</action>
      <action type="update" dev="kinow" due-to="Dependabot">Bump actions/cache from v2 to v3 #38, #50, #56, #87, #105.</action>
      <action type="update" dev="kinow" due-to="Dependabot">Bump maven.plugin.version from 3.6.0 to 3.6.4 #54, #89, #97.</action>
      <action type="update" dev="kinow" due-to="Gary Gregory, Dependabot">Bump jacoco-maven-plugin from 0.8.5 to 0.8.7 (Fixes Java 15 builds) #55.</action>
      <action type="update" dev="kinow" due-to="Dependabot">Bump plexus-velocity from 1.2 to 1.3 #60.</action>
      <action type="update" dev="kinow" due-to="Gary Gregory, Dependabot">Bump commons-compress from 1.19 to 1.21 #62.</action>
      <action type="update" dev="kinow" due-to="Gary Gregory">Replace JUnit from 4.13.2 to 5.7.2 vintage.</action>
      <action type="update" dev="kinow" due-to="Dependabot">Bump maven-scm.version from 1.11.2 to 1.12.2 #66, #73, #96.</action>
      <action type="update" dev="kinow" due-to="Dependabot">Bump junit-vintage-engine from 5.7.2 to 5.8.2 #70, #75, #90.</action>
      <action type="update" dev="kinow" due-to="Dependabot">Bump taglist-maven-plugin from 2.4 to 3.0.0 #100.</action>
    </release>

    <release version="1.7" date="2019-08-30" description="Version 1.7">
      <action type="update" dev="chtompki">checkstyle.version from 8.10.1 to 8.18</action>
      <action type="update" dev="ggregory">VOTE.txt: Sample git clone command should checkout in a folder named after the tag</action>
      <action type="update" dev="ggregory">VOTE.txt: Sort the file names being hashed</action>
      <action type="update" dev="ggregory">maven.dependency.version from 3.5.3 to 3.6.0</action>
      <action type="update" dev="ggregory">org.apache.maven.scm from 1.10.0 to 1.11.2</action>
      <action type="update" dev="ggregory">maven-pmd-plugin from 3.9.0 to 3.11.0</action>
      <action type="update" dev="ggregory">commons-build-plugin from 1.8 to 1.10</action>
      <action type="update" dev="ggregory">commons.jacoco.version from 0.8.2 to 0.8.3</action>
      <action type="update" dev="ggregory">velocity-engine-core from 2.0 to 2.1</action>
      <action type="update" dev="ggregory">maven.dependency.version from 3.6.0 to 3.6.1</action>
      <action type="update" dev="ggregory">checkstyle.version from 8.18 to 8.19</action>
      <action type="update" dev="ggregory">maven-pmd-plugin from 3.11.0 to 3.12.0</action>
      <action type="update" dev="ggregory">com.puppycrawl.tools:checkstyle from 8.19 to 8.20</action>
      <action type="update" dev="ggregory">Update Apache Commons Collections from 4.3 to 4.4</action>
      <action type="update" dev="ggregory">Update Apache Commons Compress from 1.18 to 1.19</action>
    </release>

    <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 perform 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>
