Gentoo Archives: gentoo-dev

From: "Michał Górny" <mgorny@g.o>
To: gentoo-dev-announce <gentoo-dev-announce@l.g.o>
Cc: gentoo-dev <gentoo-dev@l.g.o>
Subject: [gentoo-dev] NATTkA updates: keyword expansion, CC-ARCHES, ALLARCHES and more
Date: Sat, 02 May 2020 11:39:42

It's been some time since the last update on NATTkA.  Here's just
a short summary of new cool features.

Keyword expansion in package lists
In order to improve compatibility with existing tools, once arches are
CC-ed NATTkA automatically replaces `*` and `^` tokens in package lists
with actual lists of keywords.  If they happen to match current CC, it
outputs the 'empty keyword list' for convenience.

Note that the expansion happens only if arches are CC-ed and sanity-
check passes.  This is meant to avoid changing the package list while
the developer is still working on it.

If CC-ARCHES keyword is present on the bug, the NATTkA will
automatically CC arches and start keywording/stabilization once sanity-
check passes.  If keywords are specified on the package list, the union
of all arch teams will be used for CC.

If no keywords are specified for package on package list, NATTkA sees if
`*` would yield consistent keywords throughout all packages.  If this is
the case, it CC-es the equivalent of `*`.

Note that arch teams are CC-ed only when sanity-check passes.  Again,
this is meant to avoid CC-ing prematurely while developer is still
working on the package list.  If the bug is not checked, then you
probably need to specify keywords.

NATTkA now knows ALLARCHES and helps you do it.  When the bug changes,
NATTkA looks if all listed packages are marked <stabilize-allarches/>
and adds/removes ALLARCHES keyword appropriately.  If you want to force
ALLARCHES independently of <stabilize-allarches/>, just set the keywords
yourself once the sanity-check passes and NATTkA shouldn't touch it
until next state change.

`nattka apply`, `nattka commit` and `nattka resolve` know ALLARCHES too,
and will automatically switch to applying all keywords if the bug is

Less verbose output, more verbose logs
NATTkA used to be very verbose when it could no longer perform sanity-
check.  This involved spamming security bugs once arch teams finished
but the bug was still open.  Now NATTkA tries to be less verbose -- it
tries to determine if there is any more work to be done, and skips bugs
silently when all looks done.

Note that this could mean silently skipping bugs in corner cases.  If
NATTkA does not seem to tackle your bug, try `nattka sanity-check NNNN`
and it will log the reason.  Now the logs in 'pretend' mode include all
the changes that would be done to bugs, including specific comments
and package list expansions.

New `nattka make-package-list` command
Did you ever rely on stable-bot/NATTkA to tell you which dependencies
need to be keyworded?  Now you can do it locally without updating
the bug and waiting for NATTkA to complain.

Just run:

    nattka make-package-list dev-foo/bar

and NATTkA will run pkgcheck and add failing dependencies iteratively
until it completes the package list or fails to satisfy pkgcheck.

Note that this is a pretty early feature and it isn't very smart.
It may fail at obvious stuff (like `<` deps) or produce extraneous
packages.  In particular, pkgcheck and repoman handle || deps somewhat
poorly and they could bring extraneous solutions into the package list
(e.g. asking you to keyword dev-python/sphinx and pypy3 even though
the required PYTHON_TARGETS are masked on arch in question).

Improvements will happen in the future.  In particular, I'm looking
forward to adding an interactive mode with package editing and stablereq

Best regards,
Michał Górny


File name MIME type
signature.asc application/pgp-signature