aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2018-05-04rrs/tools: use layer index lockPaul Eggleton
We check out different revisions while we do this processing, and so does the layer index update script, so we shouldn't be allowing both to run at once or nasty stuff will happen. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs_upgrade_history: only look at commits that actually change recipesPaul Eggleton
Since we're now executing a separate script per commit, we should try not to do that unless the commit actually touches recipe files in order to avoid wasting time. (Whilst it's possible that a change to a bbclass might alter what's in the recipe, we can ignore that since we are only concerned with actual upgrades which would always require some sort of change to the recipe or an include file, so we can safely skip commits that don't do that.) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs_upstream_history: use try...finally to ensure tinfoil is shut downPaul Eggleton
We want tinfoil.shutdown() to be called even if an exception occurs. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs_upgrade_history: use date/commit of last recipe upgrade importPaul Eggleton
Instead of arbitrarily importing the last 8 days of upgrades, record the date and commit when we do an import, and then use that information the next time the script is run. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs_upgrade_history: handle multiple recipes with same pn per layerPaul Eggleton
We should expect multiple matches for layerbranch + pn, so use filter() instead of get() and take the first id that matches. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs_upgrade_history: add a --fullreload optionPaul Eggleton
Add a --fullreload option which deletes all upgrade records for the layerbranch first. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs/tools/common.py: ensure we pass a string to loadDataFull()Paul Eggleton
We're calling translate() on the string deep in the bowels of the parsing code and that doesn't work well if the string is unicode, so convert it to a plain string first. That won't work well if the filename is unicode but the chances of that with a recipe is pretty small I would think. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs_upgrade_history.py: ensure we shut down tinfoil safelyPaul Eggleton
Use try...finally to ensure we shut down tinfoil, but since we are potentially dealing with older bitbake releases when importing older upgrades, only call shutdown() if it's actually there (and although it's unlikely, guard against the broken shutdown() in fido as we do in the main layer index update script). Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs_upgrade_history.py: enable to work across python2/3 versionsPaul Eggleton
If you want to go back and get history for the earlier releases (krogoth and previous) then we need to be able to support both python 2 and 3, which practically means we need the same split for this script as we have for the main layer index update script. The catch here is that since we are going back and following the history of changes forward, we basically need to use the same version of bitbake that was current at that time. This works except for around the transition between python 2 to 3 where the metadata lagged behind a bit, so we need to take that into account. In order to keep things generic we have a date field on the maintenance plan layer branch that specifies the date in the metadata where we should switch over to python 3, and then link to PythonEnvironment records that should be used for python 2 and 3 respectively. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04Move run_command_interruptible() to utilsPaul Eggleton
Make this function more easily reusable from the RRS code. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs/tools: run all tools scripts with python3Paul Eggleton
These scripts should all now be run under python 3, so update the shebangs accordingly. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs: add breadcrumb to recipe detail pagePaul Eggleton
Make it possible to get back to the maintenance plan from the recipe detail page. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs: add titles to maintainers/recipes pagePaul Eggleton
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs: handle dependency field differencesPaul Eggleton
The old RRS branch had its own addition of dependency support, but in the mean time we added that to the layer index in the master branch using a different structure. Adapt the RRS recipe detail page to that structure. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04Add link to maintenance plan in layer detailPaul Eggleton
If the RRS is enabled, then add a way to get from the layer detail page to any maintenance plans in which the layer is included. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs: use default milestone instead of "All" for release drop-downPaul Eggleton
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs: add maintenance plan selectionPaul Eggleton
Add a drop-down for selecting the maintenance plan from the recipes page. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs: replace fixtures with initial data migrationPaul Eggleton
Fixtures aren't supported in current Django versions. Add some code to the initial migration to add the data instead. Also add releases/milestones up to and including 2.5. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs/views: fix SQL parameter in get_reup_by_last_updated()Paul Eggleton
We were passing in a parameter value but not using that in the query. Add a WHERE clause to fix that. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs/views: fix case in table namesPaul Eggleton
Table names should be lowercase. I'm unsure if the collation settings have an effect on this, but with the mariadb database I set up here I needed to make this change or else I got errors about missing tables. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs/models: handle All missing in milestonesPaul Eggleton
If we call objects.get() with no matching record then the result will be an exception, not a null return, so handle that properly. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs: handle maintenance plans in viewsPaul Eggleton
Insert maintenance plan into views, their corresponding URLs and templates. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs_upstream_email: Adapt to template rendering API changePaul Eggleton
With Django 1.10+, if you use get_template() to retrieve a template, then you can't pass a context when calling .render() on it, you need to pass a dict instead. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs_upstream_email: reworkPaul Eggleton
* Use maintenance plans to get layerbranches * Use from/to/subject and admin contact from maintenance plan * Use an actual template to render the email (and drop tabulate dependency) * Improve grammar in the email text * Use a single line to represent the most recent commit Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs/models: add fields for more flexible email handlingPaul Eggleton
* Add a flag to say whether emails should be sent * Add fields for from/to/subject (to replace what's currently in settings) * Add user link for administrator to replace the hardcoded values in the email template Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs/tools: drop update_repo()Paul Eggleton
This function is no longer needed - we now rely upon the layer index's code to do this (update through the update script, and checkout through setup_layer()). Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs_distros: support maintenance plans and remove poky hardcodingPaul Eggleton
Remove hardcoded references to the poky repository, and process layerbranches for all enabled maintenance plans. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs/tools: print debug message when parsing recipesPaul Eggleton
Without this it's not clear what's happening if debug mode is enabled and you are waiting for the parsing step. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs_upstream_history: properly handle missing RecipePaul Eggleton
If the Recipe object doesn't exist here then an exception will be raised rather than None being returned, and this will also trigger if multiple recipes match. This may have never triggered in the past because this would have been run right after updating all the recipes in the layer and clearing out duplicates (which we were doing earlier), and thus what is in the database would match the recipe files in the repository, assuming no errors occurred during parsing). We can't remove duplicates though so we need to switch over to using filter() and taking the first recipe. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs_upgrade_history: drop unused importPaul Eggleton
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs_upstream_history.py: support maintenance plans and remove poky hardcodingPaul Eggleton
Remove hardcoded references to the poky repository, and process layerbranches for all enabled maintenance plans. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs_upstream_history.py: drop threadingPaul Eggleton
This is never going to work, the only way we can practically do parallel execution is to run these things in a task which would basically amount to distrodata's do_checkpkg; we may move to that in future but for now just drop the threading code. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs_maintainer_history.py: support maintenance plans and remove poky hardcodingPaul Eggleton
Instead of hardcoded references to the poky repository, look for any maintainers.inc file in layers associated with the layerbranches for all enabled maintenance plans. At present few layers have this file, but at least it will now work generically in any layer index instance. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs/tools/common.py: import sys/os at topPaul Eggleton
These are common enough that they should be imported up front. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04utils: decode command output in runcmd() as UTF-8Paul Eggleton
Sometimes we get back UTF-8 characters (particularly when picking up names from git commits), and the ascii codec will error out if that happens, so switch over to utf-8. We can as a result remove the decode() calls from the bulk change view. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs: fix model string representations for Python 3Paul Eggleton
__unicode__ doesn't work anymore, we need to use __str__ for models instead. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs_upgrade_history.py: add maintenance plan handlingPaul Eggleton
Instead of processing all layerbranches, only process those associated with an enabled maintenance plan. This is one step towards being able to use the RRS together with a more general layer index database. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs/tools: avoid unnecessary checkoutsPaul Eggleton
We don't need to create branches here, and we don't need to actually check anything out unless we're going to parse, so we can save a bit of time by not doing so. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs: show full name in adminPaul Eggleton
It's neater to show "Recipe Reporting System" instead of "Rrs". Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs: add Release link to MaintenancePlanPaul Eggleton
If any Releases exist then we create a default MaintenancePlan and then link all Releases to it - this needs to be done in multiple upgrade steps since the field needs to be non-null. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs: add maintenance plansPaul Eggleton
The MaintenancePlan will provide some context for the RRS records so we can effectively enable RRS functionality only on certain layers where we want it. You can also consider the maintenance of multiple layers together under a single plan if desired. Here we add just the MaintenancePlan and the corresponding migration; a non-null link from the Release requires a separate migration and thus that will be done in a separate commit. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs: add initial migrationPaul Eggleton
This is of course a new Django migration rather than the previous South one. This will have to be applied using --fake-initial on a database that already has the RRS tables. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs: drop old migrationsPaul Eggleton
These south migrations aren't useful. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs/tools: add dry-run option to each scriptPaul Eggleton
Add the ability to run the scripts without writing changes back to the database, for debugging purposes. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04Use this layer index's URL for layer branchPaul Eggleton
If we're integrating the layer index and the RRS, no need to jump off to the OE index if for example this is an internal index. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04Rename RRS URLs to have rrs_ prefixPaul Eggleton
Make these distinct from the layerindex ones. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04Drop "load url from future"Paul Eggleton
This is no longer needed with current Django versions. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs/tools/rrs_unique_recipes: dropPaul Eggleton
We can't just delete arbitrary recipes that do exist in the layer if we're in a general layer index database. We'll need to handle this in a different way, or just live with the fact that there will be duplicate entries. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs/models: move Raw class to views.pyPaul Eggleton
This is something that really belongs in with the views, so move it there. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2018-05-04rrs/tools/rrs_{distros,upstream_history}: Add path for poky meta libAníbal Limón
Due to bitbake client/server changes now the meta path isn't included to sys.path when load tinfoil. Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>