ThoughtWorksInc / go-maven-poller

Go plugin that polls Maven (Nexus) repositories
Apache License 2.0
3 stars 19 forks source link

New snapshot versions not correctly identified #3

Open ghost opened 11 years ago

ghost commented 11 years ago

Newer versions of the same snapshot are not being identified by the poller.

1.0.0-SNAPSHOT was pushed to nexus and the poller identified it correctly and started the pipeline. A second build rebuilt the same version number, and pushed it to nexus, but the poller ignored it as the version number matched. When polling nexus for all versions, SNAPSHOT versions must consider the "lastModified" timestamp included in the response, not just the version.

bagheera commented 11 years ago

I am not sure about supporting snapshots. From a CD traceability point of view, the revision of the package should be unambiguous. In a CD set up, every build is a potential release candidate - so I'd use first class revisions on packages. The only thing maven snapshots address (that I can think of) is helping the maven repo to conserve disk space. But this can be done with release artifacts as well by specifying a different cleanup policy.

jezhumble commented 11 years ago

+1 to all your points @bagheera. I'd go further: snapshots are antithetical to doing CD: http://www.lucasward.net/2010/11/maven-and-continuous-delivery.html

On 30 October 2013 10:45, Sriram Narayan notifications@github.com wrote:

I am not sure about supporting snapshots. From a CD traceability point of view, the revision of the package should be unambiguous. In a CD set up, every build is a potential release candidate - so I'd use first class revisions on packages. The only thing maven snapshots address (that I can think of) is helping the maven repo to conserve disk space. But this can be done with release artifacts as well by specifying a different cleanup policy.

— Reply to this email directly or view it on GitHubhttps://github.com/ThoughtWorksInc/go-maven-poller/issues/3#issuecomment-27417681 .

Jez Humble Co-author, Continuous Delivery http://continuousdelivery.com/ http://continuousdelivery.com/ http://jezhumble.net/

bagheera commented 11 years ago

thanks @jezhumble

ghost commented 11 years ago

I understand the points and completely agree (great book by the way Jez). Unfortunately, we've got a lot of tech debt and are early in a transition towards CD, and are looking at incremental steps to get there instead of a big bang approach. If we can't get the poller to support snapshots, can we put in a feature request to be able to exclude them? Given the poller sees: 1.0 1.1 1.2-SNAPSHOT It would be nice then to have the poller ignore 1.2-SNAPSHOT until it's released as 1.2.

bagheera commented 11 years ago

@unwdaniel sure, would you like to contribute a patch for that? Just send it as a pull request. I'd filter out snapshots as the first step in the getLatest method of RepositoryClient.

jezhumble commented 11 years ago

Thanks @unwdaniel

I think it makes sense to exclude snapshots.

On 30 October 2013 13:15, unwdaniel notifications@github.com wrote:

I understand the points and completely agree (great book by the way Jez). Unfortunately, we've got a lot of tech debt and are early in a transition towards CD, and are looking at incremental steps to get there instead of a big bang approach. If we can't get the poller to support snapshots, can we put in a feature request to be able to exclude them? Given the poller sees: 1.0 1.1 1.2-SNAPSHOT It would be nice then to have the poller ignore 1.2-SNAPSHOT until it's released as 1.2.

— Reply to this email directly or view it on GitHubhttps://github.com/ThoughtWorksInc/go-maven-poller/issues/3#issuecomment-27434720 .

Jez Humble Co-author, Continuous Delivery http://continuousdelivery.com/ http://continuousdelivery.com/ http://jezhumble.net/