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

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


The following commit(s) were added to refs/heads/master by this push:
     new 0ff869b06b Improve Scala compilation caching and build config (#2967)
0ff869b06b is described below

commit 0ff869b06b7b53036ed6e7d5ed6eff010ff0def4
Author: Gašper Kojek <[email protected]>
AuthorDate: Mon Mar 9 15:13:07 2026 +0100

    Improve Scala compilation caching and build config (#2967)
    
    Improved caching config for scalaCompile for compilerPlugins, 
pluginArtifacts and dependencies
    * Adding `classpath` as a tracked input for scalaCompile
    * Fixed caching of scala-maven-compile plugin
    * fix: bumped scala-maven-pluginto fix testCompile cache misses
    Signed-off-by: Gasper Kojek <[email protected]>
---
 pom.xml | 139 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 129 insertions(+), 10 deletions(-)

diff --git a/pom.xml b/pom.xml
index 1c1da137a0..52a665bf96 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3164,6 +3164,16 @@
                                             <id>scala-compile-first</id>
                                             <inputs>
                                                 <fileSets>
+                                                    <fileSet>
+                                                        
<name>sourceDirectory</name>
+                                                        <paths>
+                                                            
<path>src/main/scala</path>
+                                                        </paths>
+                                                        <normalization>
+                                                            
<ignoreLineEndings>true</ignoreLineEndings>
+                                                            
<ignoreEmptyDirectories>true</ignoreEmptyDirectories>
+                                                        </normalization>
+                                                    </fileSet>
                                                     <fileSet>
                                                         <name>sourceDir</name>
                                                         
<includesProperty>includes</includesProperty>
@@ -3177,6 +3187,10 @@
                                                         
<name>classpathElements</name>
                                                         
<normalization>COMPILE_CLASSPATH</normalization>
                                                     </fileSet>
+                                                    <fileSet>
+                                                        
<name>compilerPlugins</name>
+                                                        
<normalization>IGNORED_PATH</normalization>
+                                                    </fileSet>
                                                 </fileSets>
                                                 <properties>
                                                     <property>
@@ -3260,13 +3274,59 @@
                                                     <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>
+                                                    <!-- Deprecated and 
included in the classpathElements -->
                                                 </ignoredProperties>
                                             </inputs>
+                                            <iteratedProperties>
+                                                <property>
+                                                    
<name>pluginArtifacts</name>
+                                                    <inputs>
+                                                        <properties>
+                                                            <property>
+                                                                
<name>groupId</name>
+                                                            </property>
+                                                            <property>
+                                                                
<name>artifactId</name>
+                                                            </property>
+                                                            <property>
+                                                                
<name>version</name>
+                                                            </property>
+                                                            <property>
+                                                                
<name>baseVersion</name>
+                                                            </property>
+                                                            <property>
+                                                                
<name>type</name>
+                                                            </property>
+                                                            <property>
+                                                                
<name>classifier</name>
+                                                            </property>
+                                                            <property>
+                                                                
<name>scope</name>
+                                                            </property>
+                                                        </properties>
+                                                    </inputs>
+                                                </property>
+                                                <property>
+                                                    <name>dependencies</name>
+                                                    <inputs>
+                                                        <properties>
+                                                            <property>
+                                                                
<name>groupId</name>
+                                                            </property>
+                                                            <property>
+                                                                
<name>artifactId</name>
+                                                            </property>
+                                                            <property>
+                                                                
<name>version</name>
+                                                            </property>
+                                                            <property>
+                                                                
<name>classifier</name>
+                                                            </property>
+                                                        </properties>
+                                                    </inputs>
+                                                </property>
+                                            </iteratedProperties>
                                             <outputs>
                                                 <cacheableBecause>compilation 
is CPU-bound</cacheableBecause>
                                                 <directories>
@@ -3293,6 +3353,16 @@
                                             </skipIfTrue>
                                             <inputs>
                                                 <fileSets>
+                                                    <fileSet>
+                                                        
<name>testSourceDirectory</name>
+                                                        <paths>
+                                                            
<path>src/test/scala</path>
+                                                        </paths>
+                                                        <normalization>
+                                                            
<ignoreLineEndings>true</ignoreLineEndings>
+                                                            
<ignoreEmptyDirectories>true</ignoreEmptyDirectories>
+                                                        </normalization>
+                                                    </fileSet>
                                                     <fileSet>
                                                         
<name>testSourceDir</name>
                                                         
<includesProperty>includes</includesProperty>
@@ -3306,6 +3376,10 @@
                                                         
<name>classpathElements</name>
                                                         
<normalization>COMPILE_CLASSPATH</normalization>
                                                     </fileSet>
+                                                    <fileSet>
+                                                        
<name>compilerPlugins</name>
+                                                        
<normalization>IGNORED_PATH</normalization>
+                                                    </fileSet>
                                                 </fileSets>
                                                 <properties>
                                                     <property>
@@ -3386,12 +3460,57 @@
                                                     <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>
+                                            <iteratedProperties>
+                                                <property>
+                                                    
<name>pluginArtifacts</name>
+                                                    <inputs>
+                                                        <properties>
+                                                            <property>
+                                                                
<name>groupId</name>
+                                                            </property>
+                                                            <property>
+                                                                
<name>artifactId</name>
+                                                            </property>
+                                                            <property>
+                                                                
<name>version</name>
+                                                            </property>
+                                                            <property>
+                                                                
<name>baseVersion</name>
+                                                            </property>
+                                                            <property>
+                                                                
<name>type</name>
+                                                            </property>
+                                                            <property>
+                                                                
<name>classifier</name>
+                                                            </property>
+                                                            <property>
+                                                                
<name>scope</name>
+                                                            </property>
+                                                        </properties>
+                                                    </inputs>
+                                                </property>
+                                                <property>
+                                                    <name>dependencies</name>
+                                                    <inputs>
+                                                        <properties>
+                                                            <property>
+                                                                
<name>groupId</name>
+                                                            </property>
+                                                            <property>
+                                                                
<name>artifactId</name>
+                                                            </property>
+                                                            <property>
+                                                                
<name>version</name>
+                                                            </property>
+                                                            <property>
+                                                                
<name>classifier</name>
+                                                            </property>
+                                                        </properties>
+                                                    </inputs>
+                                                </property>
+                                            </iteratedProperties>
                                             <outputs>
                                                 <cacheableBecause>compilation 
is CPU-bound with well-defined inputs and outputs</cacheableBecause>
                                                 <directories>
@@ -3510,7 +3629,7 @@
                 <plugin>
                     <groupId>net.alchim31.maven</groupId>
                     <artifactId>scala-maven-plugin</artifactId>
-                    <version>4.9.6</version>
+                    <version>4.9.10</version>
                     <configuration>
                         <recompileMode>all</recompileMode>
                         <source>${target.jdk}</source>
@@ -3533,7 +3652,7 @@
                             <compilerPlugin>
                                 <groupId>org.scalameta</groupId>
                                 
<artifactId>semanticdb-scalac_${scala.version}</artifactId>
-                                <version>4.9.6</version>
+                                <version>4.15.2</version>
                             </compilerPlugin>
                         </compilerPlugins>
                     </configuration>


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to