public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Georg Rudoy <0xd34df00d@gmail.com>
To: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] Re: [PR] ivy, mvn, sbt, gradle builders improvement for ebuild development
Date: Mon, 20 Apr 2020 17:05:01 -0400	[thread overview]
Message-ID: <CAGbUWSKQQ9Fx3mi7BkYhCQY17K4E6WX6G3yXmat3rSJjw6hqNA@mail.gmail.com> (raw)
In-Reply-To: <2b5f4e49-9509-d00d-85d0-6dd7413f6e9c@gentoo.org>

пн, 20 апр. 2020 г. в 16:51, Michael Orlitzky <mjo@gentoo.org>:
> Except that Haskell as a research language tends to inspire more "fire and forget" software.

I'd say this is not the case for the last few years, but that's maybe
just my own impression from interacting with

> (And Haskell works better in Gentoo than anywhere else, in my opinion.)

Totally agreed here. That's one of the main reasons I run Gentoo
(especially before dev-haskell/stack emerged upstream a few years
ago).

> You package each dependency as a separate package. If there's a conflict
> between two packages, then... you can't have those two packages
> installed together. When that happens, you alert upstream, and try to
> convince them to be more lenient with their dependencies (again, nothing
> Haskell-specific here). Sometimes that involves code changes, but often
> it's just an edit to the cabal file. Many people follow either semver or
> the PVP (https://pvp.haskell.org/) which keeps things from getting too
> far out of control.

I'd say the Haskell-specific thing is the presence of stackage LTS
releases that people tend to stick to. For instance, beam-postgres
disappeared in recent LTSes, so some projects of mine are stuck on
older LTSes (adding that to extra-deps was a pain for reasons I don't
remember at the moment), while the others can happily use the new
ones. Libraries incompatibilities are just a matter of time in this
case.

Sure, hacking on .cabal/package.yaml is one way to solve this, but I
wasn't sure it's reasonably robust in the long run.

Anyway, thanks for your feedback. This probably means I should stop
thinking about the general case and maybe start playing around with
packaging stuff, and then seeing where it breaks.

> If upstream absolutely insists on minor-version dependencies, then you
> either tolerate it conflicting with everything else, or leave it out of
> the tree. You probably shouldn't even be packaging a library whose API
> is distinguishable across minor releases.

That's not a matter of just the API per se. Even the library file name
encodes its deps in its name (if I understand correctly, that's the
hash in libHSregex-base-0.94.0.0-541xQVwwNRiBGjsNKmOPoy-ghc8.6.5.so
for example). Personally I just find it hard to reason about this sort
of dependencies management. But, again, I should probably avoid trying
that and just jump head first to packaging.

> I don't see anything fundamentally different here
> between Haskell (or Go, or...)

Dunno much about Go and I don't have a single Go package locally to
check. Do they do static or dynamic linking with the deps, for
instance? What's the language model wrt API and linking?

> and C.

More stable API (and ABI).


-- 
  Georg Rudoy


  reply	other threads:[~2020-04-20 21:05 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-10 15:23 [gentoo-dev] [gentoo-java][PR] ivy, mvn, sbt, gradle builders improvement for ebuild development Samuel Bernardo
2020-04-11  1:06 ` Benda Xu
2020-04-18 16:07   ` Samuel Bernardo
2020-04-19  4:31     ` [gentoo-dev] Re: [PR] " Benda Xu
2020-04-19 14:55       ` Samuel Bernardo
2020-04-19 15:37         ` Michael Orlitzky
2020-04-19 16:14           ` Alec Warner
2020-04-19 19:41           ` Samuel Bernardo
2020-04-19 20:09             ` Michael Orlitzky
2020-04-19 21:37               ` Samuel Bernardo
2020-04-20 20:21               ` Georg Rudoy
2020-04-20 20:51                 ` Michael Orlitzky
2020-04-20 21:05                   ` Georg Rudoy [this message]
2020-04-20 21:38                     ` Michael Orlitzky
2020-04-20 21:48                       ` Georg Rudoy
2020-04-21  0:12                         ` Michael Orlitzky
2020-04-20 17:31           ` Patrick McLean
2020-04-20 18:07             ` Michael Orlitzky
2020-04-20 18:58               ` Patrick McLean
2020-04-20 19:23                 ` Michael Orlitzky
2020-04-20 20:19                   ` Patrick McLean
2020-04-20 21:03                     ` Michael Orlitzky
2020-04-20 21:25                       ` Patrick McLean
2020-04-20 22:08                         ` Michael Orlitzky
2020-04-20 21:04                   ` William Hubbs
2020-04-21  5:50                     ` Michał Górny
2020-04-21 11:08                       ` Samuel Bernardo
2020-04-21 15:31                       ` William Hubbs
2020-04-20 19:27               ` Rich Freeman
2020-04-20 20:55                 ` Samuel Bernardo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAGbUWSKQQ9Fx3mi7BkYhCQY17K4E6WX6G3yXmat3rSJjw6hqNA@mail.gmail.com \
    --to=0xd34df00d@gmail.com \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox