From: Danny Milosavljevic <dannym@scratchpost.org>
To: Andreas Enge <andreas@enge.fr>
Cc: guix-devel <guix-devel@gnu.org>
Subject: Re: Package API compatibility and guix package variable names
Date: Wed, 27 Jul 2016 23:06:15 +0200 [thread overview]
Message-ID: <20160727230615.33d2adc3@scratchpost.org> (raw)
In-Reply-To: <20160727161918.GA5300@solar>
Hi Andreas,
On Wed, 27 Jul 2016 18:19:18 +0200
Andreas Enge <andreas@enge.fr> 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.
next prev parent reply other threads:[~2016-07-27 21:06 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-19 20:57 [PATCH 1/2] gnu: Add allegro Ricardo Wurmus
2016-07-19 20:57 ` [PATCH 2/2] gnu: Add allegro-5.0 Ricardo Wurmus
2016-07-20 1:39 ` Thompson, David
2016-07-20 5:52 ` Ricardo Wurmus
2016-07-20 13:03 ` Thompson, David
2016-07-20 1:37 ` [PATCH 1/2] gnu: Add allegro Thompson, David
2016-07-20 19:54 ` Ricardo Wurmus
2016-07-27 15:54 ` Package API compatibility and guix package variable names Danny Milosavljevic
2016-07-27 16:19 ` Andreas Enge
2016-07-27 21:06 ` Danny Milosavljevic [this message]
2016-07-27 21:33 ` Andreas Enge
2016-07-28 6:04 ` Chris Marusich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160727230615.33d2adc3@scratchpost.org \
--to=dannym@scratchpost.org \
--cc=andreas@enge.fr \
--cc=guix-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.