From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42342) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dvjvb-0002Lj-F6 for guix-patches@gnu.org; Sat, 23 Sep 2017 08:53:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dvjva-0002bU-J2 for guix-patches@gnu.org; Sat, 23 Sep 2017 08:53:03 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:44930) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dvjva-0002bB-Ev for guix-patches@gnu.org; Sat, 23 Sep 2017 08:53:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1dvjva-0007pK-8A for guix-patches@gnu.org; Sat, 23 Sep 2017 08:53:02 -0400 Subject: [bug#28531] [PATCH] gnu: Add vcsh. Resent-Message-ID: From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) In-Reply-To: <87o9q2o1bw.fsf@xsteve.at> ("Stefan \=\?utf-8\?Q\?Reich\=C3\=B6r\=22\?\= \=\?utf-8\?Q\?'s\?\= message of "Fri, 22 Sep 2017 23:44:35 +0200") References: <150593626773.31985.7642001649222018304.stgit@sandburg> <87a81pru0m.fsf@gnu.org> <87o9q2o1bw.fsf@xsteve.at> Date: Sat, 23 Sep 2017 14:52:14 +0200 Message-ID: <87vak9a875.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Stefan =?UTF-8?Q?Reich=C3=B6r?= Cc: 28531@debbugs.gnu.org Hello, Stefan Reich=C3=B6r skribis: >> Hi Stefan, >> >> Stefan Reich=C3=B6r skribis: >> >>> * gnu/packages/version-control.scm (vcsh): New variable. >> >> Pushed with the minor changes below (the first sentence of the >> description looked awkward to me). >> >> Note that vcsh takes =E2=80=98git=E2=80=99 from $PATH. I wonder if we s= hould keep it >> this way, or if we should hard-code the absolute file name to =E2=80=98g= it=E2=80=99 so >> that it always works. >> >> Thoughts? > > I don't think that it is desirable to change all external tool > invocations for programs in Guix. I am currently preparing the tool > atool that has to invoke a lot of archivers. We always have a choice between =E2=80=9Cstatic binding=E2=80=9D (where we = hard-wire a tool and its dependencies) and =E2=80=9Clate binding=E2=80=9D (where the de= pendencies are searched for at run time.) Most of the time in Guix we favor static binding: it makes sure that (1) programs work out of the box, regardless of what happens to be already installed on your system, and (2) that the program will behave the same on all systems since its behavior does not depend on external state. There are exceptions where we want dynamic binding, for instance for plugins or optional/soft dependencies. The case of =E2=80=98vcsh=E2=80=99 is borderline. I have a slight preferen= ce to hardwire the dependency on Git (after all, someone might want to use vcsh without having installed Git before), but I=E2=80=99m open to other arguments. Thoughts? Thanks, Ludo=E2=80=99. PS: Please preserve Cc:.