Hi All:

I want to focus on content before we decide what label to put on the
next release. Then, we can see if we want to break binary
compatibility (BC) for a Commons Logging 2.0.0.

My main driver for the next version is to drop support and dependency
on the Log4j 1.x JARs file(s). I speak of JAR files here as opposed to
APIs, see below.

I see several ways to drop Log4j 1.x JARs.
1) Replace the dependency on Log4j 1.x with the Log4j 2 compatibility
JAR for 1.2: org.apache.logging.log4j:log4j-1.2-api
    This maintains BC and can become 1.4.0.
2) A re-implementation of Log4JLogger where all methods call Log4j 2 APIs.
    This maintains BC and can become 1.4.0.
    It looks like this is not possible in a straightforward manner
because we have Log4j 1 classes in the public API, specifically
org.apache.commons.logging.impl.Log4JLogger.Log4JLogger(Logger). It
might not be worth hacking around that if that's even possible.
3) A hard delete of org.apache.commons.logging.impl.Log4JLogger (the
class is deprecated in 1.3.0 FWIW).
    This breaks BC and requires a 2.0.0 with a package name and Maven
coordinate change.
    The package would change from org.apache.commons.logging to
org.apache.commons.logging2.
    The Maven coordinates would change from
commons-logging:commons-logging to org.apache.commons:commons-logging2
4) A gutting of Log4JLogger where all methods are no-ops.
     This maintains BC and can become 1.4.0.

I like (1) the best, it gives us a clear path to a 1.4.0 without
breaking BC and removes dependencies on the 1.x jars.
>From my POV breaking BC in Logging 1.x is a non-starter.

Then, if we want to remove support for the Log4j 1 API (the JAR is
already gone at this point), that would necessitate a 2.0.0.

Gary

On Sat, Feb 10, 2024 at 8:53 AM Elliotte Rusty Harold
<elh...@ibiblio.org> wrote:
>
> I'd like to plan and start working on a 2.0 release of commons-logging
> with the specific goal of resolving the large  number of out of date,
> unsupported, old libraries that this project pulls into so many
> dependency trees. There's been some discussion of a 2.0 release in
> JIra at https://issues.apache.org/jira/projects/LOGGING/issues/LOGGING-187
> but I'd lik to bring this to a wider audience. Specifically my
> thoughts are:
>
> 1. 2.0 will be technically API incompatible since it will remove all
> traces of EOL libraries like log4j 1.x and avalon.
> 2. It will otherwise be a drop-in replacement for anyone not using
> these old libraries. Specifically:
>   * Other deprecated methods are not removed.
>   * The package name does not change.
>   * The group ID and artifact ID do not change.
>   * Minimum Java version remains 1.8
> 3. It can include any recent, API compatible bug fixes and new
> features that are available at HEAD, but these are not blockers.
>
> While there are other more incompatible changes that could be made in
> a major version bump, I think it's really important to produce a
> drop-in replacement that is friendlier to security scanners and
> dependency analyzers. I do not want to discourage people from
> upgrading for any reason other than they're still using EOL libraries
> like log4j 1.x.
>
> 1.3.0 was recently released and seems up to date with the last several
> years of changes and bugs, so it feels like a good time to make the
> break. Anyone who isn't ready to give up their decade+ old loggers can
> stay on this release for a while.  However if there's a strong need to
> maintain a 1.x branch that could be done too.  Or we could start 2.x
> as a separate branch.
>
> If this achieves rough consensus, I can start sending PRs. However,
> the final release would require a commons committer or perhaps PMC
> member to take over.
>
> Thoughts?
>
> --
> Elliotte Rusty Harold
> elh...@ibiblio.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to