> On Nov 3, 2023, at 10:08 PM, Christian Grobmeier <grobme...@apache.org> wrote:
>
>
>> However, like myself, organizations are not going to delay upgrading
>> too long. Having Log4j 3.x be available before the majority of orgs
>> switch to Spring 3 will greatly improve its adoption.
>
> Agreed, the earlier, so better, but making Log4j 3.x GA "first thing next
> year" seems to be quite of a rush.
“Quite of a rush”? Really?
The first code commit of Log4j 2.x was performed by me in May 2010. The first
alpha release was in July 2012. 2.0 GA was in July 2014. That is approximately
4 years from first commit to GA with one more alpha, 9 betas, and 2 release
candidates in between.
In contrast, the release-2.x branch was created in Jan 2018 which left master
for work on 3.x to begin. The first, and only so far, release was in June of
this year. That is over 5 years from the initial branch to first release.
To make matters worse, Log4j 2.x was brand new code. I borrowed from Log4j
extras for some of the rolling file appender stuff but everything else was
written from scratch. In contrast, 3.x started from 2.x and has largely been
refactoring work. So the risks involved with 3.x are much, much lower than what
we faced with 2.x.
So I have no idea how you can use the word “rushed” to describe the abysmal
pace 3.x has been proceeding.
>
> As far as I know, we still have changes in 2.x that are not in 3.x.
> I heard we lack integration tests and parallel testing in 3.x is disabled.
> This does not make me feel like a GA, but starting a longer beta phase.
If we have changes in 2.x that are not in 3.x they aren’t many and we will
never find that out without releasing. In general users don’t want to use
alphas or betas. The alphas and betas are there so we can get feedback on
issues such as these but the majority of them won’t appear until a GA release.
To be clear, we MUST have one or two betas before a GA release precisely
because we WILL have issues to deal with. This is completely normal and
expected.
Lack integration tests? Yes 2.x lacks integration tests and always has. Why
would we delay 3.x for something 2.x doesn’t have. All the integration tests
will prove is that various log4j modules can coexist together because some of
them use different dependencies. The unit tests are what matter and they by and
large pass. That said, I did make the request to create integration tests
because Gary has always been afraid of breaking Log4j into multiple repos
because he believes having everything compile and build together provides
assurance that everything will work together. If everything was using managed
depdendencies that would be true. But they don’t so it isn’t.
As far as parallel testing goes, so what? That didn’t exist in 2.x until a
couple of months ago. Again, why do we need to wait. Users don’t care. The only
real consequence is that the build is slower. I put up with that for years as
release manager and, to be honest, with the newer hardware that is available
this problem to a large degree has solved itself. Not that I don’t appreciate
the builds completeing faster but that should NEVER be a requirement to delay a
release. If it had we would be one Logj4 2.4 about now.
>
>>>>> With flume, audit and the other stuff eating time, it will be hard to get
>>>>> this done.
>>>>
>>>> Get what done? As far as I am concerned Log4j 3.x can go to beta now
>>>> and GA the first of the year. There are no required features left, just
>>>> stuff that would be nice to get done but can be done after the initial
>>>> GA release.
>>>
>>> I'm talking about adding Flume to our project, adding the community, and
>>> maintaining the new component.
>>
>> Up til now that is all pretty much me. I expect it will stay that way
>> for a time, although Matt has indicated an interest in contributing.
>
> Yes, that time you don't have for 3.x
Huh? As far as I know everything I had to work on for 3.x was done prior to
alpha1. What are you talking about?
>
>>> We have open security issues with log4j-audit, and log4j-server still needs
>>> to be cleaned up.
>>
>> Log4j-Audit has no open security issues. It simply needs dependency
>> updates. Please don’t conflate one with the other.
>
> Ok, great, yes, it is using dependencies with major security holes and does
> not look maintained, yet it is promoted as a main product on our website. Did
> we check if it is OK to deliver those dependencies? Upgrading does not seem
> trivial, we haven't also even started.
WTF does this even have to do with 3.x?
>
>> Log4j-Server is a
>> sample. We don’t even release it, so I am not sure why you mention it.
>
> Because we discussed it, there was no movement because nobody seemed to have
> the time (or interest).
Discussed what? Releasing Log4j server? I recall no such discussion and would
have voted -1. That is a security nightmare I have no desire to entertain.
>
>>
>>> I am still determining how much time you can spend, but there is likely
>>> more work to be done with Log4j 3.x, and I see you are bound to Flume. I am
>>> unfamiliar with the Log4j 3 code base, but others have expressed concerns
>>> with the roadmap you proposed. Are these concerns valid? Do we need time to
>>> address them?
>>
>> Others have expressed things they would like to do because it is a
>> major release and so some end-user impact is allowable. But most, if
>> not all, of the things I have seen proposed could be done post 3.0 GA.
>> So no, it is not a requirement that they be addressed. For example,
>> Matt did a lot of work on the DI system. It took him forever. None of
>> it was required. It was/is very beneficial to do but it wasn’t required.
>
> Why do you bring up Matts work here? It seems unrelated.
Huh? Matt’s work is a HUGE part of how 3.x Is completely different than 2.x. We
have no DI system in 2.x. As I recall Matt rewrote it 3 times during the 5
years it has been under development.
>
> In one of my messages I see this issue:
>
> "Failed to execute goal
> org.apache.maven.plugins:maven-jlink-plugin:3.1.0:jlink (default-jlink) on
> project log4j-samples-jlink: "
>
> To my knowledge there is still trouble with test coverage and we could use
> some more time to make it battle field ready.
Umm. Maybe that is a problem. Maybe not. JLink isn’t even relevant to 2.x as it
isn’t fully JPMS compatible and never will be. It is OK if 3.x goes GA and not
every feature on every wishlist has been fulfilled.
To be honest, I have been getting the sense that the reluctance to release 3.x
is based largely on fear. Fear of what exactly I cannot say. I know at one
point Volkan proposed throwing 3.x away and trying to back port everything to
2.x. To even suggest that shows very little knowledge of how much work has gone
into 3.x.
When we went through the process of releasing 2.x our goad was not perfection.
I can’t be because that can NEVER be achieved. 2.x certainly is not perfect,
even with the build improvements that have been made. This software will NEVER
be done. I would think that should be obvious to everyone.
So again, I have no idea what is driving this fear. We release software, we get
feedback in the form of questions and issues and we address them. In fact,
everyone involved in Log4j 2 became involved in the project precisely because
they saw a need that needed to be filled and took it upon themselves to do it.
As an example, We could have easily not invited Volkan and JTL into Log4j but
that isn’t our way. We saw it as a way to solve existing problems and took a
chance that it would make the project better. And it has. Dragging our feet due
to fear is NOT the way forward.
Ralph