> On Nov 6, 2023, at 2:37 AM, Piotr P. Karwasz <piotr.karw...@gmail.com> wrote:
>
> Hi Ralph,
>
> On Sun, 5 Nov 2023 at 05:39, Ralph Goers <ralph.go...@dslextreme.com> wrote:
>> 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.
>
> Looking at the commit pattern, changes to 2.x are not immediately
> followed by changes to 3.x. This does not mean they are neve applied,
> but it is hard to check if they were ever applied.
I would disagree. Over the course of the last 5 years I would say that
committing to both has been the pattern when required at least 90% of the time.
>
> The easiest way to check for regressions is `git diff -w` as Matt
> says, but this only makes sense after we reformat the code using a
> deterministic formatter.
Well, this has been brought up for the last 2 years. Basic attempts have been
made to validate it but I have the sense no one is ever going to be 100%
confident. Personally, I don’t need to be. The few cases we miss will be caught
fairly quickly once the software is being used. Fixing them shouldn’t be very
hard.
>
>> 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.
>
> It's true, 2.x does not have integration tests or better, most unit
> tests are in fact integration tests (they test the entire stack). The
> tests are performed on the classpath, which is enough for 2.x.
>
> However, the main feature of 3.x is JPMS. We can not possibly test
> JPMS with tests that run on the classpath or in the same module as the
> code being tested. We need real integration tests that use the module
> path and test each optional dependency at a time.
I don’t disagree that real integration tests should be developed. I just don’t
see a need to wait for them before a GA release.
>
> Remark: I am against releasing 3.x in its current state, but I am
> flexible on the amount of features required to release it. I second
> Christian's proposal for a meeting on November 12th: if the PMC agrees
> on a set of tasks required to release 3.x, I might convince my
> employer to allow me to implement them as part of my job.
I am against a GA release in its current state. Everyone is. But we have to
keep creating releases to get feedback. Personally, I don’t think we need too
many more to feel confident.
I am fine with meeting on Nov 12. But the set of tasks I have in mind are a) no
new features are required b) fix whatever bugs are reported c) test it
ourselves. Everything else is optional.
FWIW, I am on step c right now except Log4j isn’t the problem. I am trying to
upgrade to Spring 3 with Log4j 3 and the Spring upgrade isn’t simple.
Ralph