From mboxrd@z Thu Jan 1 00:00:00 1970 From: Robert Vollmert Subject: haskell package organization (Re: on cabal revisions) Date: Sun, 16 Jun 2019 10:00:03 +0200 Message-ID: <4D92FD48-0B9A-4E6B-8287-C1D6DDF80E6A@vllmrt.net> References: <87v9xbmmid.fsf@ngyro.com> <87r27xa7f0.fsf@ngyro.com> <2CEDD93D-5200-4B3E-AA2E-BA1FE6168B40@vllmrt.net> <87d0jgnpqz.fsf@ngyro.com> <87a7ejrk39.fsf@elephly.net> Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\)) Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:54010) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hcQ5I-0007qL-L7 for guix-devel@gnu.org; Sun, 16 Jun 2019 04:00:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hcQ5G-00082m-Qa for guix-devel@gnu.org; Sun, 16 Jun 2019 04:00:16 -0400 Received: from mx2.mailbox.org ([80.241.60.215]:22936) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hcQ5G-0007ya-GG for guix-devel@gnu.org; Sun, 16 Jun 2019 04:00:14 -0400 In-Reply-To: <87a7ejrk39.fsf@elephly.net> 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: Ricardo Wurmus Cc: guix-devel@gnu.org On 14. Jun 2019, at 22:24, Ricardo Wurmus wrote: > Timothy Sample writes: >>=20 >> We mostly do this already. There is a Stackage importer, and a = little >> while ago I updated most of our Haskell packages to their LTS 12 >> versions. >=20 > At the beginning we just had all the latest packages from Hackage and = it > took considerable time and effort to upgrade them all to a consistent > LTS set. >=20 > This makes the review of updates to ghc-* packages a little slower for > me because these packages really ought to be upgraded together so that > they closely resemble whichever LTS version we=E2=80=99re following. [ This is really in reply to multiple threads of this discussion. Also it=E2=80=99s based on my limited understanding of issues =E2=80=94 = please correct my misunderstandings. E.g. I don=E2=80=99t quite understand how guile = works around circular imports. Finally, for my motivation: I=E2=80=99m packaging a = few Haskell programs that pull in quite a few new libraries, and would rather use that opportunity to make matters better not worse. ] So what do you all think of some organization like the following: gnu/packages/haskell.scm: Haskell compilers (ghc), and their dependencies if any. Shouldn=E2=80=99= t import any of the the other haskell modules. gnu/packages/haskell-stackage-*.scm: Various Haskell library modules (ghc-*) that are consistent with some stackage set (LTS 12 currently). gnu/packages/haskell-other.scm: Various Haskell library modules that are either on a non-LTS version, or not on stackage at all. This might include alternate versions of stackage modules, under a different name. gnu/packages/haskell-tools.scm: Haskell executables that are Haskell specific. E.g. hlint, hspec-discover, =E2=80=A6. gnu/packages/*.scm: Programs that happen to be built using the Haskell build system. E.g. things that are currently in haskell-apps.scm: darcs, git-annex. The idea would be that the stackage updates would be clearly targeted to those haskell-stackage files. My personal preference for the haskell-stackage-*.scm files would be to simply split them by name prefix, e.g. haskell-stackage-abc.scm, haskell-stackage-def.scm so that they are of manageable size. (I think the current categorization into haskell-web, haskell-crypto etc. causes quite a bit of cognitive overhead for little benefit: Where should I file this oauth package? Where do I import it from?) Robert