Alexandru DAMIAN [Fri, 13 Feb 2015 13:08:26 +0000 (13:08 +0000)]
toasterui: empty state for pages
Toaster needs to properly prompt the user and display
actionable help texts when the database is void of
meaningful information. This patch brings in the
"empty" states for pages.
[YOCTO #6755]
Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Michael Wood [Thu, 12 Feb 2015 15:08:24 +0000 (15:08 +0000)]
toaster: Remove Layer source from machines, layers and targets
From the bug: The layer source reveals too much of the implementation model,
without explaining what is going on behind the scenes. It will confuse more
than inform, so let's get rid of it.
[YOCTO #7302]
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Michael Wood [Fri, 6 Feb 2015 19:22:49 +0000 (19:22 +0000)]
toaster: New build button allow arbitrary build targets
Target input field needed to support both selecting suggestions and
typing targets, since Toaster doesn't always know about all the targets
provided by the layers in the project.
[YOCTO #7187]
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Michael Wood [Fri, 13 Feb 2015 15:53:34 +0000 (15:53 +0000)]
toaster: layerdetails use new vcs reference api
Use the new layer_version api so that we return the vcs reference whether
that be the commit hash, branch name or the upstream branch to which the
layer is associated with.
[YOCTO #7192]
Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Alexandru DAMIAN [Tue, 10 Feb 2015 16:25:17 +0000 (16:25 +0000)]
toaster: properly detect failed server start
This patch brings in reading the server log if the server
fails to start. This is the first step in displaying the errors
in a manner that is actionable by the user.
[YOCTO #7285]
Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Aníbal Limón [Fri, 13 Feb 2015 21:58:11 +0000 (15:58 -0600)]
fetch2: wget latest_versionstring improvments in get version by dir
Add support for scan every version directory using _check_latest_version
makes code more robust because sometimes upstream projects publish
new directories without files, causing don't find version.
To support this new behaviour remove _check_latest_dir and replace for
_check_latest_version_by_dir,
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Aníbal Limón [Fri, 13 Feb 2015 21:58:10 +0000 (15:58 -0600)]
fetch2: wget add _check_latest_version_by_dir
Add _check_latest_version_by_dir this function provides support
for scan every directory newer than current dir in order to get
latest_versionstring, example:
Change return of _vercmp from True/False to -1/0/1 to provide test
when current directory is equal to newer directory this helps to
scan the same directory to get minor versions, example:
Add support for get group only if exist in regex, this enables to use
this function in _check_latestversion regardless if the regex is generic
or specified by REGEX_URI.
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Tue, 10 Feb 2015 18:13:25 +0000 (18:13 +0000)]
cooker: rework LAYERDEPENDS versioning so that it is actually useful
We've had versioned dependency support in LAYERDEPENDS for quite a long
time, but I can say with pretty good certainty that almost nobody has
used it up to now because it was too strict - the specified version had
to exactly match the version in your configuration or you would get an
error; there was no "greater than or equal" option, which is usually
what you will want given that LAYERVERSION does get bumped from time to
time.
However, users mismatching layer branches and then having their builds
fail later on with some incomprehensible error is still a pretty common
problem. We can't simply use the git branch because not everyone is
always on a branch and the branch names don't always match up (and
that's not an issue). To provide a practical means to address branch
mismatching, I have reworked LAYERDEPENDS version specifications to use
the more familiar "dependency (>= version)" syntax as used with package
dependencies, support non-integer versions, and clarified the error
message a little. If we then take care to bump the version on every
breaking change, it is at least possible to have layers depend on these
changes when they update to match; we can now even support a major.minor
scheme to allow retrospectively adding a version limiter to old branches
when a new branch is created and yet still allow the old branch minor
version to be bumped if needed.
Fixes [YOCTO #5991].
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Tue, 10 Feb 2015 18:13:24 +0000 (18:13 +0000)]
tests: add tests for OE pre-release version formatting
This scheme is used for versioning recipes that are pre-release (alpha,
beta, etc.) within OpenEmbedded, so add some tests to ensure the
appropriate comparison results still hold true.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Tue, 10 Feb 2015 18:13:23 +0000 (18:13 +0000)]
utils: ensure explode_dep_versions2 raises an exception on invalid/missing operator
We really want an error rather than the version to just be silently
skipped when the operator is missing (e.g. "somepackage (1.0)" was
specified instead of "somepackage (>= 1.0)".)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Removed a note to myself in the BB_ORIGENV example.
Reported-by: Paul Eggleton <paul.eggleton@intel.com> Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Michael Wood [Thu, 5 Feb 2015 18:19:57 +0000 (18:19 +0000)]
toaster: all Machines exclude de-prioritised layer source items
If a duplicate layer exists from another layer source and provides a
machine we don't want to show it if that layer comes from a low priority
layer source.
Signed-off-by: Michael Wood <michael.g.wood@intel.com
Michael Wood [Thu, 5 Feb 2015 14:24:01 +0000 (14:24 +0000)]
toaster: models Allow the machine's layer name to be searched
Make the layer name searchable. If you know the name of the layer you are
interested in, searching for it is a fast way of getting the list of
machines provided by it.
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Michael Wood [Wed, 4 Feb 2015 18:06:30 +0000 (18:06 +0000)]
toaster: All machines Add filtering based on layer in project
Add a filter so that we can filter machines which are already being provided
by a layer in the current project.
Also make sure that we're only showing layers which are compatible with
the current project.
Also handle no results returned and page heading reflecting the number of
results returned from a search.
AlexD solved conflicts while merging the patch.
Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Michael Wood [Tue, 3 Feb 2015 16:08:47 +0000 (16:08 +0000)]
toaster: layerdetails Don't remove alert from dom on dismissal
When dismissing the alert we actually want to keep the alert area still
in the dom for the use of future alerts. The default behaviour is to
remove it from the dom. Hide it again instead.
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Michael Wood [Tue, 3 Feb 2015 16:05:15 +0000 (16:05 +0000)]
toaster: All machines Update layer notifications
Update layer notifications to the new wording for layer add remove
notifications.
Fix bug where the the alert area is being removed from the dom on
dismiss instead of re-hidden
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Michael Wood [Fri, 30 Jan 2015 18:21:05 +0000 (18:21 +0000)]
toaster: Add add/select functionality to machines page
This feature for the machines page allows the user to add a layer and
it's dependencies to the current project and then if successful select
the machine(s) which become available due to being provided by the
layer.
AlexD merged the changes into the submission queue.
Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
toastergui: add the word 'compatible' to 'all' pages
Labels for the 'all' pages don't really convey what's provided in them.
The team has suggested we add the word 'compatible' to them,
to make clear they will show all layers / targets / machines that
can be built with the version of the build system you are
using in a certain project. A link like 'view all targets'
becomes 'view all compatible targets'.
I've also added some help text.
Signed-off-by: Belen Barros Pena <belen.barros.pena@intel.com> Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
This patch improves the logging facilities for toaster in order
to help diagnose bugs that happen on user machines.
The logs are stored now under "/tmp/toaster_$$" where $$ is a
PID-based unique identifier. On shutdown, toaster will automatically
erase all logs unless errors are listed in the log file.
On error, Toaster provides suggestions on what to do.
This patch includes a minor fix found as a result of logging
improvements.
Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
This patch brings fixes and enhancements in the startup sequence.
- the dependency version checking is now correctly enforced when
starting in both modes
- fixed errors in looking up environment variables
- added message with 'daemon' program start location
- presenting menu for selecting config file
[YOCTO #7283]
[YOCTO #7291]
[YOCTO #7273]
Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
This patch clearers and bring fixes for the layer selection
logic in order to enable information collected during build to be used
in configuring projects, specifically targeting the recipes
learned through the building process.
The patch also adds tests to verify the layer selection logic.
[YOCTO #7189]
Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
toastergui: remove time link for failed build requests
Failed build requests do not have a build time page where
you can look at the time spent on each task. Therefore,
their build time information cannot be a link to such
a page.
Alexandru DAMIAN [Wed, 28 Jan 2015 13:18:09 +0000 (13:18 +0000)]
toaster: new layer checkout logic
This patch implements a new layer checkout logic that brings more
flexibility in getting layers under different commits work with
Toaster.
The new hibrid logic will checkout separately each layer and commit id;
the task execution will be delegated to the checkedout bitbake, but the
data logger will be executed from the current toaster version as to
bring in enough data to sustain the updates in UI models.
[YOCTO #7171]
[YOCTO #6892]
Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Richard Purdie [Thu, 29 Jan 2015 14:35:37 +0000 (14:35 +0000)]
data_smart: Don't use mutable objects as default args
These only have one instance created which means your subsequent datastores
can contain echos of previous ones. Obviously this is not the behaviour
we want/expect. It doesn't affect bitbake too badly as we only have one
datastore, it does massively potentially break our selftests though.
Thanks to Tim Amsell for pointing out the now obvious problem!
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Alexandru DAMIAN [Fri, 23 Jan 2015 17:36:14 +0000 (17:36 +0000)]
toastergui: update project build listing
We update the build listings in the project mode to enable
proper display and selection of build requests that do not have
an actual build object because the bitbake process did not start.
We add a page to display error details for build requests that
did not start a build.
Fixing errors and misspelling in build sections.
Sorting by "timespent" is disabled for build-listing pages.
toastergui: add 'show all' link to no results page
When you search for targets or machines in the layer details
page and your search returns no results, you should
see a 'show all' link that you can click to clear the
search and display all table entries.
toastergui: Generic message for the layer details empty states
In the layer details page, change the message you see when
the number of targets or machines provided by a layer is
0, either because that's what's reported by a layer index
instance, or because Toaster does not have any information
about the layer.
The new message is more generic, in order to fit layers from
all layer sources.
toaster: apply common styles to right hand column of detail pages
Layer, recipe and package details pages have a right column
with additional information. This commit standardises the
formatting of the content in that right column across
all these pages by creating a new css class .item-info
in default.css
The layer details page should have the same layout as all
other detail pages (recipes, packages). For this to happen,
the basebuilddetailpage.html and baseprojectpage.html
templates should use the same layout, and so should the
layerdetails.html and recipe.html templates.
This patch also capitalises the string 'All layers' in the
breadcrumb of layerdetails.html as all other breadcrumb elements.
Signed-off-by: Belen Barros Pena <belen.barros.pena@intel.com> Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Richard Purdie [Wed, 21 Jan 2015 16:07:19 +0000 (16:07 +0000)]
cooker: Rename event_data -> expanded_data
event_data would be better named expanded_data, then we can widen its scope
to other places in cooker where we need to access an expanded data store.
We certainly don't want multiple expanded data stores.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Wed, 21 Jan 2015 17:43:51 +0000 (17:43 +0000)]
server/process: Fix select call
There was a report that bitbake -e | less would use 100% cpu when it shouldn't
really. The issue appears to be a bogus file descriptor in the select call. We
shouldn't be blocking if there is event data pending to a *reader* from server
context.
[YOCTO #7138]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Alexandru DAMIAN [Wed, 21 Jan 2015 12:59:51 +0000 (12:59 +0000)]
toastergui: enable re-ordering when columns are hidden
This patch enables table re-ordering when a sorted-by column is hidden.
This is default functionality in toaster table pages, but was not
enabled for all columns in this situation.
[YOCTO #7125]
[YOCTO #7022]
Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
toastergui: fix the second 'view all targets' link
The project page has 2 links to the all targets page.
The one at the top of the page is working, but not
the one further down. This patch sorts that out.
Richard Purdie [Wed, 21 Jan 2015 13:53:59 +0000 (13:53 +0000)]
prserv/serv: Improve exit handling
Currently, I'm not sure how the prserver managed to shut down cleanly. These
issues may explain some of the hangs people have reported.
This change:
* Ensures the connection acceptance thread monitors self.quit
* We wait for the thread to exit before exitting
* We sync the database when the thread exits
* We do what the comment mentions, timeout after 30s and sync the database
if needed. Previously, there was no timeout (the 0.5 applies to sockets,
not the Queue object)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
David Reyna [Fri, 16 Jan 2015 16:42:41 +0000 (16:42 +0000)]
toaster: project configuration variables page
Implement the project configuration variables page.
AlexD made whitespace changes and a minor fix.
[YOCTO #6588]
Signed-off-by: David Reyna <David.Reyna@windriver.com> Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Wed, 21 Jan 2015 11:16:20 +0000 (11:16 +0000)]
cooker: Further optimise pyinotify
We currently add crazy numbers of watches on files. The per user limit is 8192
by default and on a system handling multiple builds, this can be an issue.
We don't need to watch all files individually, we can watch the directory containing
the file instead. This gives better resource utilisation and better performance
further reverting some of the performance regression seen with the introduction
of pyinotify.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Wed, 21 Jan 2015 10:49:01 +0000 (10:49 +0000)]
command/cooker/knotty: Fix memres handling of command environment changes
If the environment changes, we need memory resident bitbake to adapt to those
changes. This adds in functionality to handle this alongside the configuration
option handling code. This means that the common usage:
MACHINE=X bitbake Y
now works with the memory resident server.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Alexandru DAMIAN [Wed, 14 Jan 2015 12:46:55 +0000 (12:46 +0000)]
toasterui: fix variable data error
A bug slipped in the toaster ui that prevented saving of
build configuration despite the data being retrieved
from the server. This patch fixes the shaming mistake.
[YOCTO #7117]
Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>