You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Xaver (Jira)" <ji...@apache.org> on 2024/01/09 19:03:00 UTC

[jira] [Commented] (MBUILDCACHE-73) Add project version as additional property for reconcilation

    [ https://issues.apache.org/jira/browse/MBUILDCACHE-73?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17804848#comment-17804848 ] 

Xaver commented on MBUILDCACHE-73:
----------------------------------

Hi there,
V1.0.1 works awesome (we use it in a large multi module project and reduced computation costs of CI/CD by ~80%)! Thanks a lot for it.

I think that the merge of [PR#117|https://github.com/apache/maven-build-cache-extension/pull/117] / MBUILDCACHE-76 was a mistake.

Please look at the [description of the extension|https://maven.apache.org/extensions/maven-build-cache-extension/]:
{panel:title=A combination of features achieves that:}
Version normalization supports project *version agnostic caches*
{panel}

Other modern build tools I know (e.g. gradle, nx.dev) use version agnostic caches. I really missed this feature a lot.

Please don't close this issue. It's important for many use cases that the version is optional for checksum calculation.

Thank you from a happy 1.0.1 user.

> Add project version as additional property for reconcilation
> ------------------------------------------------------------
>
>                 Key: MBUILDCACHE-73
>                 URL: https://issues.apache.org/jira/browse/MBUILDCACHE-73
>             Project: Maven Build Cache Extension
>          Issue Type: New Feature
>    Affects Versions: 1.0.1
>            Reporter: Patrik Dudits
>            Priority: Major
>
> Certain plugins or goals might require to run when project version changes regardless of other inputs. A typical example would be {{deploy:deploy}} or in my specific case {{docker:build}} - It is OK to reuse the build artifact, but if version changed, I do want to upload it.
> Currently only way to achieve that isĀ  to put the goal into {{runAlways}} section. But that results in needles snapshots to be deployed or docker images being built even if there's no relevant change.
> The reconcile section allows to specify properties for futher fine tuning the input. These are limited to goal parameters, and neither of my examples contain project version as a parameter, both use project model to fetch it.
> Proposal would be to extend tag {{reconcile}} either with:
>  * special magic name {{project.version}} to include version tracking, so this could be achieved by {{<reconcile propertyName="project.version"/>}}
>  * attribute {{{}expression{}}}, to achieve the result with {{<reconcile propertyName="version" expression="${project.version}"/>}}
> * interpolating {{defaultValue}} attribute
> The second form would be preferrable as it has much larger scale of application, I can imagine putting base docker image digests in environment variable to invalidate builds when base tag gets updated. It is also more discoverable than third option.



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