2d13b11783
adi: place :NonFree requests in separate adi with :NonFree path.
2018-01-31 01:34:00 -06:00
Jimmy Berry
b1fd3ad49a
osclib/core: request_age() return delta and handle Request object.
...
In #1370 devel-project.py was broken since it need delta.days and uses
Request class.
2018-01-29 03:14:24 -06:00
Jimmy Berry
b84beb6958
osclib/request_splitter: utilize osclib.core.request_age().
2018-01-25 21:27:29 -06:00
Jimmy Berry
5e73e9498f
osclib/request_splitter: replace devel_project_get() with core.devel_project_fallback().
2018-01-17 18:12:42 -06:00
Ludwig Nussel
ad449c6d2c
Merge pull request #1344 from jberry-suse/request_splitter-special-config
...
osclib/request_splitter: allow special packages to be empty.
2018-01-15 14:57:45 +01:00
Jimmy Berry
55191625e8
osclib/request_splitter: rework quick strategy to handle Leap 15.0 workflow.
...
The addition of factory-auto and repo-checker reviews need to be allowed
since they are always present and do not constitute a non-quick review.
In an attempt to future proof the strategy the allowed review groups are
taken from the project configuration and repo-checker from config.
2018-01-12 16:52:49 -06:00
Jimmy Berry
3d43985d19
osclib/request_splitter: allow special packages to be empty.
2018-01-12 15:40:56 -06:00
Jimmy Berry
facb6fecf6
osclib/stagingapi: provide is_staging_bootstrapped() from request_splitter.
2017-12-21 00:31:01 -06:00
Jimmy Berry
e8c2799156
osclib/request_splitter: reduce default list of special packages.
2017-10-16 16:48:45 -05:00
Jimmy Berry
c9743b5df0
osclib/request_splitter: provide splitter-special-packages config variable.
2017-10-16 16:48:17 -05:00
Jimmy Berry
de586a664f
osclib/request_splitter: for SLE, fallback to openSUSE:Factory devel projects.
2017-08-31 15:43:18 -05:00
Jimmy Berry
d873e16356
request_splitter: fallback to source project when devel is not present.
2017-06-14 22:18:10 -05:00
Jimmy Berry
dc40ec7ac4
request_splitter: only allow devel/super followup for non-bootstrapped.
2017-05-09 19:40:15 -05:00
Jimmy Berry
c78d98f9e6
request_splitter: should merge: allow devel and super if not ready.
2017-05-04 16:48:57 -05:00
Jimmy Berry
9ea9a50c35
request_splitter: expose age thresholds to config.
2017-05-01 17:40:33 -05:00
Jimmy Berry
7f9cc0f74c
request_splitter: add staging whitelist config option.
...
For the initial Factory usage the bot will be allowed to stage on a subset
of the available stagings.
2017-04-28 15:42:09 -05:00
Jimmy Berry
3d503c1f2c
request_splitter: provide quick strategy based on lack of reviews needed.
2017-04-18 13:36:40 -05:00
Jimmy Berry
2aa494aea3
request_splitter: provide Strategy.desirable() in base.
...
Default should be all groups are desirable which the strategy can override.
2017-04-18 13:33:05 -05:00
Jimmy Berry
959a8f7905
request_splitter: add super strategy for representing devel groups.
2017-04-17 23:06:24 -05:00
Jimmy Berry
59eda5d82d
request_splitter: group_by(): provide required option and use in devel.
...
Staging packages with no devel project as a result of devel strategy seems
like the incorrect behavior.
2017-04-17 23:05:04 -05:00
Jimmy Berry
232219363c
request_splitter: s/supliment/supplement/ in comment.
2017-04-17 22:55:41 -05:00
Jimmy Berry
446a30dde0
request_splitter: switch from build percentage to staging age for merge.
...
Using build percentage is sub-optimal since many events can reset the
percentage which can result in additional requests being merged into the
staging. A better metric is the time since the first request was added to
the staging (the age of the staging). Unfortunately, this is not trivial to
determine especially given that the original request may be superseded or
unstaged entirely. As such the datetime at which the staging was activated
is stored in the staging pseudometa. A max age is then used to allow for
merging up until that point.
2017-04-14 17:11:30 -05:00
Jimmy Berry
d8f7d03c33
request_splitter: allow user to override merge conditions.
2017-04-14 17:03:18 -05:00
Jimmy Berry
83f425f23a
request_splitter: s/age_threshold/request_age_threshold/.
...
Makes room for more age related variables. My gut was to do this in the
first place which seems correct now.
2017-04-14 16:48:23 -05:00
Jimmy Berry
ef2bc90061
request_splitter: provide and utilize an aged attribute on requests.
2017-04-12 17:32:43 -05:00
Jimmy Berry
50a83d1108
request_splitter: use capital for boolean strings in supplement().
...
Given that str(boolean) is used a capital is sometimes present, but should
be consistent to remove the possibility for issues.
2017-04-12 17:32:43 -05:00
Jimmy Berry
4bea74ae3a
request_splitter: s/suppliment/supplement/().
2017-04-12 17:32:43 -05:00
Ludwig Nussel
e985d45cb3
Merge pull request #743 from jberry-suse/strategy-devel-min-map
...
request_splitter: add group min map to devel strategy.
2017-03-16 10:41:24 +01:00
Jimmy Berry
83acebb719
special strategy: drop python*.
2017-03-14 23:12:07 -05:00
Jimmy Berry
6e7c158df7
request_splitter: add group min map to devel strategy.
2017-03-14 01:22:13 -05:00
Ludwig Nussel
19a37c0553
Merge pull request #702 from jberry-suse/select-merge-and-strategies
...
Select automation: merge and strategies
2017-03-08 18:54:14 +01:00
Jimmy Berry
a6d7716eb0
osclib: wrap ignored request reason with str() to handle None.
2017-03-03 14:57:16 -06:00
Jimmy Berry
27a6772dce
request_splitter: add strategy_do_non_bootstrapped().
...
Utilize in select command to fallback to none strategy and also excluded
packages that require bootstrapping.
2017-03-01 01:08:23 -06:00
Jimmy Berry
17147acb15
request_splitter: add @postponed concept.
...
This allows for high priority strategies that were unable to be staged
this round to be postponed until there is a staging available.
2017-03-01 01:08:23 -06:00
Jimmy Berry
ad4d93a5b4
request_splitter: rework internals to support merge and strategies.
...
- reworked internal representation of stagings to be more flexible
- new considerable staging state of mergeable based on set of conditions
- multiple proposal stages can be combined to create one proposal
- proposals may now fail to find every group a home without stopping
- splitter_info is stored when first request in an empty staging is staged
to allow for automated merging into that staging
- strategy concept introduced along with several strategies
- strategy_try() concept for applying multiple strategies and keeping
desirable groups which provides a solid basis for making smart decisions
- merge() introduced for merging new requests into existing stagings
- various internal cleanups along the way
functionality exposed via osc-staging:
- new options: --merge, --try-strategies, --strategy
- splitter info written when not merging
stagingapi: add set_splitter_info_in_prj_pseudometa().
2017-03-01 01:08:23 -06:00
Jimmy Berry
67d274e6eb
request_splitter: extract is_staging_bootstrapped().
2017-03-01 01:08:23 -06:00
Jimmy Berry
4d08331250
request_splitter: rework stagings_load() to be public facing.
...
Notify user and exit early if not stagings worth considering.
2017-03-01 01:08:23 -06:00
Jimmy Berry
3d3f0469a4
request_splitter: only supliment a request once.
2017-03-01 01:08:23 -06:00
Jimmy Berry
be31ce05e4
stagingapi: get_staging_projects_short() exclude non-letter stagings.
2017-03-01 01:05:51 -06:00
Jimmy Berry
ef5de87c5d
request_splitter: delete requests should always be considered in a ring.
2017-02-08 13:54:01 -06:00
Jimmy Berry
9f28923ba5
request_splitter: non-ring projects consider all requests in rings.
2017-02-08 13:19:08 -06:00
Jimmy Berry
3de3cae13a
request_splitter: utilize ring attribute rather then lookup again.
2017-02-08 13:18:21 -06:00
Jimmy Berry
404a3efe58
request_splitter: rather than an empty group name use 00.
...
Sorts to the top and is consistent with old behavior.
2017-02-08 13:15:52 -06:00
Jimmy Berry
38dbf5b99a
request_splitter: refactor to remove target_package param for suppliment().
2017-02-01 08:09:15 -06:00
Jimmy Berry
f42358eaad
request_splitter: move @devel_project to action/target.
...
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.
2017-02-01 08:09:01 -06:00
Jimmy Berry
550ab59e4e
request_splitter: replace incorrect devel project lookup copied from adi.
...
Instead of checking action/source the action/target should be used.
2017-02-01 08:08:34 -06:00
Jimmy Berry
1fe9b5be19
Provide proposal based select using RequestSplitter.
...
See select documentation for usage details.
2017-01-24 22:34:15 -06:00
Jimmy Berry
69f662685c
Add RequestSplitter for common filtering and grouping or requests.
...
- 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
2017-01-24 22:21:10 -06:00