You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by jh...@apache.org on 2025/09/14 19:04:56 UTC

(james-project) branch master updated (567ecfbf5a -> ed60d9b666)

This is an automated email from the ASF dual-hosted git repository.

jhelou pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git


    from 567ecfbf5a [JAMES-4145] removes invalid dependency to data-jmap
     new 1a3d4dac28 [JAMES-3978] build cache for scala compiler plugin
     new 5a275b4839 [JAMES-3978] build cache for jacoco report plugin
     new ed60d9b666 [JAMES-3978] enables test output caching

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 pom.xml | 339 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 337 insertions(+), 2 deletions(-)


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org


(james-project) 03/03: [JAMES-3978] enables test output caching

Posted by jh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jhelou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit ed60d9b6660a24417def8eff7b9c2f0ee48a9304
Author: Jean Helou <je...@xn--gml-cma.com>
AuthorDate: Sun Sep 14 14:45:05 2025 +0200

    [JAMES-3978] enables test output caching
    
    using runtimeClasspath normalization to ignore git.properties
    which was pointed out as preventing caching by a build scan
    comparison
    git.properties are not expected to change test and coverage output much
    anyways.
---
 pom.xml | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/pom.xml b/pom.xml
index 3067e726de..f6d1a6fe05 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3502,6 +3502,13 @@
                                     </executions>
                                 </plugin>
                             </plugins>
+                            <normalization>
+                                <runtimeClassPath>
+                                    <ignoredFiles>
+                                        <ignoredFile>git.properties</ignoredFile>
+                                    </ignoredFiles>
+                                </runtimeClassPath>
+                            </normalization>
                         </develocity>
                     </configuration>
                 </plugin>


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org


(james-project) 01/03: [JAMES-3978] build cache for scala compiler plugin

Posted by jh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jhelou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 1a3d4dac2807800908c1ed4ce2e647ffff2c2fb2
Author: Jean Helou <je...@xn--gml-cma.com>
AuthorDate: Fri Aug 15 22:27:44 2025 +0200

    [JAMES-3978] build cache for scala compiler plugin
---
 pom.xml | 267 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 265 insertions(+), 2 deletions(-)

diff --git a/pom.xml b/pom.xml
index cc307d671a..7ee40d7e12 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3179,6 +3179,263 @@
                                         </execution>
                                     </executions>
                                 </plugin>
+                                <plugin>
+                                    <groupId>net.alchim31.maven</groupId>
+                                    <artifactId>scala-maven-plugin</artifactId>
+                                    <executions>
+                                        <execution>
+                                            <id>scala-compile-first</id>
+                                            <inputs>
+                                                <fileSets>
+                                                    <fileSet>
+                                                        <name>sourceDir</name>
+                                                        <includesProperty>includes</includesProperty>
+                                                        <excludesProperty>excludes</excludesProperty>
+                                                        <normalization>
+                                                            <ignoreLineEndings>true</ignoreLineEndings>
+                                                            <ignoreEmptyDirectories>true</ignoreEmptyDirectories>
+                                                        </normalization>
+                                                    </fileSet>
+                                                    <fileSet>
+                                                        <name>classpathElements</name>
+                                                        <normalization>COMPILE_CLASSPATH</normalization>
+                                                    </fileSet>
+                                                </fileSets>
+                                                <properties>
+                                                    <property>
+                                                        <name>addJavacArgs</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>addScalacArgs</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>additionalDependencies</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>args</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>checkMultipleScalaVersions</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>compileOrder</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>displayCmd</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>encoding</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>failOnMultipleScalaVersions</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>forceUseArgFile</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>fork</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>javacArgs</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>jvmArgs</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>recompileMode</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>release</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>scalaClassName</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>scalaCompatVersion</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>scalaHome</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>scalaOrganization</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>scalaVersion</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>sendJavaToScalac</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>skipMain</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>source</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>target</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>useCanonicalPath</name>
+                                                    </property>
+                                                </properties>
+                                                <ignoredProperties>
+                                                    <ignore>project</ignore>
+                                                    <ignore>session</ignore>
+                                                    <ignore>notifyCompilation</ignore>
+                                                    <ignore>javacGenerateDebugSymbols</ignore>
+                                                    <!-- ignoring these feels wrong but I couldn't find a way to track them -->
+                                                    <ignore>pluginArtifacts</ignore>
+                                                    <ignore>dependencies</ignore>
+                                                    <ignore>compilerPlugins</ignore>
+                                                    <ignore>classpath</ignore>
+                                                </ignoredProperties>
+                                            </inputs>
+                                            <outputs>
+                                                <cacheableBecause>compilation is CPU-bound</cacheableBecause>
+                                                <directories>
+                                                    <directory>
+                                                        <name>outputDir</name>
+                                                    </directory>
+                                                </directories>
+                                            </outputs>
+                                            <localState>
+                                                <fileSets>
+                                                    <fileSet>
+                                                        <name>secondaryCacheDir</name>
+                                                    </fileSet>
+                                                    <fileSet>
+                                                        <name>analysisCacheFile</name>
+                                                    </fileSet>
+                                                </fileSets>
+                                            </localState>
+                                        </execution>
+                                        <execution>
+                                            <id>scala-test-compile</id>
+                                            <skipIfTrue>
+                                                <property>skip</property>
+                                            </skipIfTrue>
+                                            <inputs>
+                                                <fileSets>
+                                                    <fileSet>
+                                                        <name>testSourceDir</name>
+                                                        <includesProperty>includes</includesProperty>
+                                                        <excludesProperty>excludes</excludesProperty>
+                                                        <normalization>
+                                                            <ignoreLineEndings>true</ignoreLineEndings>
+                                                            <ignoreEmptyDirectories>true</ignoreEmptyDirectories>
+                                                        </normalization>
+                                                    </fileSet>
+                                                    <fileSet>
+                                                        <name>classpathElements</name>
+                                                        <normalization>COMPILE_CLASSPATH</normalization>
+                                                    </fileSet>
+                                                </fileSets>
+                                                <properties>
+                                                    <property>
+                                                        <name>addJavacArgs</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>addScalacArgs</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>additionalDependencies</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>args</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>checkMultipleScalaVersions</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>compileOrder</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>displayCmd</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>encoding</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>failOnMultipleScalaVersions</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>forceUseArgFile</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>fork</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>javacArgs</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>jvmArgs</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>recompileMode</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>release</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>scalaClassName</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>scalaCompatVersion</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>scalaHome</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>scalaOrganization</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>scalaVersion</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>sendJavaToScalac</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>source</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>target</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>useCanonicalPath</name>
+                                                    </property>
+                                                </properties>
+                                                <ignoredProperties>
+                                                    <ignore>project</ignore>
+                                                    <ignore>session</ignore>
+                                                    <ignore>notifyCompilation</ignore>
+                                                    <ignore>javacGenerateDebugSymbols</ignore>
+                                                    <!-- ignoring these feels wrong but I couldn't find a way to track them -->
+                                                    <ignore>pluginArtifacts</ignore>
+                                                    <ignore>dependencies</ignore>
+                                                    <ignore>compilerPlugins</ignore>
+                                                </ignoredProperties>
+                                            </inputs>
+                                            <outputs>
+                                                <cacheableBecause>compilation is CPU-bound with well-defined inputs and outputs</cacheableBecause>
+                                                <directories>
+                                                    <directory>
+                                                        <name>testOutputDir</name>
+                                                    </directory>
+                                                </directories>
+                                            </outputs>
+                                            <localState>
+                                                <fileSets>
+                                                    <fileSet>
+                                                        <name>secondaryCacheDir</name>
+                                                    </fileSet>
+                                                    <fileSet>
+                                                        <name>testAnalysisCacheFile</name>
+                                                    </fileSet>
+                                                </fileSets>
+                                            </localState>
+                                        </execution>
+                                    </executions>
+                                </plugin>
                             </plugins>
                         </develocity>
                     </configuration>
@@ -3204,7 +3461,7 @@
                 <plugin>
                     <groupId>net.alchim31.maven</groupId>
                     <artifactId>scala-maven-plugin</artifactId>
-                    <version>4.9.5</version>
+                    <version>4.9.6</version>
                     <configuration>
                         <recompileMode>all</recompileMode>
                         <source>${target.jdk}</source>
@@ -3233,9 +3490,15 @@
                     </configuration>
                     <executions>
                         <execution>
-                            <id>scala-compile-first</id>
+                            <id>scala-add-source</id>
                             <goals>
                                 <goal>add-source</goal>
+                            </goals>
+                            <phase>process-resources</phase>
+                        </execution>
+                        <execution>
+                            <id>scala-compile-first</id>
+                            <goals>
                                 <goal>compile</goal>
                             </goals>
                             <phase>process-resources</phase>


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org


(james-project) 02/03: [JAMES-3978] build cache for jacoco report plugin

Posted by jh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jhelou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 5a275b4839971d8facbeee5162f5defd6a94ae01
Author: Jean Helou <je...@xn--gml-cma.com>
AuthorDate: Fri Aug 15 23:03:20 2025 +0200

    [JAMES-3978] build cache for jacoco report plugin
---
 pom.xml | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 65 insertions(+)

diff --git a/pom.xml b/pom.xml
index 7ee40d7e12..3067e726de 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3436,6 +3436,71 @@
                                         </execution>
                                     </executions>
                                 </plugin>
+                                <plugin>
+                                    <groupId>org.jacoco</groupId>
+                                    <artifactId>jacoco-maven-plugin</artifactId>
+                                    <skipIfTrue>
+                                        <property>skip</property>
+                                    </skipIfTrue>
+                                    <executions>
+                                        <execution>
+                                            <id>jacoco-report</id>
+                                            <inputs>
+                                                <properties>
+                                                    <property>
+                                                        <name>dataFileExcludes</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>dataFileExcludes</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>dataFileIncludes</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>excludes</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>footer</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>includeCurrentProject</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>includes</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>outputEncoding</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>sourceEncoding</name>
+                                                    </property>
+                                                    <property>
+                                                        <name>title</name>
+                                                    </property>
+                                                </properties>
+                                                <ignoredProperties>
+                                                    <ignore>project</ignore>
+                                                    <ignore>reactorProjects</ignore>
+                                                    <!--
+                                                     we should not be ignoring this since formats changes the content of the output
+                                                      but it contains a list of enum see https://github.com/jacoco/jacoco/blob/562a7299399b8321dfcf8eeb21ea4bfc27556fdc/jacoco-maven-plugin/src/org/jacoco/maven/AbstractReportMojo.java
+                                                     and that's not storable in the cache key
+                                                     no sure how this should be handled ?
+                                                     -->
+                                                    <ignore>formats</ignore>
+                                                </ignoredProperties>
+                                            </inputs>
+                                            <outputs>
+                                                <cacheableBecause>Test coverage reports depend on test execution and don't affect final build product.</cacheableBecause>
+                                                <directories>
+                                                    <directory>
+                                                        <name>outputDirectory</name>
+                                                    </directory>
+                                                </directories>
+                                            </outputs>
+                                        </execution>
+                                    </executions>
+                                </plugin>
                             </plugins>
                         </develocity>
                     </configuration>


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org