ivy-plugin
ivy-plugin copied to clipboard
Extended revision matching does not work w/explicit revision #s
First, some details:
- Jenkins 1.452
- Ivy Plugin 1.21
- "Use extended revision matching to filter the project dependency graph" enabled
- Freestyle project
Dependee/lib project's ivy info:
<info organisation="com.example" module="my-svc" status="integration" branch="trunk" revision="1.0.1" />
Depender/app dep:
<dependency org="com.example" name="my-svc" branch="trunk" rev="1.0.1" />
As such it fails to be recognized as a dependency by the plugin. If I change it to either:
<dependency org="com.example" name="my-svc" branch="trunk" rev="1.0.+" />
<dependency org="com.example" name="my-svc" branch="trunk" rev="latest.integration" />
Then it works as expected. Why won't the explicit version work?
I debugged this and found the offending line at: https://github.com/jenkinsci/ivy-plugin/blob/master/src/main/java/hudson/ivy/IvyBuildTrigger.java#L494 added in commit: https://github.com/jenkinsci/ivy-plugin/commit/af3db7f721b476a01d416761e8bedfb5b0cf10ab:
captures = (matcher != null && matcher.isDynamic(depRevId));
It looks like prior to that there was an option to "enforceDynamicMatching" or not, but I don't get the rationale to deny version matches for explicit versioning. Can anyone elaborate on the logic here?
Thanks in advance!
@ndeloof would you have a minute to share your thoughts on this issue?