| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
The 'wallclock-us' is a option that we thought we already had.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In order to test when core activities occur by parsing the stderr
in tests, we should make the messages conform more.
At the same time, this restores alignment of columns in core
messages with the element processing related messages.
Also, _scheduler/scheduler.py is updated to make it's activity names
conform to the (current) 5 character limit for the sake of alignment.
The tests/frontend/logging.py test gets it's regexes updated for
the log lines it checks for in stderr.
|
|
|
|
|
|
|
|
| |
This happened when bst is invoked with --message-lines 0 or
--error-lines 0, and was arguably a little too verbose (the user
explicitly asked us not to show them any lines, after all).
Fixes #779
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This includes changes in app.py:
* Interactive failure shell no longer uses the failed build sysroot,
defaulting to the cached build tree.
Changes in element.py are:
* Errors caused by building don't store the failed build sysroot,
instead storing that a sandbox can be created to debug the error.
* When staging sources, will stage the element's cached build tree if it
exists.
Changes in _exceptions.py:
* BstError.sandbox is now a flag of whether a sandbox can be opened up
to debug the error.
Changes in widget.py:
* Don't try to print any information about the sandbox.
Changes in _message.py:
* Fix documentation so Message.sandbox is not a directory any more.
This is part of #539
|
|
|
|
|
|
|
| |
This fixes #191
A note has been added to NEWS explaining backwards
compatibility issues
|
|
|
|
| |
Fixes #331.
|
| |
|
| |
|
|
|
|
| |
When we later add cached failures it needs to not treat them as successes.
|
|
|
|
|
|
| |
Change widget.py print_summary() to only print the failure
messages of elements in the Failure Summary that failed on the
current try.
|
|
|
|
| |
Fixes #424
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Here the pipeline becomes essentially stateless, some dangling
state remains to be factored out because of frontend accesses
which will be changed in a later commit.
Essentially, the Pipeline.load() method no longer has any knowledge
of the specific purposes of the loaded targets, and now takes
a list of target groups and returns a corresponding list of element
groups.
The Stream() business logic methods now use other pipeline helper
methods to create and filter lists from the loaded target elements.
The Stream() also finally absorbs the Scheduler frontend facing
APIs. However Queues are still exposed on the Stream object for
logging purposes and through callbacks such that the frontend can
retry elements.
|
|
|
|
|
|
|
|
| |
o This makes logging independent from the Pipeline()
o Removed size_request Widget() method, add context to Widget() initializer
o Make the Status() widget derive anything it needs through the Context()
|
|
|
|
|
|
| |
This is the first part of the pipeline refactor, at this stage
all calling interfaces remain the same, except that invocation
of the scheduler has been moved from Pipline to Stream.
|
|
|
|
|
|
|
|
|
|
|
| |
It can be difficult to pick out important information in all the messages,
so it's convenient to have classes of them collected into one place.
One such class of important information is when the cache key of an element changes,
such as when element's source is tracked or cached from a workspace,
since it can be important to know what the cache key is for that artifact.
Fixes issue #252
|
|
|
|
| |
This is a part of issue #285
|
|
|
|
|
|
| |
The extra "full" was a bit redundant here, the Element does not
export any "less than full" display key accessor, so lets use
a more simple name for this.
|
|
|
|
|
| |
It's more convenient than having to search back through all the output
to find out what the cause of failure was.
|
| |
|
| |
|
|
|
|
| |
The intent is more obvious by using an existing module.
|
|
|
|
| |
This will be used to provide an error summary before the pipeline summary.
|
|
|
|
|
|
| |
Added required size_request() method to new MessageOrLogFile() widget.
This came up in merge request !377
|
| |
|
| |
|
|
|
|
|
|
|
| |
Element
Workspaces are now element wide, so consistency edge cases must
be handled at the element level instead of the source level.
|
|
|
|
|
|
|
|
| |
Instead of printing the list of workspace directory for each source.
This fixes some fallout from the changes to make workspaces element-wide
instead of being on a per-source basis, which was merged as merge request !257
as a part of issue #209.
|
|
|
|
|
|
| |
It appears we have some cases of empty detail strings that are
not None, this was resulting in an IndexError when trying to strip
the trailing newline from the message.detail.splitlines() result.
|
|
|
|
|
|
|
|
| |
This also adds a couple of methods to OptionPool to avoid
exposing some internals to other parts of the codebase, and
calls those new methods from _project.py and _frontend/widget.py
This is a part of issue #285
|
|
|
|
|
|
|
|
|
|
|
|
| |
I originally changed the configuration of strict mode to be on
a per project basis in the user configuration, because the user should
be able to set their preference on a per project basis.
I however made the mistake to make the strict mode be considered
on a per project basis within a single pipeline, this commit corrects
the behavior such that when you are building a project with junctions,
only the toplevel project is considered when deciding strict mode
for the whole pipeline.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
And adjust all surrounding sources for changed symbols.
Additional details:
o Added Project.get_shell_config() to report the shell configuration,
instead of making those members all public
o Moved assertions about project specified format versions required
of plugins out of Plugin.__init__, and into Project.create_element()
and Project.create_source(), so we can keep more things private
This is a part of issue #285
|
|
|
|
|
|
| |
And adjust all surrounding sources for changed symbols.
This is a part of issue #285
|
|
|
|
|
| |
Seems that using `~` conflicts with some markdown when trying to
paste build logs in, e.g. gitlab issues.
|
|
|
|
| |
Looks like this quite interesting attribute was not getting logged.
|
|
|
|
|
|
|
|
|
|
| |
We need to distinguish between:
o Errors which occurred in a task, and are related to a log file
and an elapsed time.
o Errors which occurred in the main process and are not related
to any timed activity
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This reverts commit 14234ccce3e7eec1153e810fab75afb2e90a2b22.
|
|
|
|
|
| |
widget.py: Remove SequenceID from the list of widgets.
tests/frontend/logging.py: Remove %{sequence} check.
|
|
|
|
|
|
|
| |
Messages which come from the frontend do not have any backing log
file where the remainder of the message can be reviewed. In the
case of lengthly detailed messages originating from the frontend,
we dont allow any abbreviation of the message.
|
|
|
|
|
|
|
|
| |
Brackets can now be added as plain text in a custom logging format
string, so there's no need to add them in widgets.
widget.py: Remove brackets.
_status.py: Remove the 'brackets' optional argument to TimeCode.
|
|
|
|
|
|
| |
widget.py: Main body of tokenizer.
_context.py: Read message-format from user config YAML.
main.py: Pass in context message-format to LogLine constructor.
|
|
|
|
|
|
|
|
|
|
| |
WallclockTime is set at the time a message is created. Since messages
can be placed in queues before being rendered, this is not always
the same time as the wallclock time when rendering the message, so it
needs to be stored in the message.
widget.py: Add the two new widgets
_message.py: record system time when a message is created.
|
|
|
|
|
|
|
|
|
|
| |
The idea of a sequence number/ID is to tie together all messages
associated with a given timed activity, to make performance
analysis easier.
_context.py: Add sequence number with atomic increment
_widget.py: SequenceID widget, which displays this value
_message.py: sequence_id variable storing the sequence for a message.
|
| |
|