From: "Michał Górny" <mgorny@gentoo.org>
To: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] Revisions for USE flag changes
Date: Sat, 12 Aug 2017 09:03:43 +0200 [thread overview]
Message-ID: <1502521423.1045.0.camel@gentoo.org> (raw)
In-Reply-To: <dbed2635-d00e-0707-cfc4-6bb472a170b8@gentoo.org>
[-- Attachment #1: Type: text/plain, Size: 4133 bytes --]
On pią, 2017-08-11 at 19:50 -0400, Michael Orlitzky wrote:
> We have a pull request for the devmanual that will update the revision
> documentation; namely, when to create a new one:
>
> https://github.com/gentoo/devmanual.gentoo.org/pull/67
>
> The comments bring up an issue that I think can benefit from some
> hindsight. Specifically, the PR says that it's OK to change IUSE without
> creating a revision, because users can use --changed-use to catch it.
> My immediate objection to that was that --changed-use is specific to
> Portage, but let's reflect on the status quo.
>
>
> == The situation now ==
>
> 1 We tell everyone to update with either --newuse or --changed-use.
>
> 2 Developers change IUSE without new revisions.
>
> 3 To facilitate (1) and (2), Portage has the --changed-use and
> --newuse flags. Paludis has a family of "--keep" options to avoid
> reinstallation, e.g. --keep=if-same-metadata. And pkgcore has its
> own (different) --newuse flag.
>
> 4 There is no specification for the features in (3), and each package
> manager has taken a different approach.
>
>
> The end result is that Portage users do see the changes made to IUSE
> without a revision, but at a cost:
>
> * They have to pass the "required" --changed-use or --newuse flags to
> every command.
>
> * The same cannot be said for users of other package managers.
>
> * Lots of PM code exists to handle this stuff.
>
> * Our documentation needs to describe the above (relatively)
> complicated situation.
>
>
> And with one notable benefit:
>
> * We don't need to rename the ebuild to change IUSE, and in theory we
> can control when rebuilds happen.
>
>
>
> == New revisions for USE flag changes ==
>
> I suggest that in hindsight, we can do better. Suppose we require a new
> revision for every change to IUSE. Then,
>
> * We can delete all of the PM code for --changed-use and --newuse and
> friends.
>
> * The documentation becomes much simpler: revbump if IUSE changes.
>
> * Users can omit --newuse and --changed-use from their lives.
>
> * All package managers now handle IUSE changes properly.
>
> * emerge runs a bit faster.
>
> This has none of the downsides of the current approach. Of course, it
> lacks that one benefit -- that you don't have to rename the ebuild when
> you change IUSE. Now I'll try to convince you that the rename and
> associated rebuilds aren't that big of a deal.
>
>
> Q. But what about the rebuilds?
>
> For most packages, the rebuilds simply don't matter. Unless you're
> the maintainer of libreoffice, firefox, chromium, etc. -- just do the
> revision and forget about the (quick) rebuilds.
>
> We tell everyone to use --changed-use and --newuse if they want
> things to work, so they were probably going to rebuild anyway.
>
>
> Q. But what if I maintain firefox, and I need to change IUSE?
>
> If the IUSE change isn't important, just make the new revision in a
> branch and wait to commit it later when there are more changes
> piled up. If it is important (like if its default value changes
> RDEPEND), then it would have required a revision anyway.
>
>
> Q. But I work on a team, and we can't all work in different branches.
>
> If you work on a massive package and if you're collaborating with
> others regularly, you can commit the new ebuild masked. This is
> annoying, but is an extremely rare combination of circumstances.
>
>
> == tl;dr ==
>
> We would be better off with respect to IUSE changes and revisions if we
> deleted the --changed-use and --newuse flags right now, and just
> required developers to revbump when changing IUSE.
>
> Package managers get simpler, documentation gets simpler, the user
> interface gets simpler, and behavior becomes more uniform and predictable.
>
> Please let me know what you think.
>
Please provide some examples of recent in-place USE changes that benefit
from revbumps.
--
Best regards,
Michał Górny
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 988 bytes --]
next prev parent reply other threads:[~2017-08-12 7:04 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-11 23:50 [gentoo-dev] Revisions for USE flag changes Michael Orlitzky
2017-08-12 0:45 ` Brian Evans
2017-08-12 0:59 ` Michael Orlitzky
2017-08-12 1:04 ` Michael Orlitzky
2017-08-12 1:11 ` Brian Evans
2017-08-12 8:39 ` Paweł Hajdan, Jr.
2017-08-12 9:58 ` Michael Orlitzky
2017-08-13 2:52 ` [gentoo-dev] " Duncan
2017-08-13 10:11 ` Michael Orlitzky
2017-08-13 10:18 ` M. J. Everitt
2017-08-14 1:34 ` Duncan
2017-08-16 20:12 ` Daniel Campbell
2017-08-18 14:50 ` Duncan
2017-08-13 5:01 ` [gentoo-dev] " Hans de Graaff
2017-08-13 10:38 ` Michael Orlitzky
[not found] ` <CAJ0EP42EaW8=dm0c26Gaij9gEAmTVHxiyp5+Hc_CYGzEypudsA@mail.gmail.com>
[not found] ` <CAJ0EP40yVVpLqHL5qVixxgvMmJc7ezRsn42qLoe621wS0KF-VA@mail.gmail.com>
[not found] ` <CAJ0EP43YbX-vA5cWcFm_Etin4H31Nq2s_xYsrTwuOK6LVyW+9A@mail.gmail.com>
[not found] ` <CAJ0EP42HkoYEkL1vt=Lyt-Dw-1XkdAXed8DrBp4oYB9j01+PKQ@mail.gmail.com>
2017-08-13 17:28 ` Mike Gilbert
2017-08-12 4:22 ` [gentoo-dev] " Michael Palimaka
2017-08-12 10:16 ` Michael Orlitzky
2017-08-12 10:58 ` Michael Palimaka
2017-08-12 10:32 ` Rich Freeman
2017-08-12 5:02 ` [gentoo-dev] " Hans de Graaff
2017-08-12 7:03 ` Michał Górny [this message]
2017-08-12 9:57 ` Michael Orlitzky
2017-08-12 10:04 ` Toralf Förster
2017-08-12 10:29 ` Rich Freeman
2017-08-12 11:05 ` [gentoo-dev] " Michael Palimaka
2017-08-12 11:18 ` Rich Freeman
2017-08-14 12:01 ` Jason Zaman
2017-08-16 3:22 ` Michael Orlitzky
2017-08-16 15:56 ` Duncan
2017-08-16 16:09 ` Rich Freeman
2017-08-17 4:27 ` Jason Zaman
2017-08-12 14:14 ` [gentoo-dev] " Michael Orlitzky
2017-08-13 2:32 ` [gentoo-dev] " Duncan
2017-08-13 10:08 ` Michael Orlitzky
2017-08-13 16:06 ` [gentoo-dev] " William Hubbs
2017-08-13 16:12 ` Michael Orlitzky
2017-08-14 16:29 ` William L. Thomson Jr.
2017-08-14 16:21 ` William L. Thomson Jr.
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=1502521423.1045.0.camel@gentoo.org \
--to=mgorny@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