This patch provided a very nice improvement in terms of build speed for
Camel! I really like it.

That said, I believe we still have some areas where we could improve and
make our build even faster. I have just logged the issue CAMEL-19505 which
is related to a problem of our build compiling certain modules twice (due
to code generators the plugins being tied to a post-compilation phase).
This seems to be consuming precious seconds on the build.

https://issues.apache.org/jira/browse/CAMEL-19504

If anyone knowledgeable about Maven plugins wants to look at it, I think it
could provide another great productivity improvement for the whole
community.

Kind regards

On Fri, Jun 23, 2023 at 6:08 PM Babak Vahdat
<babak.vah...@swissonline.ch.invalid> wrote:

> Thanks Peter!
>
> --
> Babak
>
> > Am 23.06.2023 um 16:55 schrieb Peter Palaga <ppal...@redhat.com>:
> >
> > Thanks for the feedback, Alex and Babak!
> >
> > I have found a way how -Pfastinstall could be handled as an alias of
> -Dquickly: https://github.com/apache/camel/pull/10483
> > Hope that solution is good enough to meet your needs?
> >
> > Thanks again,
> >
> > -- Peter
> >
> > On 23/06/2023 14:48, Babak Vahdat wrote:
> >>>> On 23 Jun 2023, at 14:27, Alexandre Gallice <aldettin...@gmail.com>
> wrote:
> >>>
> >>> Beyond bisect scripts, other developers could be impacted... it's a bit
> >>> like deprecating a profile.
> >>> For the sake of smooth transition, I wonder if it would be possible to
> have
> >>> something like the fastinstall profile setting -Dquickly and printing a
> >>> message that fastinstall might be possibly removed in the future.
> >>>
> >>> Alex
> >> Hi
> >> Yeah as that Maven profile has been exposed to the users as well since
> ages, so removing it (and asking them to adjust their settings.xml to
> achieve the same) doesn’t sound much “Newcomer friendly”:
> >>
> https://camel.apache.org/manual/building.html#_a_quick_build_without_running_tests
> <
> https://camel.apache.org/manual/building.html#_a_quick_build_without_running_tests
> >
> >> And thanks Peter a lot for his awesome work on his PR!
> >> --
> >> Babak
> >>>
> >>> On Fri, Jun 23, 2023 at 11:47 AM Otavio Rodolfo Piske <
> angusyo...@gmail.com>
> >>> wrote:
> >>>
> >>>> So, the primary reason I'd like to keep the fastinstall profile is
> because
> >>>> I bisect Camel often to find which commit introduced a certain bug,
> test
> >>>> failure or behavior. If we remove this profile, then I would have to
> adjust
> >>>> my bisect script so that in newer versions it uses "mvn -Dquickly"
> and in
> >>>> versions before this patch it would use "mvn -Pfastinstall" ... and I
> would
> >>>> have to, somehow, detect from when to start using one or the other (I
> think
> >>>> it would be difficult).
> >>>>
> >>>> I haven't thought about adding the profile to my user's settings.xml
> file,
> >>>> but maybe that would do the trick ... I'll give it a try.
> >>>>
> >>>> Regardless of that, the lack of fastinstall profile is not a blocker
> from
> >>>> my end. I think this is a good improvement.
> >>>>
> >>>> Kind regards
> >>>>
> >>>> On Fri, Jun 23, 2023 at 11:30 AM Peter Palaga <ppal...@redhat.com>
> wrote:
> >>>>
> >>>>> On 23/06/2023 09:38, Otavio Rodolfo Piske wrote:
> >>>>>> +1 from me.
> >>>>>>
> >>>>>> All in all I think this is a good thing. Our build takes _way_ too
> >>>> long,
> >>>>> so
> >>>>>> any effort that can reduce this time is welcome. Also, I like that
> this
> >>>>>> would make the build similar to CEQ. Ideally, in the future, we
> could
> >>>>> also
> >>>>>> apply the same pattern to both CSB and CKC, so that we have an
> uniform
> >>>>>> build process across the board.
> >>>>>>
> >>>>>> That said, I have one (hopefully) simple request* in all of this:
> for
> >>>> us
> >>>>> to
> >>>>>> retain the fastinstall profile. The reason for me asking this is
> >>>> because
> >>>>> it
> >>>>>> makes my bisect scripts much easier.
> >>>>>>
> >>>>>> * Obs.: as far as I can tell, the PR does not remove the fastinstall
> >>>>>> profile, so this is more like "just to be sure".
> >>>>>
> >>>>> Thanks for the feedback, Otavio! I actually wanted to remove the
> >>>>> fastinstall profile altogether but now I see there are some
> leftovers.
> >>>>> You mean you want to keep the fastinstall profile as it was with all
> >>>>> those skip properties? I am open to that, but still, I wonder whether
> >>>>> defining fastinstall in your settings.xml would not be a good enough
> >>>>> solution too?
> >>>>>
> >>>>> -- P
> >>>>>
> >>>>>> Great work, Peter ... I'm hoping to see these changes merged.
> >>>>>>
> >>>>>> Kind regards
> >>>>>>
> >>>>>> On Fri, Jun 23, 2023 at 1:00 AM Peter Palaga <ppal...@redhat.com>
> >>>> wrote:
> >>>>>>
> >>>>>>> Hi,
> >>>>>>>
> >>>>>>> In PR https://github.com/apache/camel/pull/10476 I tried to make
> some
> >>>>>>> changes to improve ergonomics and reproducibility.
> >>>>>>>
> >>>>>>> The first idea is to auto-fix formatting issues instead of
> outputting
> >>>>>>> error messages. I.e. rather than using Checkstyle plugin that is
> not
> >>>>>>> able to fix even basic violations of its policies,
> >>>> maven-license-plugin,
> >>>>>>> maven-formatter-plugin and maven-impsort-plugin are enabled by
> default
> >>>>>>> to format the sources in the desired way without contributors
> having
> >>>> to
> >>>>>>> configure their IDEs or anything else manually. There are some more
> >>>>>>> details in https://issues.apache.org/jira/browse/CAMEL-19461
> >>>>>>>
> >>>>>>> My second goal was to make the fast build (done from a state that
> >>>> passed
> >>>>>>> the CI) as fast as possible by removing the unessential Maven mojos
> >>>> from
> >>>>>>> the Maven execution plan altogether. We use this since longer in
> Camel
> >>>>>>> Quarkus and it is explained in detail in this blog:
> >>>>>>>
> >>>>
> https://peter.palaga.org/2020/10/29/skipping-maven-mojos-properly.html
> >>>>>>> The new mechanism is slightly different from how our original
> >>>>>>> `fastinstall` profile worked. `fastinstall` was disabling mojos by
> >>>>>>> defining their skip properties and it was activated simply by
> passing
> >>>>>>> `-Pfastinstall`. The new fast build does something different: it
> >>>>>>> disables the default `full` profile by passing a property. Because
> the
> >>>>>>> invocation had to change from -P to -D I dared to use the same
> >>>> property
> >>>>>>> name as we use in Camel Quarkus: `-Dquickly` I hope that's fine for
> >>>>>>> everybody. See also
> https://issues.apache.org/jira/browse/CAMEL-19466
> >>>>>>>
> >>>>>>> On my machine with 32 virtual threads, invoking `mvnd clean install
> >>>>>>> -Dquickly` takes
> >>>>>>>
> >>>>>>> * 1st build: 1m 21s
> >>>>>>> * 2nd build: 1m 10s
> >>>>>>>
> >>>>>>> The subsequent builds are slower. I have not investigated why, it
> is
> >>>>>>> perhaps because of garbage collection or some plugin might be
> leaking
> >>>>>>> memory.
> >>>>>>>
> >>>>>>> The third thing is not having the Apache Snapshots Maven repository
> >>>>>>> enabled by default for the sake of reproducibility locally and on
> CI.
> >>>>>>> It is still present in the `apache-snapshots` profile.
> >>>>>>> There are more details in
> >>>>>>> https://issues.apache.org/jira/browse/CAMEL-19465
> >>>>>>>
> >>>>>>> Any feedback is welcome.
> >>>>>>>
> >>>>>>> Thanks,
> >>>>>>>
> >>>>>>> -- Peter
> >>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>
> >>>>>
> >>>>
> >>>> --
> >>>> Otavio R. Piske
> >>>> http://orpiske.net
> >>>>
> >
>
>

-- 
Otavio R. Piske
http://orpiske.net

Reply via email to