On 05/14/2012 05:11 PM, Sean P. DeNigris wrote:
> 
> Philippe Marschall-2 wrote
>>
>> I don't think you'd be happy with the consequences. First you'd have to
>> define what is API which is hard because everything is public in
>> Smalltalk
>>
> Right, first you'd have to specify public packages/categories or individual
> classes (which would be helpful with of without semantic versioning. I
> sometimes find it difficult to know what classes I'm supposed to use in a
> library when private helper classes pollute the package/category). Then, any
> method there that's not in 'private' would be API.
> 
> 
> Philippe Marschall-2 wrote
>>
>> And then you have to live by it which means you have much
>> less freedom how you version things.
>>
> You'd have less freedom to choose the exact numbering, but that's the whole
> point! To agree on and stick to a system, losing a little control, but
> gaining clarity and usability (b.t.w. then Metacello could say "load this
> dependency version 2.x.x" and know that it'd get all the bug fixes but
> wouldn't break anything).

Theoretically, but some of your other packages may have their own
version constraints on this library. This is why installing an Eclipse
plugin is np-complete (I shit you not) and a linear equitation solver
[1] is used.

In addition instead of of simply being an "interface consumer" (using a
protocol of an object) you may be a "provider" (sublcass some abstract
class). So let's say that from version 2.1.0 to 2.2.0 the library added
a new abstract method that you have to implement (my understanding of
SemVer is that this fine) now the code breaks because your
implementation class just became abstract.

Or they change their dependencies which now conflict with the
dependencies of some of the dependencies of your other packages.

Don't get me wrong you can make it work. But it requires commitment from
everybody and most importantly good and correct metadata for everything
in the image. This may sound easy but isn't. It's not just plugging
something in and suddenly there are only rainbows from there on.

 [1] http://www.sat4j.org/

Cheers
Philippe



Reply via email to