[Haskell-cafe] [HF-discuss] Do something about Cabal?

Dmitrii Kovanikov kovanikov at gmail.com
Thu Dec 10 15:02:37 UTC 2020


Thanks, Ignat for bringing this issue! This is indeed a problem in the
Haskell community and ecosystem at the moment, and we can't just ignore it
if we want to improve things.

Every Haskell developer uses the build tool. This is a crucial piece of
development toolchain. That's why it's sad if a core tool is maintained
only by a single person, maintainers are not willing to have more
open-minded discussions regarding some user-requested features or a tool
have poor UX. In my vision, everyone should be welcome to open issues to a
build tool and contribute to it as everyone will benefit from improvements.
And it's a pity that some people have a negative experience with this
process which drives contributors away. I'm following the Cabal issue
tracker, so I notice from time to time some not friendly behaviour towards
its users.

In the same spirit, having multiple build tools leads to duplication of
effort for fixing the same problems and implementing the same features.
Writing a build tool requires a colossal amount of effort and time. Not to
mention that supporting both build tools is an enormous job as well.

* If your project builds with Cabal, it's not guaranteed to build with
Stack (at least you need to write stack.yaml).
* If your project builds with Stack, it's not guaranteed to build with
Cabal (you may need to specify upper and lower bounds).

Thus, every maintainer must spend a lot of time maintaining support for
both build tools if they want to provide good UX for everyone. I'm doing
this for multiple years, and it's a troublesome process, but I do believe
that thinking about users first is the way forward. This effort seems
redundant in a theoretical world where Haskell has a single, core,
official, open-sourced build tool managed by the community.

> I have enjoyed using cabal very much

I'm also using Cabal for my personal projects, but this doesn't mean there
are no problems. I learned to circumvent build tools pitfalls and survive
in the ocean of incomprehensible errors, but I'm already in the middle of
the ocean, and I don't want to stop swimming. Beginners, who are just
staying on the coast, might not want to go into it at all.

Best,
Dmitrii



On Thu, 10 Dec 2020 at 14:06, Ignat Insarov via hf-discuss <
hf-discuss at haskell.org> wrote:

> Thanks Francesco. I have also been using Cabal since a long time ago.
> There is no question that some great things get done in Cabal. Mostly,
> Cabal does what it says on the box, and this is why I propose to
> improve it and not, say, move to Stack. But you may see that many
> people prefer the latter — this seems even more weird since, as you
> illuminate, Cabal can already interoperate with Stackage, so it is
> strictly more featureful. _(As far as I follow, Stack still has poor
> support for Backpack and sub-package build targets.)_
>
> However, even in the light of the links you provide, we still cannot
> say that Cabal supports Stackage. You say:
>
> > >   There is no reason for two build tools to exist. The killer feature
> of Stack —
> > >   snapshots — should be supported by Cabal.
> >
> > As far as I know, this is already possible today! [1]
> >
> > [1] https://github.com/fpco/stackage-server/issues/232
> >     see also https://github.com/erikd/jenga/
> >              https://hackage.haskell.org/package/stack2cabal
>
> Heading to that link, the closing message says:
>
> > I've added a warning about the lack of support for revisions in
> cabal.config in f9632d7. Closing.
>
> So, something is not working. Reading in more detail, there is
> evidently a disagreement between the core developers of Cabal and
> Stack. And as I understand, it has not been addressed ever since! This
> is exactly an example of the kind of communication problems that I
> alluded to in my first letter. Also, as far as I can see, there has
> been zero effort from the Cabal team to integrate these other tools
> that you point to.
> _______________________________________________
> hf-discuss mailing list
> hf-discuss at haskell.org
> https://mail.haskell.org/cgi-bin/mailman/listinfo/hf-discuss
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20201210/f979ae97/attachment.html>


More information about the Haskell-Cafe mailing list