<?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.
-->
<document>
 <properties>
  <title>Release History</title>
  <author email="dev@commons.apache.org">Commons Documentation Team</author>
 </properties>
<body>
<!-- ================================================== -->
  <section name="Release History">

  This page contains information about all Apache Commons Lang releases.

    <subsection name="org.apache.commons:commons-lang3:3.x">
      <table>
        <tr>
          <th>Version</th><th>Release date</th><th>Required Java Version</th><th>Javadoc</th><th>Release notes</th>
        </tr>
        <tr>
          <td>3.10</td><td>2020-03-22</td><td>8</td><td><a href="javadocs/api-3.10/">api-3.10</a></td><td><a href="release-notes/RELEASE-NOTES-3.10.txt">release notes for 3.10</a></td>
        </tr>
        <tr>
          <td>3.9</td><td>2019-04-09</td><td>8</td><td><a href="javadocs/api-3.9/">api-3.9</a></td><td><a href="release-notes/RELEASE-NOTES-3.9.txt">release notes for 3.9</a></td>
        </tr>
        <tr>
          <td>3.8.1</td><td>2018-09-19</td><td>7</td><td><a href="javadocs/api-3.8.1/">api-3.8.1</a></td><td><a href="release-notes/RELEASE-NOTES-3.8.1.txt">release notes for 3.8.1</a></td>
        </tr>
        <tr>
          <td>3.8</td><td>2018-08-15</td><td>7</td><td><a href="javadocs/api-3.8/">api-3.8</a></td><td><a href="release-notes/RELEASE-NOTES-3.8.txt">release notes for 3.8</a></td>
        </tr>
        <tr>
          <td>3.7</td><td>2017-10-04</td><td>7</td><td><a href="javadocs/api-3.7/">api-3.7</a></td><td><a href="release-notes/RELEASE-NOTES-3.7.txt">release notes for 3.7</a></td>
        </tr>
        <tr>
          <td>3.6</td><td>2016-04-17</td><td>7</td><td><a href="javadocs/api-3.6/">api-3.6</a></td><td><a href="release-notes/RELEASE-NOTES-3.6.txt">release notes for 3.6</a></td>
        </tr>
        <tr>
          <td>3.5</td><td>2016-10-02</td><td>6</td><td><a href="javadocs/api-3.5/">api-3.5</a></td><td><a href="release-notes/RELEASE-NOTES-3.5.txt">release notes for 3.5</a></td>
        </tr>
        <tr>
          <td>3.4</td><td>2014-04-06</td><td>6</td><td><a href="javadocs/api-3.4/">api-3.4</a></td><td><a href="release-notes/RELEASE-NOTES-3.4.txt">release notes for 3.4</a></td>
        </tr>
        <tr>
          <td>3.3.2</td><td>2014-04-09</td><td>6</td><td><a href="javadocs/api-3.3.2/">api-3.3.2</a></td><td><a href="release-notes/RELEASE-NOTES-3.3.2.txt">release notes for 3.3.2</a></td>
        </tr>
        <tr>
          <td>3.3.1</td><td>2014-03-18</td><td>6</td><td><a href="javadocs/api-3.3.1/">api-3.3.1</a></td><td><a href="release-notes/RELEASE-NOTES-3.3.1.txt">release notes for 3.3.1</a></td>
        </tr>
        <tr>
          <td>3.3</td><td>2014-03-04</td><td>6</td><td><a href="javadocs/api-3.3/">api-3.3</a></td><td><a href="release-notes/RELEASE-NOTES-3.3.txt">release notes for 3.3</a></td>
        </tr>
        <tr>
          <td>3.2.1</td><td>2014-01-05</td><td>6</td><td><a href="javadocs/api-3.2.1/">api-3.2.1</a></td><td><a href="release-notes/RELEASE-NOTES-3.2.1.txt">release notes for 3.2.1</a></td>
        </tr>
        <tr>
          <td>3.2</td><td>2014-01-01</td><td>6</td><td><a href="javadocs/api-3.2/">api-3.2</a></td><td><a href="release-notes/RELEASE-NOTES-3.2.txt">release notes for 3.2</a></td>
        </tr>
        <tr>
          <td>3.1</td><td>2011-11-14</td><td>5.0</td><td><a href="javadocs/api-3.1/">api-3.1</a></td><td><a href="release-notes/RELEASE-NOTES-3.1.txt">release notes for 3.1</a></td>
        </tr>
        <tr>
          <td>3.0.1</td><td>2011-08-09</td><td>5.0</td><td><a href="javadocs/api-3.0.1/">api-3.0.1</a></td><td><a href="release-notes/RELEASE-NOTES-3.0.1.txt">release notes for 3.0.1</a></td>
        </tr>
        <tr>
          <td>3.0</td><td>2011-07-18</td><td>5.0</td><td><a href="javadocs/api-3.0/">api-3.0</a></td><td><a href="release-notes/RELEASE-NOTES-3.0.txt">release notes for 3.0</a></td>
        </tr>
      </table>
    </subsection>

    <subsection name="commons-lang:commons-lang:2.x">
      <table>
        <tr>
          <th>Version</th><th>Release date</th><th>Required Java Version</th><th>Javadoc</th><th>Release notes</th>
        </tr>
        <tr>
          <td>2.6</td><td>2011-01-16</td><td>1.3</td><td><a href="javadocs/api-2.6/">api-2.6</a></td><td><a href="release-notes/RELEASE-NOTES-2.6.txt">release notes for 2.6</a></td>
        </tr>
        <tr>
          <td>2.5</td><td>2010-02-23</td><td>1.3</td><td><a href="javadocs/api-2.5/">api-2.5</a></td><td><a href="release-notes/RELEASE-NOTES-2.5.txt">release notes for 2.5</a></td>
        </tr>
        <tr>
          <td>2.4</td><td>2008-03-18</td><td>1.2</td><td><a href="javadocs/api-2.4/">api-2.4</a></td><td><a href="release-notes/RELEASE-NOTES-2.4.txt">release notes for 2.4</a></td>
        </tr>
        <tr>
          <td>2.3</td><td>2007-02-13</td><td>1.1</td><td><a href="javadocs/api-2.3/">api-2.3</a></td><td><a href="release-notes/RELEASE-NOTES-2.3.txt">release notes for 2.3</a></td>
        </tr>
        <tr>
          <td>2.2</td><td>2006-10-04</td><td>1.1</td><td><a href="javadocs/api-2.2/">api-2.2</a></td><td><a href="release-notes/RELEASE-NOTES-2.2.txt">release notes for 2.2</a></td>
        </tr>
        <tr>
          <td>2.1</td><td>2006-06-13</td><td>1.1</td><td><a href="javadocs/api-2.1/">api-2.1</a></td><td><a href="release-notes/RELEASE-NOTES-2.1.txt">release notes for 2.1</a></td>
        </tr>
        <tr>
          <td>2.0</td><td>2003-09-02</td><td>1.1</td><td><a href="javadocs/api-2.0/">api-2.0</a></td><td><a href="release-notes/RELEASE-NOTES-2.0.txt">release notes for 2.0</a></td>
        </tr>
      </table>
    </subsection>

    <subsection name="commons-lang:commons-lang:1.x">
      <table>
        <tr>
          <th>Version</th><th>Release date</th><th>Required Java Version</th><th>Javadoc</th><th>Release notes</th>
        </tr>
        <tr>
          <td>1.0.1</td><td>2002-11-25</td><td>1.1</td><td><a href="javadocs/api-1.0.1/">api-1.0.1</a></td><td><a href="release-notes/RELEASE-NOTES-1.0.1.txt">release notes for 1.0.1</a></td>
        </tr>
        <tr>
          <td>1.0</td><td>2002-10-04</td><td>1.1</td><td><a href="javadocs/api-1.0/">api-1.0</a></td><td><a href="release-notes/RELEASE-NOTES-1.0.txt">release notes for 1.0</a></td>
        </tr>
      </table>
    </subsection>

  </section>
<!-- ================================================== -->
</body>
</document>
