[ 
https://issues.apache.org/jira/browse/PHOENIX-7842?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kyle Purtell updated PHOENIX-7842:
-----------------------------------------
    Description: 
The Phoenix build takes ~25 minutes on a M4 macbook due to shading. With some 
simple changes for developer inner loop we can cut the time in half if not 
better. 

Consider:
 * Flip the default of {{shadeSources}} from {{true}} to {{false}} in. 
Re-enable it inside the existing {{release}} profile so RC builds and {{mvn 
deploy}} still publish shaded sources jars.
 ** Estimated impact: roughly halves the time required in each shade module. 
~25 min → ~12 min.

 * Add {{<createDependencyReducedPom>false</createDependencyReducedPom>}} to 
the four shade executions in 
{{{}phoenix-client-parent/phoenix-client-embedded/pom.xml{}}}, 
{{{}phoenix-client-parent/phoenix-client-lite/pom.xml{}}}, 
{{phoenix-server/pom.xml}} and 
{{{}phoenix-mapreduce-byo-shaded-hbase/pom.xml{}}}. Drop the now-unused 
{{<dependencyReducedPomLocation>}} line and 
{{{}<promoteTransitiveDependencies>true</promoteTransitiveDependencies>{}}}. 
Safe because nothing consumes these as Maven dependencies.
 ** Estimated impact: an additional -ve of ~5–10% per module.

In theory we could then bump {{maven-shade-plugin.version}} from 3.6.0 to 3.6.2 
or later, which makes parallel builds safe. Then with the above improvements 
and also {{mvn -T 4 package -DskipTests}} the build time with skipTests may 
drop to as low as {*}5 minutes{*}.

  was:The Phoenix build takes ~25 minutes on a M4 macbook due to shading. With 
some simple changes for developer inner loop we can cut the time in half if not 
better. 


> Reduce the shading contribution to build time
> ---------------------------------------------
>
>                 Key: PHOENIX-7842
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-7842
>             Project: Phoenix
>          Issue Type: Improvement
>            Reporter: Andrew Kyle Purtell
>            Assignee: Andrew Kyle Purtell
>            Priority: Minor
>
> The Phoenix build takes ~25 minutes on a M4 macbook due to shading. With some 
> simple changes for developer inner loop we can cut the time in half if not 
> better. 
> Consider:
>  * Flip the default of {{shadeSources}} from {{true}} to {{false}} in. 
> Re-enable it inside the existing {{release}} profile so RC builds and {{mvn 
> deploy}} still publish shaded sources jars.
>  ** Estimated impact: roughly halves the time required in each shade module. 
> ~25 min → ~12 min.
>  * Add {{<createDependencyReducedPom>false</createDependencyReducedPom>}} to 
> the four shade executions in 
> {{{}phoenix-client-parent/phoenix-client-embedded/pom.xml{}}}, 
> {{{}phoenix-client-parent/phoenix-client-lite/pom.xml{}}}, 
> {{phoenix-server/pom.xml}} and 
> {{{}phoenix-mapreduce-byo-shaded-hbase/pom.xml{}}}. Drop the now-unused 
> {{<dependencyReducedPomLocation>}} line and 
> {{{}<promoteTransitiveDependencies>true</promoteTransitiveDependencies>{}}}. 
> Safe because nothing consumes these as Maven dependencies.
>  ** Estimated impact: an additional -ve of ~5–10% per module.
> In theory we could then bump {{maven-shade-plugin.version}} from 3.6.0 to 
> 3.6.2 or later, which makes parallel builds safe. Then with the above 
> improvements and also {{mvn -T 4 package -DskipTests}} the build time with 
> skipTests may drop to as low as {*}5 minutes{*}.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to