////
    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.
////

= Versioning and support policy

include::partial$supported-versions.adoc[leveloffset=+1]


[#versioning-policy]
== Versioning policy

Apache log4net follows
https://semver.org/spec/v2.0.0.html[semantic versioning],
with release numbers of the form:

[source]
----
<major>.<minor>.<patch>[-<pre-release>]
----

where:

<major>::
+
The major version number is incremented when **breaking changes** are introduced.
+
Upgrading to a new major version typically requires code changes in your application.
For each new major release, a migration guide will be provided.
+

<minor>::
+
The minor version number is incremented when new features are added in a backward-compatible manner, such as:
+
--
* New methods or classes added to the public API of one of the components.
* New configuration attributes added to appenders, layouts, filters, etc.
* Functionality or methods/classes being deprecated.
* Behavioral changes introduced without breaking the public API.
--
+
Upgrading to a new minor version usually does not require code changes,
unless you rely on undocumented behavior that has changed.
To avoid accumulating such changes, we recommend upgrading minor versions regularly.
+
When upgrading to a new minor version, review the corresponding
xref:release-notes.adoc[]:
behavioral changes are highlighted in the release description and listed in the “Changed” section.

<patch>::
+
The patch version number is incremented when only backward-compatible bug fixes are introduced.
+
Upgrading to a new patch release is the simplest upgrade path.
+
[NOTE]
====
The classification of a behavioral change as a minor or patch release may vary by interpretation:
what is considered a bug by one user may be viewed as a feature by another.
====

[#maintenance-policy]
== Version lifecycle and maintenance policy

Minor releases of Apache log4net follow a defined lifecycle consisting of three phases:

[development]#Active development#::
+
The version is under active development and may introduce new features.
Preview builds may be published during this phase; vulnerability reports are accepted and will be addressed.
+
Versions in this phase are **not recommended** for production use.

[active]#Active maintenance#::
+
The version is considered stable and suitable for production.
Vulnerability reports are accepted and will be addressed.
+
Due to the limited resources of the Apache log4net project, **only the latest minor release of the latest major version** remains in Active.

[eol]#End-of-life (EOL)#::
+
The version is no longer maintained, and **vulnerability reports are not accepted**.
+
We will notice the end of support for a version when the first preview for a new major version is published.
+
[cols="3h,1,1,1"]
|===
| Maintenance phase | New features | Security/bug fixes | Security advisories

| [development]#Active development#
| **Yes**
| **Yes**
| **Yes**

| [development]#Active maintenance#
| **Yes**
| **Yes**
| **Yes**

| [eol]#End-of-life (EOL)#
| No
| No
| No

|===

[NOTE]
====
We avoid using the term *support* to describe the maintenance phases, because
support remains available in **all** phases:

* See {logging-services-url}/support.html#discussions-user[Community support]
for the community-run discussion channels that are offered on a best-effort basis.
* Although the ASF does not endorse any third-party commercial providers,
some companies may offer paid support for EOM or EOL versions.
See {logging-services-url}/support.html#commercial[Commercial support]
for a publicly maintained list of such providers.
====