Subject: Re: bug#38529: Make --ad-hoc the default for guix environment proposed deprecation mechanism

From: Gábor Boskovits <[email-masked]>
Date: Sat, 21 Dec 2019 09:40:06 +0100

Ricardo Wurmus <[email-masked]> ezt írta (időpont: 2019. dec. 20., Pén
22:32):

>
> zimoun <[email-masked]> writes:
>
> > Then you ask one question: "Should Guix be volatile software?" with
> > the subtitle "Software developers should avoid traumatic changes".
> > Nothing more.
> > Well, I answer you by trying to fill the gap. Note that "volatile
> > software" is the same argument than the Ludo's concern and the
> > Konrad's example. So, nothing new on the table; except you are
> > starting to throw "feelings" with the "traumatic change" words.
>
> I’m just chiming in here to say that feelings of frustration are very
> valid reasons to make or object to a change.  Guix is or can be a very
> important piece of software — if it remains reliable in the toolbox of
> those using it.
>
> It is difficult striking the right balance between exciting new features
> that make things possible that were previously unattainable and
> dependability through stable interfaces.
>
> The Guix command line is by far the most commonly used interface.  We
> can’t just claim that the Scheme API is stable (which it actually isn’t)
> and change the user-facing CLI as we please.
>
> Personally, I think that it is fine to introduce breaking changes, but
> that for changes that are likely to have a high potential for annoyance
> and frustration there ought to be a documented way to work around them.
> Breaking changes must be communicated through version number bumps and
> accompanying announcements.
>
> While I don’t see how we can make it happen, I do find the idea of a
> stable API whose version can be selected with an environment variable
> intriguing and worth thinking about.  If our Scheme API is as flexible
> as we claim it shouldn’t be too hard to interpose a configuration layer
> between the core facilities and the “porcelain”.
>
This is something that needs consideration. I believe that the original
ideas presented here, and what you say about having a stable api can be
easily synchronized by naming the environment variable to something like
GUIX_CLI_API_VERSION. I would propose it to be of the form 1.0.1.0, so that
the first three numbers could be the current guix  version. Havin it this
way would allow inter releas updates bumping the last number, and the
ability to easily set a new default when the major version is bumped, which
implies a breaking change anyways. From there on the question would be what
should be the default? I would say, that is should be
<current-mayor>.0.0.0. Does that make sense?  Maybe we could come up with
something simpler, like dropping the second and third number.

>
> I wonder what the other maintainers think about this.
>
> --
> Ricardo
>
>
>
>
>