Re: Release timeline for 2.24.0

2024-06-20 Thread Gary Gregory
I agree that compatibility is paramount for 2.x 😀

Gary

On Thu, Jun 20, 2024, 12:22 PM Ralph Goers 
wrote:

> I have been working on creating log4j-context-data. My plan was to remove
> stuff from Log4j API after I have something workable. Even though 2.24.0
> won’t include log4j-context-data I want to make sure that what we are
> leaving will be compatible.
>
> Ralph
>
> > On Jun 20, 2024, at 4:15 AM, Gary Gregory 
> wrote:
> >
> > I lost track of where we are after our video discussion regarding all the
> > scoped classes and 2.24.0. Where are we on those?
> >
> > Also, can we get information on what happened with the conference call
> > regarding the (IMO bad) idea on conditional testing? I sure hope we're
> not
> > using it.
> >
> > Gary
> >
> > On Tue, May 28, 2024, 12:27 PM Matt Sicker  wrote:
> >
> >> Probably discussions about the ScopedContext API in general.
> >>
> >>> On May 26, 2024, at 14:49, Ralph Goers 
> >> wrote:
> >>>
> >>>
> >>>
>  On May 26, 2024, at 11:06 AM, Christian Grobmeier <
> grobme...@apache.org>
> >> wrote:
> 
> 
> 
>  On Sat, May 25, 2024, at 04:22, Gary Gregory wrote:
> > I'd like to have the PMC meet to review and discuss ScopedContext,
> > which I am not caught up on, and whatever else we should chat about.
> 
>  Me too.
> 
>  I feel that all the discussion on the ScopedContext should be in an
> >> experimental branch or an additional jar file rather than the stable
> code
> >> base.
> 
>  I see it popping up so often, I start to believe it's "not there yet.”
> >>>
> >>> See what popping up so often?
> >>>
> >>> Ralph
> >>
> >>
>
>


Re: Release timeline for 2.24.0

2024-06-20 Thread Ralph Goers
I have been working on creating log4j-context-data. My plan was to remove stuff 
from Log4j API after I have something workable. Even though 2.24.0 won’t 
include log4j-context-data I want to make sure that what we are leaving will be 
compatible. 

Ralph

> On Jun 20, 2024, at 4:15 AM, Gary Gregory  wrote:
> 
> I lost track of where we are after our video discussion regarding all the
> scoped classes and 2.24.0. Where are we on those?
> 
> Also, can we get information on what happened with the conference call
> regarding the (IMO bad) idea on conditional testing? I sure hope we're not
> using it.
> 
> Gary
> 
> On Tue, May 28, 2024, 12:27 PM Matt Sicker  wrote:
> 
>> Probably discussions about the ScopedContext API in general.
>> 
>>> On May 26, 2024, at 14:49, Ralph Goers 
>> wrote:
>>> 
>>> 
>>> 
 On May 26, 2024, at 11:06 AM, Christian Grobmeier 
>> wrote:
 
 
 
 On Sat, May 25, 2024, at 04:22, Gary Gregory wrote:
> I'd like to have the PMC meet to review and discuss ScopedContext,
> which I am not caught up on, and whatever else we should chat about.
 
 Me too.
 
 I feel that all the discussion on the ScopedContext should be in an
>> experimental branch or an additional jar file rather than the stable code
>> base.
 
 I see it popping up so often, I start to believe it's "not there yet.”
>>> 
>>> See what popping up so often?
>>> 
>>> Ralph
>> 
>> 



Re: Release timeline for 2.24.0

2024-06-20 Thread Gary Gregory
On Thu, Jun 20, 2024 at 8:50 AM Piotr P. Karwasz
 wrote:
>
> Hi Gary,
>
> On Thu, 20 Jun 2024 at 13:55, Gary Gregory  wrote:
> > I'll give you all my -1 POV here:
>
> I share some of your concerns.
> My main motivation for this experiment with Develocity is not to save
> up CI time, but to improve its responsiveness.
>
> From my contributions to other projects I learned that each project
> has some ("arbitrary") set of PR checks (formatting, unit tests,
> integration tests).
> Some of these checks fail fast enough so that I am able to fix them in
> the time I have available for that project. If those checks fail
> later, I'll fix them a couple of days (or weeks) later.
>
> We could configure PTS as a fail-fast mechanism:
>
> * for each PR we first run with PTS to see if it can find failing tests,
> * if that check succeeds we run the whole suite.
>
> If the PTS algorithm is sound, we might provide feedback to users in
> less than 10 minutes. Worst case scenario, they'll learn that the
> build failed later.
>
> What do you think?

Thank you for your thoughtful comments Piotr :)

This is, IMO, both a false economy and frustration in making for
contributors. Let me explain: This will cause more iterations between
contributors and the CI/us to approve runs and wait for CI runs. By
default IIRC, one of us has to _approve_ a PR before it is run, which
I believe is the correct behavior. A contributor _should_ run a full
local build _before_ pushing a PR IMO and not rely on the CI as their
build machine.

The workflow I encourage (for example in Apache Commons) is:
- We make sure a Maven POM has a default goal containing all build
checks and we document to ask users to run 'mvn' (by itself) _before_
pushing a PR. Having a default goal is simple. avoids missing any
checks, and allows us to edit the behavior without changing build and
PR instructions.
- This process allows the contributors to fix everything locally
_before_ pushing and waiting for the initial and subsequent PR run
approval. This saves time and encourages contributors to clean up or
complete their PR before bothering to push. There is nothing we can do
to avoid getting broken PRs of course.

Another missing piece is that a PR should fail if it decreases code
coverage or has missing tests. One way I found to enforce this in
Commons is to use JaCoCo's metrics checks; it's not perfect but it
sets a bar a PR must pass.

Gary

>
> Piotr


Re: Release timeline for 2.24.0

2024-06-20 Thread Piotr P. Karwasz
Hi Gary,

On Thu, 20 Jun 2024 at 13:55, Gary Gregory  wrote:
> I'll give you all my -1 POV here:

I share some of your concerns.
My main motivation for this experiment with Develocity is not to save
up CI time, but to improve its responsiveness.

>From my contributions to other projects I learned that each project
has some ("arbitrary") set of PR checks (formatting, unit tests,
integration tests).
Some of these checks fail fast enough so that I am able to fix them in
the time I have available for that project. If those checks fail
later, I'll fix them a couple of days (or weeks) later.

We could configure PTS as a fail-fast mechanism:

* for each PR we first run with PTS to see if it can find failing tests,
* if that check succeeds we run the whole suite.

If the PTS algorithm is sound, we might provide feedback to users in
less than 10 minutes. Worst case scenario, they'll learn that the
build failed later.

What do you think?

Piotr


Re: (logging-log4j2) branch 2.x updated: Disable PTS on a per-module basis

2024-06-20 Thread Piotr P. Karwasz
Hi Gary,

On Thu, 20 Jun 2024 at 14:15, Gary D. Gregory  wrote:
> I am -1 on changing our PRODUCTION 2.x build. If you want to experiment with 
> some company's product, please do so in a non-production branch. The cynic in 
> me sees this as a company wanting free advertising to say Apache uses their 
> foo product in production.

I am pretty sure, advertising is the main reason many companies offer
their products to ASF free of charge. ;-)

Piotr


Re: (logging-log4j2) branch 2.x updated: Disable PTS on a per-module basis

2024-06-20 Thread Gary D. Gregory



On 2024/06/14 20:37:44 "Piotr P. Karwasz" wrote:
> Hi Gary,
> 
> On Fri, 14 Jun 2024 at 18:12, Gary Gregory  wrote:
> > I sure hope that all tests are ALWAYS run by default in the 2.x branch,
> > otherwise it will be a -1 from me.
> 
> Currently Predictive Test Selection is enabled on all CI builds,
> except the `release/*` branches, since I am trying to evaluate the
> feature, before I make a proposal on this mailing list. So please,
> indulge me, for a couple of weeks.
> 
> Currently the usage of Develocity is experimental and `logging-log4j2`
> is running builds using the `develocity` branch of `logging-parent`,
> so be reassured that before we do any release:
> 
> 1. We'll largely discuss my findings (PMC meeting in a week or two?),
> 2. `logging-parent` needs to be released.
> 
> For those that have never heard about Develocity, it is a new Gradle
> product that aims at increasing developer productivity by reducing the
> time we wait for our builds to complete.
> INFRA rolled out an ASF instance of Develocity and you can check it out at:
> 
>   
> https://ge.apache.org/scans?search.rootProjectNames=*log4j*&search.timeZoneId=Europe%2FWarsaw#
> 
> I am experimenting with this tool to improve the quality of our test
> suites (aka the code users never help us with). It has some useful
> features like:
> 
> 1. Test execution statistics, which help us identify the broken and
> flaky tests. As it turns out `JeroMqAppenderTest` is not the test that
> fails most often and we also have flaky tests that never (as far as I
> can remember) caused a build to fail. For example `BurstFilterTest`
> fails at least once in 50% of the builds.
> 2. PTS will allow our CI to run faster, because it only runs the tests
> that are more likely to fail for a given code modification. This might
> help contributors that submit PRs to get faster feedback or run the
> test suite before submitting a patch.
> Truth be told, I often skipped the local test run, since it took over
> 30 minutes on my old laptop. On my new desktop I always run all tests,
> since it takes 3 minutes (half of that time Maven is waiting for the 3
> broken Flume tests).
> 
> Of course I have my reservation regarding this tool:
> 
> 1. The Maven plugin it uses is not Open Source. It is probably high
> quality code, but not **provably** high quality code.
> 2. It uses build caching, which might fake the results of builds.
> 
> As far as I understand Develocity should be a no-op on your computers,
> unless you generate an API key for it. If you want to try it, run:
> 
> ./mvnw com.gradle:develocity-maven-extension:provision-access-key
> 
> in a working tree of `logging-log4j2`.

What does that mean, "in a working tree of `logging-log4j2`"? 

I am -1 on changing our PRODUCTION 2.x build. If you want to experiment with 
some company's product, please do so in a non-production branch. The cynic in 
me sees this as a company wanting free advertising to say Apache uses their foo 
product in production.

> 1. The Maven plugin it uses is not Open Source. It is probably high
> quality code, but not **provably** high quality code.
> 2. It uses build caching, which might fake the results of builds.

Well, that sounds horrible: "which might fake the results of builds."

Gary


> 
> Piotr
> 


Re: Release timeline for 2.24.0

2024-06-20 Thread Gary Gregory
On Thu, Jun 20, 2024 at 7:37 AM Piotr P. Karwasz
 wrote:
>
> Hi Gary,
>
>
> On Thu, 20 Jun 2024 at 13:15, Gary Gregory  wrote:
> > I lost track of where we are after our video discussion regarding all the
> > scoped classes and 2.24.0. Where are we on those?
>
> From my part I didn't advance much, since we are working hard on
> reviewing and improving the documentation. However, my fingers are
> aching from writing too much AsciiDoc, so I'll clean up `log4j-api`
> soon.
>
> > Also, can we get information on what happened with the conference call
> > regarding the (IMO bad) idea on conditional testing? I sure hope we're not
> > using it.
>
> We can have a call this Sunday, I just need to check my schedule.

I'll give you all my -1 POV here: In a real build, I have 100%
confidence that ANY change I make runs through the existing code
coverage. With this proposal, I have 0% confidence because I know that
either not everything is tested, or worse, a random subset of tests
runs which is unpredictable to a plain-brained human like myself.

For me, this defeats the whole point of having a CI build! The CI
build MUST test everything all the time. This is especially important
for pull requests.
I can imagine this user story: "As a developer, I want the ability to
shoot myself and my colleagues in the foot, by only running a random
subset of tests locally before I push to the repo".

This feels like a classic case of unintended consequences waiting to
happen. And just like with other tools like SpotBugs, PMD, Checkstyle,
and so on, you end up with a configuration file, an exclusion file,
but in this case, the false positives don't fail your build
erroneously, instead they skip tests and allow regressions to creep
in. No thanks.

Gary

>
> Piotr


Re: Release timeline for 2.24.0

2024-06-20 Thread Piotr P. Karwasz
Hi Gary,


On Thu, 20 Jun 2024 at 13:15, Gary Gregory  wrote:
> I lost track of where we are after our video discussion regarding all the
> scoped classes and 2.24.0. Where are we on those?

>From my part I didn't advance much, since we are working hard on
reviewing and improving the documentation. However, my fingers are
aching from writing too much AsciiDoc, so I'll clean up `log4j-api`
soon.

> Also, can we get information on what happened with the conference call
> regarding the (IMO bad) idea on conditional testing? I sure hope we're not
> using it.

We can have a call this Sunday, I just need to check my schedule.

Piotr


Re: Release timeline for 2.24.0

2024-06-20 Thread Gary Gregory
I lost track of where we are after our video discussion regarding all the
scoped classes and 2.24.0. Where are we on those?

Also, can we get information on what happened with the conference call
regarding the (IMO bad) idea on conditional testing? I sure hope we're not
using it.

Gary

On Tue, May 28, 2024, 12:27 PM Matt Sicker  wrote:

> Probably discussions about the ScopedContext API in general.
>
> > On May 26, 2024, at 14:49, Ralph Goers 
> wrote:
> >
> >
> >
> >> On May 26, 2024, at 11:06 AM, Christian Grobmeier 
> wrote:
> >>
> >>
> >>
> >> On Sat, May 25, 2024, at 04:22, Gary Gregory wrote:
> >>> I'd like to have the PMC meet to review and discuss ScopedContext,
> >>> which I am not caught up on, and whatever else we should chat about.
> >>
> >> Me too.
> >>
> >> I feel that all the discussion on the ScopedContext should be in an
> experimental branch or an additional jar file rather than the stable code
> base.
> >>
> >> I see it popping up so often, I start to believe it's "not there yet.”
> >
> > See what popping up so often?
> >
> > Ralph
>
>