public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Kent Fredric <kentnl@gentoo.org>
To: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] Reverse use of Python/Ruby versions
Date: Mon, 10 Apr 2017 16:35:48 +1200	[thread overview]
Message-ID: <20170410163548.7d0e5348@katipo2.lan> (raw)
In-Reply-To: <assp.02734b128d.20170409220413.6a38d464@o-sinc.com>

[-- Attachment #1: Type: text/plain, Size: 3925 bytes --]

On Sun, 9 Apr 2017 22:04:13 -0400
"William L. Thomson Jr." <wlt-ml@o-sinc.com> wrote:

> This has never been the case with Java.

Its not a problem with C binaries either, because you have a discrete
compile time, and language level interop between compiled binary forms.

Meanwhile, you cannot build two parts of a given python dependency chain with
different pythons, nor different perls.

> If package A requires version X, but B Y, then B builds with Y as its
> pulled in as a dep. while A proceeds to build with X.
>
> Where this is different for Python, Ruby, and also Perl. They all
> install files into a directory based on version. You may have multiple
> copies in each, vs one. Perl does not have targets, nor does Java.

Right, but this is impossible with Ruby, Python, and Perl.

Perl *could* have targets, and some people think could do with it, but it
and java are very much in different boats.

Perl is in the same boat as Python and Ruby where in "new version of thing"
means "everything must be compiled with the new target"

Perl simply has a *moving* target instead of multiple concurrent targets.

Essentially, with Perl we've done the effect of "Add X, Remove Y" for all things.

We additionally have a much better precedent than python at syntax-interop between
versions, so its more justifiable to only have the single target ( because you practically
never need an older perl "just for compat reasons", though at the rate this garbage[1] is
going, that could change one day )


If anything, Perl is only avoiding the Python problem you hate with significant amounts
of heroism, and its only a matter of time before upstream force our hands in ways that
make that heroism non-viable, and we have to dig deep and work out how the hell
to maintain concurrent targets.


> The present system is a PITA for users. Fiddling with adding/removing
> targets for Python/Ruby. In addition to selecting which for the system.
> All these same problems exist for Java, with the exception of
> installation locations as mentioned.

I honestly think you're looking at the wrong problem domain to fix this problem,
in ways that will introduce yet more regressions and broken trees.

We should have what I've been saying we should have for a while now:

* Soft Options.

We only have 2 types of option at present from the users perspective, "on" 
options, and "off" options.

Portage doesn't even distinguish between who is setting them, user profile
and the gentoo profiles simply flatten into a single logical profile,
and then portage then demands that changes be made to this set, failing to discriminate
at all between "ok, this was the profile specified default and it needs to be non-default for this problem"
and "user doesn't actually want this, how can we avoid that"

And portage then compounds this by dictating that any option changes that ebuilds need
must be enshrined by the user as things the /user/ wants, when in truth, they're not things
the user wants, they're things the ebuilds want, and the user begrudingly accepts.

Hence why an option of "on, but only if portage really needs it" is missing, but needed.

I would gladly set soft-targets of every python version under the sun, and then allow
portage to turn them on *as necessary*, and this would be much preferable to having to either

a) turn them on globally and pull in stuff and waste time compiling stuff that's not even getting used.

b) Maintain a painful and carefully catered list of things to prevent aforementioned problems.

In short, users need a way to discriminate "things I care about" from "things I don't care about"

Currently, its just a big cluster of those things in one place, and the complexity is inescapably
thrust into the users hands on a daily basis.


1: https://bugs.gentoo.org/showdependencytree.cgi?id=613764&hide_resolved=0

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2017-04-10  4:36 UTC|newest]

Thread overview: 88+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-09 16:15 [gentoo-dev] Reverse use of Python/Ruby versions William L. Thomson Jr.
2017-04-09 21:36 ` Francesco Riosa
2017-04-09 22:20   ` Brian Dolbec
2017-04-09 22:48     ` Francesco Riosa
2017-04-09 23:15     ` William L. Thomson Jr.
2017-04-09 23:59       ` Michael Orlitzky
2017-04-10  0:37         ` Francesco Riosa
2017-04-10  0:58         ` William L. Thomson Jr.
2017-04-10 14:57           ` Michael Orlitzky
2017-04-10 15:49             ` William L. Thomson Jr.
2017-04-09 21:44 ` Kristian Fiskerstrand
2017-04-09 22:28   ` Francesco Riosa
2017-04-09 23:08   ` William L. Thomson Jr.
2017-04-09 21:52 ` Michael Orlitzky
2017-04-09 22:34   ` William L. Thomson Jr.
2017-04-09 22:42   ` Francesco Riosa
2017-04-09 23:04 ` James Le Cuirot
2017-04-10  5:33   ` Hans de Graaff
2017-04-10  1:38 ` Kent Fredric
2017-04-10  2:04   ` William L. Thomson Jr.
2017-04-10  4:35     ` Kent Fredric [this message]
2017-04-10 15:52       ` William L. Thomson Jr.
2017-04-10 21:30         ` Kent Fredric
2017-04-10 17:58     ` Christopher Head
2017-04-10 18:12       ` William L. Thomson Jr.
2017-04-10 20:11         ` Vadim A. Misbakh-Soloviov
2017-04-20 17:49         ` Christopher Head
2017-04-20 18:23           ` William L. Thomson Jr.
2017-04-21 12:53           ` Kent Fredric
2017-04-10 19:40       ` Alan McKinnon
2017-04-10  6:37 ` Michał Górny
2017-04-10 13:21   ` Dirkjan Ochtman
2017-04-10 17:50     ` Michał Górny
2017-04-10 16:03   ` William L. Thomson Jr.
2017-04-10 17:14     ` Michał Górny
2017-04-10 17:49       ` William L. Thomson Jr.
2017-04-10 18:10         ` Michał Górny
2017-04-10 18:44           ` William L. Thomson Jr.
2017-04-10 18:57             ` Mart Raudsepp
2017-04-10 19:38               ` William L. Thomson Jr.
2017-04-10 19:51                 ` Mart Raudsepp
2017-04-10 20:01                   ` William L. Thomson Jr.
2017-04-10 20:17                     ` William L. Thomson Jr.
2017-04-10 20:32                       ` Mart Raudsepp
2017-04-10 20:21                     ` Mart Raudsepp
2017-04-10 20:33                       ` William L. Thomson Jr.
2017-04-10 20:43                         ` Michał Górny
2017-04-10 21:33                           ` William L. Thomson Jr.
2017-04-10 21:44                             ` Mart Raudsepp
2017-04-10 22:51                               ` William L. Thomson Jr.
2017-04-10 21:56                             ` Michał Górny
2017-04-10 22:42                               ` William L. Thomson Jr.
2017-04-10 22:09                     ` Kent Fredric
2017-04-10 22:35                       ` William L. Thomson Jr.
2017-04-10 22:56                         ` Kent Fredric
2017-04-10 23:04                           ` William L. Thomson Jr.
2017-04-10 19:31             ` Vadim A. Misbakh-Soloviov
2017-04-10 19:38               ` Ciaran McCreesh
2017-04-10 19:57                 ` William L. Thomson Jr.
2017-04-10 20:29                   ` Vadim A. Misbakh-Soloviov
2017-04-10 20:40                     ` William L. Thomson Jr.
2017-04-10 20:48                       ` Vadim A. Misbakh-Soloviov
2017-04-10 21:27                         ` William L. Thomson Jr.
2017-04-10 20:51                       ` Michał Górny
2017-04-10 21:18                         ` William L. Thomson Jr.
2017-04-10 21:33                           ` Michał Górny
2017-04-10 21:58                             ` William L. Thomson Jr.
2017-04-11  4:48                               ` [gentoo-dev] " Duncan
2017-04-11 17:47                                 ` James Potts
2017-04-11 21:02                                   ` Michał Górny
2017-04-10 21:17                       ` [gentoo-dev] " Vadim A. Misbakh-Soloviov
2017-04-10 21:25                         ` William L. Thomson Jr.
2017-04-10 22:22                     ` Kent Fredric
2017-04-10 19:49               ` [gentoo-dev] No Java Team, Java neglect was -> " William L. Thomson Jr.
2017-04-10 20:04                 ` Rich Freeman
2017-04-10 20:15                   ` William L. Thomson Jr.
2017-04-10 20:58                     ` Rich Freeman
2017-04-10 21:21                       ` William L. Thomson Jr.
2017-04-10 21:31                         ` Rich Freeman
2017-04-10 21:54                           ` William L. Thomson Jr.
2017-04-11  9:18                             ` Kristian Fiskerstrand
2017-04-11 15:22                               ` [gentoo-dev] OT Getting to know others in Gentoo was -> " William L. Thomson Jr.
2017-04-11 15:57                                 ` Kristian Fiskerstrand
2017-04-11 22:23                               ` [gentoo-dev] " Viktar Patotski
2017-04-12  7:25                                 ` Kristian Fiskerstrand
2017-04-10 21:48     ` [gentoo-dev] " Kent Fredric
2017-04-10 20:26 ` William L. Thomson Jr.
2017-04-25  9:16 ` Sergey Popov

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=20170410163548.7d0e5348@katipo2.lan \
    --to=kentnl@gentoo.org \
    --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