On Sat, Dec 19, 2015 at 8:16 AM, Nick Wellnhofer <[email protected]> wrote:
> On 18/12/2015 04:04, Marvin Humphrey wrote:
>>
>> Versioning is a hard problem.  As much as I would like to make progress on
>> it, with multiple hosts to support, I've come to think that Clownfish
>> shouldn't be too ambitious about providing simultaneous support for
>> multiple versions.
>
> For now, it should be enough to abort with a meaningful error message if an
> incompatible prerequisite is found. In the long term, I'd really like to
> find a better solution, though.

Yeah, I know what you mean!  The complexity arises, though, when there are
multiple consumer libraries which require conflicting versions of a dependency
AND which expect to exchange types defined by the dependency.  What if the
types defined by different versions of the dependency are not compatible?

I'm not sure that's a solveable problem -- and thus making it possible for
multiple versions of a library to co-exist within a single process seems to
have limited value.  At most, I think we can contemplate dynamic loading of a
custom version on demand at runtime.  But for hosts where that's not normally
supported, like Perl, I'm reluctant to go there.

>> How about instead endorsing SemVer for Clownfish-powered libraries?  That
>> way, compatibility is encoded in version numbers.
>>
>>      http://semver.org/
>>
>> For Clownfish runtime releases prior to 1.0, we can hack something in which
>> provides the effect of compatibilityVersion without making it a public
>> feature.
>
> I like Semantic Versioning, but I'd prefer a solution that allows arbitrary
> version numbering schemes.

The phrase "arbitrary version numbering schemes" scares me pretty bad...
However, I think you only mean compatibility with an arbitrary previous
version and not arbitrary ordering, arbitrary version number format, etc --
i.e. only what compatibilityVersion would provide.

I can live with compatibilityVersion.  I think we should still endorse SemVer,
though -- even if we extend it with compatibilityVersion.

Marvin Humphrey

Reply via email to