Wihtout selected_requests then that adi staging project is an empty project,
adi command should clean it up rather than go through the logic to check the
project status. Since we have introduced a kind of frozenlinks adi staging,
the project status might be build broken or so but it doesn't have any request
staged in that staging actually, those kind of projects must be deleted.
If users build against an adi project OBS will refuse to delete, but in
that case breaking other projects is fine as the branches should only be
used to work on fixes seen in adi stagings.
See #1142 for an example, details, and discussion.
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.
With --split argument, staging adi command can splits each package to
different adi staging project, the argument can work by 'osc staging adi
--split' or 'osc staging adi --move --split'. Note that, it will be
ignore --by-develproject argument too.
Update by_dp function in adi command, the old way is incompatible to
newer Leap development model, now we should try to check target package
in Factory as well, otherwise the submission from any other place than
Factory did not have 'devel' entry in _meta.