From mboxrd@z Thu Jan 1 00:00:00 1970 From: zimoun Subject: Re: bug#38529: Make --ad-hoc the default for guix environment proposed deprecation mechanism Date: Thu, 12 Dec 2019 17:47:23 +0100 Message-ID: References: <87eexeu8mo.fsf@ambrevar.xyz> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:46474) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ifRcm-0005mB-9r for guix-devel@gnu.org; Thu, 12 Dec 2019 11:47:37 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ifRcl-0006q4-1n for guix-devel@gnu.org; Thu, 12 Dec 2019 11:47:36 -0500 Received: from mail-qt1-x829.google.com ([2607:f8b0:4864:20::829]:39153) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ifRck-0006p3-Qv for guix-devel@gnu.org; Thu, 12 Dec 2019 11:47:34 -0500 Received: by mail-qt1-x829.google.com with SMTP id i12so2816060qtp.6 for ; Thu, 12 Dec 2019 08:47:34 -0800 (PST) In-Reply-To: List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: =?UTF-8?Q?G=C3=A1bor_Boskovits?= Cc: Guix-devel , 38529@debbugs.gnu.org Hi G=C3=A1bor, Thank you for summarizing the discussion on IRC that I missed. Maybe I miss a point. Is the aim to conserve the "--ad-hoc" option with a different effect? Or why do we want to conserve this option name? It appears to me simpler to give another name, for example "--inputs-of". And it is more meaningful. To be concrete, the different cases; (-) means current behavior and (+) the new one: 1. - guix environment foo + guix environment --inputs-of foo 2. - guix environment --ad-hoc bar + guix environment bar First, when "--ad-hoc" is used then it reports a warning: deprecated option and falls in the current behavior. When "--inputs-of" is used then it falls in the new behavior. Therefore, no needs of the ugly "--ignore-deprecated-ad-hoc". In other words, with the same future guix version, # Alice $ guix environment foo --ad-hoc bar Warning: deprecated... explanations... instead use: guix environment bar --inputs-of foo # Bob $ guix environment bar --inputs-of foo Second, the previous "guix environment foo" (dependencies of foo) is inconsistent with the new "guix environment bar" (only the package bar). Therefore, let introduce the GUIX_ENVIRONMENT_DEPRECATED variable to distinguish both, as you said. # Alice $ guix environment foo Warning: previous behavior requires GUIX_ENVIRONMENT_DEPRECATED=3D1 turn off the warning: GUIX_ENVIRONMENT_NOWARNING=3D1 And Alice has now a new shell with the package foo. If she wants the dependencies, she has two options: $ GUIX_ENVIRONMENT=3D1 guix environment foo or $ guix environment --inputs-of foo # Bob $ guix environment bar Warning: previous behavior requires GUIX_ENVIRONMENT And if Bob is annoyed by the warnings each time, he globally turns off with the variable GUIX_ENVIRONMENT_NOWARNING=3D1. Couple of months later -- after the period adoption -- we remove the variables GUIX_ENVIRONMENT_NOWARNING and GUIX_ENVIRONMENT_DEPRECATED; still keeping the warning with the "--ad-hoc" option. And then, after we can remove the "--ad-hoc" option if required. Maybe a miss a point. But the addition of the flag appears "--too-long-to-type" to me ugly. What do you think? All the best, simon