Right after commit of a package into a staging project, it can happen
that OBS replies to GET with 'service in progress' and then we don't
get a file list. As we ignored that exception, we did not create the
other spec files.
Now enhance retried_GET to look for this condition and retry this as
well, so we get reliable package list.
Makes sense always return string from source_file_load(), this
preventing potentially TypeError on python3. Also changed product file
loading, now source_file_load() used.
I tried to replace the Mocking of functions with httpretty, but
unfortunately httpretty replaces all other API calls with 404s then.
What we'd need is a library sniping out single requests - possibly
by mocking the http_GET function, but that's tricky as well with
caching already overwriting it
So far we skipped links between packages in the same ring because we've
frozen a _link pointing from one to the other, but this does not work
with default OBS and creates quite some problems also in adi projects
where it's trying to be smart.
Now simplify this a lot by simply linking it in any case
This change is trying to provide user more information
in case that he already froze project but date of last
freeze was not updated, since there were no changes for
last MAX_FROZEN_AGE days.
* Use osclib.freeze_command.MAX_FROZEN_AGE constant
* Avoid explicit proposal of --no-freeze bug suggest alternative
Submitters complain more and more about the spam they're getting from
staging projects - and we rather leave that weapon for actual feedback.
One especially annoying case is if a package is added to one staging project
and then later moved to another, the submitter will receive notifications
of all kind of bots and actions for both staging projects.
Distinct copyrights were left as I do not wish to track down commit
history to ensure it properly documents the copyright holders. Also left
non-GPLv2 licenses and left bs_copy untouched as a mirror from OBS.
Already have a mix of with and without headers and even OBS does not place
on majority of files. If SUSE lawyers have an issue it will come up in
legal review for Factory.
These methods provide for a generic place to store meta data related to
a project. For the time being, keep the original :Staging/dashboard
location for openSUSE products.
OBS likes to not follow its API documentation and tends to ignore the
specific attribute option and returns everything. This results in
returning the first element that lxml decide to match to the pattern.
Not sure if OBS broke this recently, or if #1573 was poorly tested.
Human eyes can vertically. One does not write math homework like:
1. y = mx + b
b = y - mx
or
1. y = mx + b
b = y - mx
one write it
1. y = mx + b
b = y - mx
Right now we require a Staging subproject to use staging plugin, which
is suboptimal especially for maintenance requests. The OBS attributes allow
to store the things right attached to the project - and the permissions
can be controlled in parallel to the maintainers right, which gives us
enough freedom