olamy commented on PR #479:
URL: https://github.com/apache/maven-surefire/pull/479#issuecomment-1153112560

   > When I see the 
[commit](https://github.com/apache/maven-surefire/pull/479/commits/a8295bfebd4c067d4caa1323ae80ecfee42883ac),
 I have to say that this PR is a pure mess and disaster, the providers must not 
be touched in the ITs POM. The POM changes have nothing to do with any build 
speed up, it has nothing to do with `-T3`. It's a pure hack which affects 
functionality of the tests and it is very risky solution. As I said before in 
Slack or GH, the way how the build can be faster is to focus on the most slow 
IT classes and those are only few and those are Parameterized and they can be 
speed up as it was before (I deleted due to Maven Resolver) only the way that 
the Maven local repo would have all artifacts pre-loaded or the Resolver would 
be failsafe which is not now and so the concurrent ITs would fail the Resolver 
of course. Maiking the project build parallel would speed up the build in 5 min 
because all modules except the surefire-its are much faster in comparison to 
the ITs, so
  there is no reason to think about these "improvements". The penalty would 
wrong behavior of the tests, and that's worst!
   > 
   > Another story is embedded Maven. This was not stable solution for us some 
time ago because it shares system props and env is shared and the developer has 
no notion about while writing the test, and so there is the risc the IT however 
succeeds on Jenkins but fails in real environment. That's the reason why it was 
removed several years ago in the surefire-its/pom.xml.
   
   2 facts:
   
   1.  build plan
   
     - before this commits in master:
    ```
   ➜  maven-surefire git:(master) mvn clean install -pl :surefire-its -am
   [INFO] Scanning for projects...
   [INFO] 
------------------------------------------------------------------------
   [INFO] Reactor Build Order:
   [INFO] 
   [INFO] Apache Maven Surefire                                              
[pom]
   [INFO] Maven Surefire Integration Tests                                   
[jar]
   ```
   
   - after this change:
   
   ```
   ➜  maven-surefire git:(multithread-build-possible) mvn clean install -pl 
:surefire-its -am
   [INFO] Scanning for projects...
   [INFO] 
------------------------------------------------------------------------
   [INFO] Reactor Build Order:
   [INFO] 
   [INFO] Apache Maven Surefire                                              
[pom]
   [INFO] Surefire Shared Utils                                              
[jar]
   [INFO] SureFire Logger API                                                
[jar]
   [INFO] SureFire API                                                       
[jar]
   [INFO] Surefire Extensions API                                            
[jar]
   [INFO] Surefire Extensions SPI                                            
[jar]
   [INFO] SureFire Booter                                                    
[jar]
   [INFO] Maven Surefire Test-Grouping Support                               
[jar]
   [INFO] SureFire Providers                                                 
[pom]
   [INFO] Shared JUnit3 Provider Code                                        
[jar]
   [INFO] Shared Java 5 Provider Base                                        
[jar]
   [INFO] Shared JUnit4 Provider Code                                        
[jar]
   [INFO] Shared JUnit48 Provider Code                                       
[jar]
   [INFO] SureFire JUnit Runner                                              
[jar]
   [INFO] SureFire JUnit4 Runner                                             
[jar]
   [INFO] Maven Surefire Common                                              
[jar]
   [INFO] SureFire JUnitCore Runner                                          
[jar]
   [INFO] SureFire JUnit Platform Runner                                     
[jar]
   [INFO] SureFire TestNG Utils                                              
[jar]
   [INFO] SureFire TestNG Runner                                             
[jar]
   [INFO] Surefire Report Parser                                             
[jar]
   [INFO] Maven Surefire Plugin                                     
[maven-plugin]
   [INFO] Maven Failsafe Plugin                                     
[maven-plugin]
   [INFO] Maven Surefire Report Plugin                              
[maven-plugin]
   [INFO] Maven Surefire Integration Tests                                   
[jar]
   ```
   
   I tend to think the second build plan is more correct regarding to what the 
`surefire-its` wants to achieve.
   the goal is not really to use only parallel as it will provide only a bit 
shorter build time but hey it's still an improvement.
   
   2. use of verifier with auto mode:
   - without this any branch of the build is about 1h20minutes see 
https://ci-maven.apache.org/job/Maven/job/maven-box/job/maven-surefire/job/master/
   - with this change: 
https://ci-maven.apache.org/blue/organizations/jenkins/Maven%2Fmaven-box%2Fmaven-surefire/detail/PR-479/33/pipeline/24
 branch are about 50 minutes (still issues to have a look for jdk11+) (locally 
the build is down from 1h10m to 42minutes
   Personally I think it worth it just to help us developing and contributor to 
not waste too much time.
   
    
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@maven.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to