Steve Loughran wrote:
When using M2 I ended with a private repo with custom metadata to strip out things that weren't needed. I will inevitably do the same with Ivy. I may not cache artifacts, but I will certainly tune the dependency information, because someone's belief on what the dependencies are may not match mine. Go import hibernate if you want an example of what I had to deal with. They discard one team's metadata, then add their own. This is what it is like out there.

http://www.ibiblio.org/maven2/org/hibernate/hibernate/3.1rc2/hibernate-3.1rc2.pom

Of course, if we have standard confs with standard semantics (e.g master==artifact with no dependencies) then
I dont need to exclude things, just add others,

I agree

Just like bugs, you may perfectly end up in a situation where you need to patch (or workaround) your opensource/commercial component (even though the patch is submitted and applied) and run with it until the next release and/or use a custom snapshot. It does not have to be the norm (and I'm the very first one to fight against such practice which consist of patching everything just because it's opensource and you can do it) but this type of thing _will_ happen.

mmm. Open source is the right to edit the code. It is not a duty.

mmm...was not probably very clear but you have 2 things there:

1) when you _have to_ (ie: your corporate duty) release something on a fixed date and you have an annoying bug in a third party that gets in your way and which code prevent you to subclass, etc... then you may end up in 'patching' this third party code (and of course you may definitely want to report that as a bug and submit the patch...in your own interest)

2) Some have a tendency to follow a very much 'patch-everything-because-I-can' as there is the code so whatever the criticality of the 'annoyance', a javadoc and extensions, etc..you will end up with a whole set of 'patched' dependencies, which will then increase very much your maintenance problem. It's usually when there is confusion between what the company objective and the fun side of messing around everything and feeling that it would be cool to patch linux to add that and httpd this and tomcat that, and axis this and postgresql that.. (which I agree can give you some super cool feeling but is not exactly helping to release your product)

It's all trade off and weighting benefits/costs/annoyances, which of course is not easy.

-- stephane

Reply via email to