Hello Tamás,

we don't intentionally update released artifacts. Once released they are 
not normally updated, however, I recognize this thing happened. I don't 
remember exactly when (maybe in november) but it was a mistake.

 >we were chasing some build issues in Nexus -- that were very strange 
-- and after a long investigation narrowed it to you.
I'm particularly sorry about that.

best regards,
Thierry Boileau

> Hi there,
>
> we were chasing some build issues in Nexus -- that were very strange 
> -- and after a long investigation narrowed it to You.
>
> What was the issue: one of our developers built Nexus after a long 
> time not doing so, and his build behaved completely broken, as 
> regarding to restlet REST services. The issue he had was _very_ 
> similar to those reported in my mail few weeks ago (GZIP and content 
> length, confirmed by Thierry in 1.1.2!).
>
> The interesting thing was, that in Nexus, we use _released_ artifacts 
> of restlet JARs, specifically the version 1.1.1 (stepped back from 
> 1.1.2 because of "GZIP and content length" problem).
>
> Furthermore, Sonatype is proxying the maven.restlet.org 
> <http://maven.restlet.org> repository (to lessen the hit of the 
> grid.sonatype.org <http://grid.sonatype.org> CI machines), and some of 
> our developers are using the proxy repository instead of direct 
> accessing the maven.restlet.org <http://maven.restlet.org>. The 
> developer in question was _not_ using repository.sonatype.org 
> <http://repository.sonatype.org> proxy, he was accessing the 
> maven.repository.org <http://maven.repository.org> directly. And 
> interestingly, his builds were totally hosed, and were producing the 
> _exactly_ same "GZIP + content length" issue that was found in 1.1.2, 
> but not in 1.1.1 (up to now).
> Â 
> As it turned out, the maven.restlet.org <http://maven.restlet.org> 
> _release_ repository artifacts are _changed_ after they are deployed. 
> This is violating the Maven Remote Repository contract in it's roots.
>
> What I detected up to now:
>
> 1. The _release_ JAR files _changes_ in time! At least, the Restlet 
> engine of 1.1.1 release _did_ change silently.
>
> Example:
> users accessing restlet proxy repository over repository.sonatype.org 
> <http://repository.sonatype.org> pulled the 
> com.noelios.restlet-1.1.1.jar (restlet engine) once, and Nexus (just 
> like Maven!!!), will _never_ again check for new _release_ artifact. 
> It simply does not makes sense. A release is released, put in 
> concrete, and it does not changes in time. The "moving targets" are 
> snapshots only.
>
> Right now, there are potentially multiple versions of restlet JARs out 
> there. Just like this:
>
> http://maven.restlet.org/com/noelios/restlet/com.noelios.restlet/1.1.1/com.noelios.restlet-1.1.1.jar
>
> If you download this JAR for maven.restlet.org 
> <http://maven.restlet.org>, and download the same JARs from Nexus 
> proxying maven.restlet.org <http://maven.restlet.org>:
>
> http://repository.sonatype.org/content/repositories/restlet/com/noelios/restlet/com.noelios.restlet/1.1.1/com.noelios.restlet-1.1.1.jar
>
> (this jar is proxied from maven.restlet.org <http://maven.restlet.org> 
> at Nov 15 2008). You will end up with two different jars:
>
> Coming from maven.restlet.org <http://maven.restlet.org> in this very 
> moment:
> SHA1(com.noelios.restlet-1.1.1.jar)= 
> 051b7b6bb01356aa296705e71fec82ab02f1f977
> Meta-inf says: Implementation-Version: 1.1.1 (build 18)
> Has GZIP + Content Length bug introduced
>
> Came from maven.restlet.org <http://maven.restlet.org> at Nov 15 2008:
> SHA1(com.noelios.restlet-1.1.1.jar)= 
> ac28b0e9d5a7b0513c2aab495094b51515e40162
> Meta-inf says: Implementation-Version: 1.1.1 (build 6)
> Has _no_ GZIP + Content Length bug introduced
>
> 2. (minor but interesting) LastChanged header that is returned by 
> maven.restlet.org <http://maven.restlet.org> repository is always 
> _now_ (current date up to the second). This is bad, and makes 
> detection of remote file change using HEAD impossible.
>
> Please, stop doing this. Or don't host a Maven Repository.
>
> This actually means, Â that you are making your Maven Repository 
> consumers _unable_ to guarantee consistent/reproducible builds. 
>
> Just like Nexus OSS trunk is broken for everybody out there building 
> it by accessing your maven.restlet.org <http://maven.restlet.org> 
> repository. But out builds made on CI machines will be fine, since 
> they are picking up "build 6" of restlet engine, that has no GZIP bung 
> introduced (yet).
>
> Thanks,
> ~t~

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=1228076

Reply via email to