Commit Graph

391 Commits

Author SHA1 Message Date
Aníbal Limón
731c5153b5 rrs: Add Maintainer statistics page.
Maintainer statistics page gives information by Milestone and
Maintainers assigned recipes, status of recipes (up-to-date,
not-update, unknown) and percertange of work done.

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
2015-07-14 10:51:38 -05:00
Aníbal Limón
e3dc4b8502 rrs/views.py: Recipes modularize improve milestone statistics
Modularize get milestone statistics not at private function in order
to use in Manitainers view.

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
2015-07-14 10:51:38 -05:00
Aníbal Limón
fea82e7a03 rrs: RecipeDetail view fix
rrs/views.py: Now is necessary to test if a RecipeMaintainer exists by
milestone to avoid errors for undefined variables.

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
2015-07-14 10:51:38 -05:00
Aníbal Limón
30f300ed03 rrs/models.py: fix RecipeMaintainerHistory get_by_end_date.
If not maintainer info is found return None instead of the first
one entry in the table, this made reporting more consistency.

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
2015-07-14 10:51:38 -05:00
Aníbal Limón
4f67d06302 rrs: Add support for Recipe maintainership history
Now can you get maintainers based on Milestones.

Feature changes,

	rrs/models.py: Add RecipeMaintainerHistory to store maintainer updates.
	rrs/admin.py: Add admin site for RecipeMaintainerHistory.

Adapt changes,

Now you need to specify RecipeMaintainerHistory to get RecipeMaintainer,
changes into rrs/view.py.

These set of changes are incompatible with the previous version you need
to do initial setup described in README.rrs.

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
2015-07-14 10:51:38 -05:00
Aníbal Limón
0b123186c8 README.rrs: Add instruction for serve static content in development
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
2015-07-14 10:51:38 -05:00
Belen Barros Pena
bd33f66e17 readme: add missing instruction
When setting up the rrs application you must uncomment
the 'rrs' line in INSTALLED_APPS. Adding that to the
settings.py configuration instructions.

Signed-off-by: Belen Barros Pena <belen.barros.pena@linux.intel.com>
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
2015-07-14 10:51:38 -05:00
Aníbal Limón
2d3bddc18c rrs: Add support for filter in recipes page.
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
2015-07-14 10:51:38 -05:00
Aníbal Limón
d14d182d2e rrs: Recipes page improve table display
Improve CSS in order to handle column width better also
use styles to display upstream status column.

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
2015-07-14 10:51:38 -05:00
Aníbal Limón
8912b27b51 rrs: Add support for Recipe detail page
Recipe detail page gives information about Recipe like summary,
section, license, file, etc. also display's upgrade history.

rrs/models.py: Milestone add get_by_date and rewrite get_current
for use get_by_date and RecipeDistro add get_distros_by_recipe.

rrs/urls.py: Add url for recipe_detail with pk.
rrs/views.py: Add RecipeUpgradeDetail view.
templates/rrs/recipedetail.html: Add recipedetail template.

templates/rrs/recipes.html: Add link to Recipe detail by row.

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
2015-07-14 10:51:38 -05:00
Aníbal Limón
03abe3d429 templates/base.html: Add link to Yocto Project when APP is RRS
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
2015-07-14 10:51:38 -05:00
Aníbal Limón
1008a70f39 rrs: Recipes add url validation
Add url validation for Milestone and Upstream status and maintainer name
params if isn't valid raise HTTP 404.

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
2015-07-14 10:51:38 -05:00
Aníbal Limón
191ce79584 rrs: Add initial support of recipes page
templates/rrs/base_toplevel.html: Add support for display statistics by
Milestone.
templates/rrs/recipes.html: Add initial page that display Recipe
status by Milestone also details of every recipe.
rrs/views.py: Add RecipeLitView for support recipes page.
rrs/models.py: Add helper functions.
rrs/static/*: Add css and js resources.

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
2015-07-14 10:51:38 -05:00
Aníbal Limón
ed9363373a rrs: Add support for store RecipeUpstreamHistory
To provide statistics about RecipeUpstream information based on
Milestones we need to store RecipeUpstreamHistory that contains when the
update script was executed.

rrs/admin.py: Add admin page for RecipeUpstreamHistory.
rrs/models.py: Add model for RecipeUpstreamHistory with helper functions
for get last and last by date range also add migration.

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
2015-07-14 10:51:38 -05:00
Aníbal Limón
fb255de171 rrs: Add milestone selection bar for recipes and milestone.
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
2015-07-14 10:51:38 -05:00
Aníbal Limón
11df274e2b rrs: Add about page
templates/base.html: Discard bulk change and submit layer when app is
rrs.

templates/rrs/about.html: Add about page that extends of base.

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
2015-07-14 10:51:38 -05:00
Aníbal Limón
454c2620b9 rrs: Add README.rrs to help in setup.
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
2015-07-14 10:51:38 -05:00
Aníbal Limón
cf5fc3580b layerindex: Add support for rrs in settings.py and urls.py
settings.py: Add APPLICATION variable to switch between layerindex
rrs also add context_processors decision layerindex or rrs.

urls.py: Add decision for load urls for layerindex or rrs.

layerindex/context_processors.py: Add application variable for use
templates.

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
2015-07-14 10:51:38 -05:00
Aníbal Limón
0ffee5e602 rrs: Add application
Add models for store Milestone, Maintainer and Recipe{Maintainer,
Upgrade, Upstream, Distro}, add initial data for Milestone and
Maintainer, initial migration and admin sites.

Add rrs/context_processors.py for return the site_name and application
for use in templates.

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
2015-07-14 10:51:38 -05:00
Aníbal Limón
0070ac8291 layerindex/admin.py: Change readonly fields from non-set to set
If you specify what fields are non readonly using get_all_field_names()
causes a fail when have two Apps because this method returns reference
to models in other App (foregin keys) that isn't defined.

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
2015-07-14 10:51:38 -05:00
Aníbal Limón
885c7f39a7 layerindex: Add support for store src_uri and depends into Recipe
This fields are needed by Recipe reporting system also add a migration
for this change.

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
2015-07-14 10:51:38 -05:00
Paul Eggleton
8966d2ea4e recipeparse.py: handle old BBFILES append method in layer.conf
Some layers use an older-style method to append a value to BBFILES,
namely BBFILES := "${BBFILES} ..." - this normally works fine, but in
our environment we don't order parsing of layers. That's probably wrong,
but for now just ensure BBFILES has a value to begin with as a
workaround.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2015-06-17 18:36:37 +01:00
Paul Eggleton
40f1d51de6 update.py: minor fixup for last commit
Fix up memory leak fix for bitbake in daisy and earlier which did not
have bb.codeparser.codecache.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2015-06-15 10:24:18 +01:00
Paul Eggleton
f4b4525858 update.py: fix memory leaks
We're kind of abusing some bitbake internals here and the result is that
there are a bunch of global lists and caches that simply grow as we
parse more layers, until available memory is exhausted. We don't care
about the contents of any of these within the layer index update script
so just clear them out between layers.

Should fix [YOCTO #7663].

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2015-06-15 00:03:43 +01:00
Paul Eggleton
2be084de64 Hide "updated" field changes in change history page
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2015-01-23 17:41:01 +00:00
Aníbal Limón
6ac4e8fbb5 layerindex/models.py: Branch model fix inital_data fixture
Add default = datetime.now attr to updated field of Branch
model because it fails when try to insert inital data with NULL.

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
2014-12-22 00:29:23 +00:00
Alexandru DAMIAN
40d05f928c adding updated field for certain models
We add an automatically-updateing "updated" datetime
field to Branch, LayerItem, LayerBranch, Recipe and
Machine models to allow date-based incremental updates
through the API.

The added field does not interfere with the existing
form-based pages (auto_now sets editable to false).

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
2014-09-24 11:32:34 +01:00
Alexandru DAMIAN
1d84f282de adding CORS policy for the API
We add the corsheaders application in order to
enable the CORS policy for the read-only REST API.

This is needed to allow AJAX queries to the layerindex
application from a browser environment.

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
2014-09-24 11:32:34 +01:00
Alexandru DAMIAN
1c9d6be527 expose REST API for layerindex
This patch enables a read-only REST API for the layerindex
application using Django REST Framework.

The objects of types Branch, LayerBranch and LayerItem are
exposed to queries so that the layerindex application can
function as a Layer Source in Toaster.

The library dependencies are documented in the requirements.txt
file.

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
2014-09-24 11:32:34 +01:00
Alexandru DAMIAN
99b9b014db adding environment description for virtualenv
General practice influenced by heroku.com is to create
a requirements.txt documenting the python library dependencies
for the project. This allows a user to easy setup a running
environment for the project using virtualenv and pip.

Extending .gitignore to ignore venv (reserved for virtualenv
use) and vim swap files.

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
2014-09-24 11:32:34 +01:00
Paul Eggleton
749793f55b Support newly added API for enabling variable history tracking
See:
http://cgit.openembedded.org/bitbake/commit/?id=a9439b136f55f3f0e80ff053cd3b159da69ba362

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-09-24 11:29:08 +01:00
Paul Eggleton
7a432108c0 tools/import_layer: fix errors in maintainer scraping code
* Fix "sre_constants.error: nothing to repeat" error due to .* inside
  group made optional with ? in regex
* Avoid error if maintainer responsibility is not specified

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-06-12 11:24:25 +01:00
Paul Eggleton
0ec1909051 update.py: fix not clearing recipe files list on reload
When we did a full reload this list wasn't getting cleared for the next
layer, and we look at the contents of the list unconditionally later to
determine which files need to be added. Given that the list items are
full paths, this is unlikely to have caused any problems; however it
could possibly have been an issue for nested layers with the right
update order, or lead to issues if the usage of the list changes in
future.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-06-12 11:21:09 +01:00
Paul Eggleton
ab393b18c6 update.py: ignore layers within layers
Some layers, such as meta-intel, also contain other layers. We don't
want recipes/classes/appends in those child layers to appear in the
parent layer so ignore any that appear within subdirectories that
contain a conf/layer.conf file.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-06-12 11:15:14 +01:00
Paul Eggleton
7c4a1c1dab update.py: fix layer exists-on-branch check
There was a logic error here - we were checking to see if the layer
directory existed before actually checking out the branch, which means
we were looking at the state of whatever branch was previously checked
out. Replace this with some validation of the last revision check and an
additional check for the directory after checking out the branch.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-05-24 17:29:23 +01:00
Paul Eggleton
f0b517796f update.py: use actual branch when getting last revision
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-05-24 17:23:56 +01:00
Paul Eggleton
bbbf5e9939 Handle % characters in URLs
If there is a % character in the path to a file / directory, we need to
properly encode it when creating the repo web URL or the link won't
work. Thanks to Khem Raj for reporting this.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-05-12 14:15:31 +01:00
Paul Eggleton
f7fa15dd36 Allow layers to have no master branch
With BSPs being "retired" e.g. in meta-intel, it is possible for layers
to not exist on the master branch; since this is legitimate we need the
layer index to handle it.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-04-06 15:01:24 +01:00
Paul Eggleton
4c08b28387 recipes: preserve search keyword when switching between branches
If you want to check what the same search returns on a different branch
it makes things easier if you don't have to re-type the search after
selecting the branch.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-03-09 21:16:08 +00:00
Paul Eggleton
cd26148eed Fix append list name matching
* Recipes without versions in the file name (such as alsa-state.bb)
  weren't having their bbappends listed. Use a regex match to fix this.
* Use the prefix from the filename instead of PN, since that's how
  BitBake does it
* List version matching bbappends first, then non-matching in muted
  colour

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-03-09 20:58:24 +00:00
Paul Eggleton
4db9555a67 Show branch name next to last update date
Just to reinforce which branch is being viewed.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-03-09 19:23:59 +00:00
Paul Eggleton
81588881cb duplicates: sort recipes by version (descending) after other sorts
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-03-09 19:18:01 +00:00
Paul Eggleton
6d0b9d40aa duplicates: add ability to select layers
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-03-09 19:17:49 +00:00
Paul Eggleton
7f990bc085 README: update tested versions for required packages
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-03-04 12:27:06 +00:00
Paul Eggleton
5aa533b678 Fix OE-Classic stats page for update to latest django-nvd3 (0.6.0)
Update d3/nvd3 js files in the process, but hold off on nv.d3.css for
now because the latest version breaks the formatting/fading on tooltips.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-03-03 23:12:35 +00:00
Paul Eggleton
5ee1bb255b TODO: Add some more todo items
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-02-23 02:14:13 +00:00
Paul Eggleton
47d6ab50c8 Add layer import script
Adds a simple way to add a new layer to the database in an automated
manner, given only a URL and optionally a name and subdirectory. If no
subdirectory is given, the root and all first-level subdirectories that
contain conf/layer.conf will be created as layers. Guesses will be made
as to the right values for certain fields, by looking at
README/MAINTAINERS files and github repository information.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-02-23 02:13:10 +00:00
Paul Eggleton
3588053069 Use CORE_LAYER_NAME when setting default layer dependency
If the site is configured to use a different core layer then we ought to
use it for the default layer dependency instead of hardcoding
openembedded-core.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-12-28 11:03:29 +00:00
Paul Eggleton
fabc06b2d0 Check that the core layer contains conf/bitbake.conf
This ensures we get a sensible error message prompting the user to set
the subdirectory, instead of a BitBake parse error.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-12-28 11:03:29 +00:00
Paul Eggleton
75c44fd770 Use Django sites framework to specify website title
This allows specifying the site title in the database, instead of hardcoding
it in the template. Just change it to something other than "example.com" to
apply your own title.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-12-28 11:03:29 +00:00