Hi Jean,

I tried your work locally and the build time is truly better.
`mvn clean install -DskipTests -Dmaven.skip.doc=true
-Dgradle.cache.local.enabled=true`

1st build:
[INFO] Total time:  22:18 min
[INFO] 8053 goals, 7996 executed, 57 from cache, saving at least 13s

2nd build:
[INFO] Total time:  15:07 min
[INFO] 8053 goals, 7296 executed, 757 from cache, saving at least 3m 11s

Thank you for the initiative :-)

Quan

Vào Th 3, 6 thg 2, 2024 vào lúc 14:48 Jean Helou <jhe...@apache.org> đã
viết:

> Hi devs,
>
> I realized this morning that I initiated the conversation on the wrong list
> (server-user instead of server-dev) ...
> see the archives
> https://lists.apache.org/list.html?server-u...@james.apache.org for Rene's
> positive answer
>
> sorry about that
>
> jean
>
> ---------- Forwarded message ---------
> From: Jean Helou <jhe...@apache.org>
> Date: Mon, Feb 5, 2024 at 3:52 PM
> Subject: Develocity
> To: James Users List <server-u...@james.apache.org>
>
>
> Hello fellow james devs,
>
> I'm not sure how much context to provide in the email you can read more in
>
> https://issues.apache.org/jira/projects/JAMES/issues/JAMES-3978?filter=allopenissues
>
> TLDR; A few months ago the apache foundation announced a sponsorship of the
> "gradle" company for a tool to diagnose, monitor and optimize builds  (
> called gradle enterprise at the time and renamed develocity since)
>
> I posted a first PR to plug james build in that tool
> https://github.com/apache/james-project/pull/1972
>
> This first integration brings only build scans and local caching
> - build scans can help us understand what slows our build
> - local caching allows local build perf improvements (I posted a small
> benchmark which shows a divide by 3 the time spent building
> james-server-core in a repeat build with no changes)
>
> The build scans also show that many tasks in the build are not actually
> cached so there is room for more improvement.
>
> The local cache does apply to surefire tasks,unfortunately the benefits for
> CI are very small :
>
> In the first stage we cache the compilation result itself but that
> represents a very small part of the test stages (even if we had to compile
> everything from scratch that's barely 20 minutes out of the 3h30 of the
> build so caching only marginally improves the build time at the moment
>
> the next stage would be to :
> - make more tasks cacheable
> - enable the remote build cache
>
> The remote build cache allows to share caching accross builds which means
> that if a change affects only a small portion of the build, only that
> change would effectively be recompiled and retested, so the closer to the
> "leafs" of the reactor a change would be the shorter its CI pipelines would
> be.
> I pinged INFRA in https://issues.apache.org/jira/browse/INFRA-25461 to
> know
> what the process is for enabling the remote build cache and it seems it
> starts with a mailing list thread :D
>
> note that
> - only the CI would be allowed to write to the remote build cache
> - build caches both local and remote can be disabled with properties (IIRC
> there are pretty strict constraints on release processes in the apache
> foundation)
> - I think it is possible to have the remote build cache be activated in
> readonly mode for everyone  so that anyone pulling the repo would
> experience a very fast first build (but that remains to be confirmed as I
> have never experienced it)
>
> what do you think ?
>
> jean
>

Reply via email to