<?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">
      <!-- UPDATES -->
      <action type="update" dev="ggregory" due-to="Dependabot">Bump spotbugs-maven-plugin from 4.5.3.0 to 4.6.0.0 #106.</action>
      <action type="update" dev="ggregory" due-to="Gary Gregory">Bump actions/cache from 3 to 3.0.2.</action>
      <action type="update" dev="kinow" due-to="Dependabot">Bump actions/setup-java from 2 to 3 #108.</action>
      <action type="update" dev="kinow" due-to="Dependabot">Bump commons-parent from 52 to 53 #111.</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 jacoco-maven-plugin from 0.8.7 to 0.8.8 #112.</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 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>
