[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Package API compatibility and guix package variable names

From: Danny Milosavljevic
Subject: Re: Package API compatibility and guix package variable names
Date: Wed, 27 Jul 2016 23:06:15 +0200

Hi Andreas,

On Wed, 27 Jul 2016 18:19:18 +0200
Andreas Enge <address@hidden> wrote:

>It is our common practice to not re-encode the version into the name: Usually 
>the unnumbered name simply stands for the latest version

That's unfortunate. I can live with it - but there is a reason the API major 
versions are usually encoded there. Otherwise it's not possible to ever make a 
clean API break and be safe with it.

Just to make sure: I'm not saying the API major number should absolutely be 
part of the name, I'm saying there should be version bounds for all the inputs 
of packages.

> In this way, updating dependencies becomes easier: Most of the time, a later 
> version of a dependency will work. 

Then there would have been no reason to update the API major number in the 
first place. Of course I can think of scenarios where it would work regardless 
- for example if the package used only a subset of the entire functionality, it 
could be that this subset is still compatible.

Python 3 is an example - few Python 2 programs will work on Python 3 without 
changes - so it makes no sense to "autoupdate" a Python 2 package to a Python 3 
interpreter in isolation. Of course, if you are lucky, you can find some subset 
where it happens to work by accident.

When Python 4 is released, a similar argument can be made.

>To follow your suggestion, we would ultimately add the soname of libraries to 
>package names, 

Only the part that is the API (in)compatibility version number - but yes.

> and then whenever some package is updated, all packages depending on it would 
> need to have
> their inputs rewritten. 

Hopefully after checking whether the new API actually still does the right 
thing for it...

Thanks, good to know the common practice.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]