Daniel,

i think we talk about two things here:

- to fix/modify retroactively already deployed poms and/or repo
content - and i believe we both agree it is a disaster to do so.

- to prevent failed download request every time the project is built.

I was talking about the second problem, with corporate users in my
mind. And that means, on possibly close projects in controlled
environment.

I completely agree with your arguments. I was just trying to give a
"hint" for corporate users how to get rid of these failed downloads.

For OSS projects/users, currently the only solution is to get people
(interested maven user community) on to feet and push (demand) the
affected project owners/maintainers to do something about it, to make
them create deployment requests with good/valid POMs.

It simply resembles me the situation to linux RPM reposes. And a
solution i like from there is the "disconnection" (or extension) of
the actual payload (project) versioning from the RPM (atifact)
versioning, and the ability to republish a wrongly packaged RPM with
_same_ payload but with increased "full name", ie.
AProject-1.0.0-1.rpm versus AProject-1.0.0-2.rpm.

Actually, this is what we are talking about here, right?

~t~

On Jan 28, 2008 3:54 PM, Daniel Kulp <[EMAIL PROTECTED]> wrote:
>
> While I completely agree about the poms needing to be "carved in stone",
> I really DON'T agree with the requirement to "use advanced repo managers
> to solve problems like this".
>
> That's perfectly fine for enterprise level application development where
> all the developers are in the same location, but that really breaks down
> for open source projects where developers are all over the place, behind
> different firewalls, using difference repo managers that are all setup
> differently, etc...
>
> For example, let say I'm working on some maven plugin and I pull some new
> dependency.   My companies repo manager is setup to fix some dependency
> issue in that new dependency, but I don't really know that because
> someone else set that up.  (I'm just a developer).   I build and test
> and everything is OK.
>
> Now you come along (or continuum, etc..) and try to build and it all
> fails cause your companies repo manager doesn't have that fix in place.
> I give the "works for me" response because as far as I can tell, it does
> work.   You basically get into situations where builds are not globally
> reproducable.   And that's a problem.
>
> That's why for companies that invest heavily in working with open source
> stuff, I don't recommend a repo manager and instead recommend a straight
> rsync or make sure the repo manager is setup as a mirror only with no
> additions/changes.
>
>
> Now, while were on the topic:  obviously DEPENDENCY changes in poms are a
> huge problem.   What are peoples thoughts on metadata changes like the
> <licenses> section, <organization> section, url, description, etc.... ?
> I personally feel that poms for 2.1 should REQUIRE the licenses section
> (either directly or inheritted from a parent) and would really like the
> others as well.   On one hand, metadata updates usually don't break
> builds.   On the other hand, it could make past builds not 100%
> reproducable if they use that metadata.  (example: remote-resources)
>
>
> Dan
>
>
>
> On Monday 28 January 2008, Tamás Cservenák wrote:
> > Hi,
> >
> > I'm with Jason here: once something is released, it should be carved
> > into stone. The maven remote repository (every remote one, not just
> > the central!) should only "move forward" in time. We cannot allow
> > "backward" modification of artifacts since it may have unforeseeable
> > consequences! Not to mention reproducibility...
> >
> >
> > Anyway, if you _must_ have the missing POM (or simply want to prepare
> > for a new fixed release that will have one, and not to litter your own
> > project with exclusions), it is easily resolvable by some advanced
> > repository managers like Proximity. With Proximity -- for example --
> > you are able easily to "sneak" in (or even spoof if a broken exists
> > remotely) the missing POM by grouping a central proxy repo with with a
> > hosted repository -- where you keep these POMs to "fix" central. So,
> > you could maintain a "thin layer" of repos data overlayed over
> > "central" repo without breaking anything.
> >
> > Anyway, since maven "means infrastructure", it is to be expected from
> > serious maven users to not connect directly to central (and be
> > dependent of network outages for example) and use advanced repo
> > managers to solve problems like this (broken deployments).
> >
> > Something as i see as a probable fix for situations when we are stuck
> > (ie. the artifact is deployed wrongly but the project itself or it's
> > staff is not interested in fixing it or are simply unreachable) is
> > maybe to release/gather/share some sort of above mentioned "fix
> > layers" for users to lay down on their MRMs and live with it. Or maybe
> > make the deployment process more flexible, and allow repo maintainers
> > to redeploy something -- even if it's origin project did not request
> > it -- to fix something that is _obviously_ wrong. But, heh, deps are
> > not those sort of things.
> >
> >
> > ~t~
> >
> > On Jan 27, 2008 6:58 PM, Jason van Zyl <[EMAIL PROTECTED]> wrote:
> > > On 25-Jan-08, at 5:22 PM, Carlos Sanchez wrote:
> > > > great, but
> > > > - who is going to enforce it?
> > > > - who is going to say what the right pom is for a project that
> > > > doesnt build with Maven?
> > >
> > > If someone from a project submits a POM then we should take that. If
> > > projects don't then we take a submission from the community. The
> > > base requirement should be that the complete transitive closure be
> > > available publicly and preferably in central. The new artifact
> > > resolution code will be able to do this but right now if we required
> > > correct SCM information then we could have a process grab the code
> > > and try to build it for Maven projects. Oleg can speak to some of
> > > the work in the new artifact code that can help ensure the integrity
> > > of deployments.
> > >
> > > > there's still people saying that poms should be modifiable!
> > >
> > > For a release it cannot be modifiable, period. The graph cannot be
> > > mutable after a release. That has to be written in stone. If someone
> > > doesn't see something and made a mistake then they have to release
> > > again.
> > >
> > > It boils down to we get strict or this body of information we have
> > > will grow less useful over time and that's all there is to it.
>
>
>
> --
> J. Daniel Kulp
> Principal Engineer, IONA
> [EMAIL PROTECTED]
> http://www.dankulp.com/blog
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>



-- 
Thanks,
~t~

Reply via email to