Re: Haskell package versions (was bug#44174: [PATCH v2 00/15] Add hledger and its dependencies.)

2020-11-02 Thread zimoun
Hi,

On Sun, 1 Nov 2020 at 21:27, Ricardo Wurmus  wrote:

> The documentation should be updated to warn against upgrading to
> arbitrary versions.

Does it make sense to add a check in the linter?  Or in refresh?

All the best,
simon



Re: Haskell package versions (was bug#44174: [PATCH v2 00/15] Add hledger and its dependencies.)

2020-11-01 Thread Ricardo Wurmus


Christopher Baines  writes:

> Ricardo Wurmus  writes:
>
>> Christopher Baines  writes:
>>
 Carlo Holl (15):
   gnu: Add ghc-control-monad-free.
   gnu: Add ghc-csv.
   gnu: Add ghc-decimal.
   gnu: ghc-doctest: Update to 0.16.3.
   gnu: Add ghc-hspec-megaparsec.
   gnu: Add ghc-lucid.
   gnu: Add ghc-only.
   gnu: Add ghc-text-short.
   gnu: Add ghc-tabular.
   gnu: Add ghc-uglymemo.
   gnu: Add ghc-wizards.
   gnu: Add ghc-cassava.
   gnu: Add ghc-cassava-megaparsec.
   gnu: Add ghc-hledger-lib.
   gnu: Add hledger.

  gnu/packages/finance.scm |  63 
  gnu/packages/haskell-xyz.scm | 557 ++-
  2 files changed, 608 insertions(+), 12 deletions(-)
>>>
>>> Awesome! I went through and tweaked some descriptions and wrapping and
>>> pushed to master as e6bfb02eb79777b760031384d4a3c14239f7fb55.
>>
>> Unfortunately, some of these packages are the latest versions on
>> Hackage, but we need to ensure that all Haskell packages are picked at
>> versions corresponding to the currently supported version of LTSHaskell
>> in Guix.  We are behind the current LTSHaskell with our packages, so now
>> we have the situation where we have packages that are *newer* than the
>> latest LTSHaskell release and packages that are *older* than what the
>> latest LTSHaskell release prescribes.
>>
>> We should fix this soon, because mixing Haskell packages from different
>> LTS releases (or even ignoring the LTS releases in favour of the latest
>> versions on Hackage) results in dependency hell for those users who want
>> to use Guix for Haskell development.
>
> I'm not really aware of any Haskell specific packaging practices, and
> while I can't guarantee I'd have read it, if there is a reason to not
> use the latest version of Haskell packages, it would be good to have
> that reason set out in the docs [1].
>
> 1: 
> https://guix.gnu.org/manual/en/html_node/Packaging-Guidelines.html#Packaging-Guidelines

The reason is past compatibility problems with inconsistent Haskell
packages.  GHC itself bundles some packages that serve as the baseline
for all Haskell packages, and that’s what the LTSHaskell releases are
based on.  If we cannot upgrade all Haskell packages to their latest
versions at all times then we cannot use arbitrary versions — sticking
to LTSHaskell is an easy way to ensure compatibility without having to
manically upgrade Haskell packages all the time.

The documentation should be updated to warn against upgrading to
arbitrary versions.

-- 
Ricardo



Haskell package versions (was bug#44174: [PATCH v2 00/15] Add hledger and its dependencies.)

2020-11-01 Thread Christopher Baines

Ricardo Wurmus  writes:

> Christopher Baines  writes:
>
>>> Carlo Holl (15):
>>>   gnu: Add ghc-control-monad-free.
>>>   gnu: Add ghc-csv.
>>>   gnu: Add ghc-decimal.
>>>   gnu: ghc-doctest: Update to 0.16.3.
>>>   gnu: Add ghc-hspec-megaparsec.
>>>   gnu: Add ghc-lucid.
>>>   gnu: Add ghc-only.
>>>   gnu: Add ghc-text-short.
>>>   gnu: Add ghc-tabular.
>>>   gnu: Add ghc-uglymemo.
>>>   gnu: Add ghc-wizards.
>>>   gnu: Add ghc-cassava.
>>>   gnu: Add ghc-cassava-megaparsec.
>>>   gnu: Add ghc-hledger-lib.
>>>   gnu: Add hledger.
>>>
>>>  gnu/packages/finance.scm |  63 
>>>  gnu/packages/haskell-xyz.scm | 557 ++-
>>>  2 files changed, 608 insertions(+), 12 deletions(-)
>>
>> Awesome! I went through and tweaked some descriptions and wrapping and
>> pushed to master as e6bfb02eb79777b760031384d4a3c14239f7fb55.
>
> Unfortunately, some of these packages are the latest versions on
> Hackage, but we need to ensure that all Haskell packages are picked at
> versions corresponding to the currently supported version of LTSHaskell
> in Guix.  We are behind the current LTSHaskell with our packages, so now
> we have the situation where we have packages that are *newer* than the
> latest LTSHaskell release and packages that are *older* than what the
> latest LTSHaskell release prescribes.
>
> We should fix this soon, because mixing Haskell packages from different
> LTS releases (or even ignoring the LTS releases in favour of the latest
> versions on Hackage) results in dependency hell for those users who want
> to use Guix for Haskell development.

I'm not really aware of any Haskell specific packaging practices, and
while I can't guarantee I'd have read it, if there is a reason to not
use the latest version of Haskell packages, it would be good to have
that reason set out in the docs [1].

1: 
https://guix.gnu.org/manual/en/html_node/Packaging-Guidelines.html#Packaging-Guidelines

I didn't look too carefully at the versions here, apart from the
ghc-doctest package, where I concluded that any related packages that
failed to build were already broken.


signature.asc
Description: PGP signature