This commit implements the ability to show for packages that do not
belong to any ring the same details that are shown for packages that do
live in rings. Due to concerns about compatibility and volume of the
output the feature is hidden behind a new --adi-details command
line flag.
The author was attempting to port for python3, but changed the meaning:
- print ' ', line
+ print(' ' + line)
The first prints " $line", while the second:
" $line".
This changes console output from:
science
666254 libArcus-lulzbot -> delete (delete request)
3 more users
back to:
science
666254 libArcus-lulzbot -> delete (delete request)
3 more users
(ignore lines up and standard double space indent used)
Without this, the relative rarer types of requests seen in projects with
staging and handled by list command will be included in staging proposal.
However, since they are not stageable the select operation will fail. This
change ensures that a filter is always present when stageable is True to
exclude non-stableable requests. The list command sets stageable to false
in order to list out the non-stageable requests of interest.
This was not observed in openSUSE since the main non-stageable request was
change_devel and that was exluded in StrategyNone. That filter could be
replaced with the stageable filter, but having an always on filter seems to
make more sense since generally operating in one of two modes.
With the source no longer being checked for devel project and the fact
that delete requests and such will not have source, but make sense to
have a devel project moving to target makes more sense.
- re-implement list and adi commands using RequestSplitter
- numerous small cleanups and clarity improvements
- notably, adi now prints similar output to select when adding requests
- lxml is needed to provide more fully-featured xpath implementation
It is not uncommon for a request to be in a pending state which requires
action beyond the scope of the staging workflow, but does not make sense
to deny the request. For lack of a "postponed" or "pending" state on OBS
a sudo-state of "ignore" is provided for the staging workflow. The ignore
state will remove a request from the "list" and "adi" commands so as not
to be accidentally staged. This avoids the need for keeping a context of
what requests should be ignored in one's memory.
It is expected that an ignored request will have comments reflecting what
is to be done or one should be added via the -m option of ignore command.
If the package was linked to Ring1 from Ring1, staging list command
should display it as Ring0 package ie. it's only be able to puts in
ring0 staging project. This is work out
https://progress.opensuse.org/issues/8266
Do not superseding requests with list command, but if had the permission
of staging, can executing with --supersede argument, or even against
specific requests.