| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
Adds MessageOrLogFile widget, which contains the same functionality
previously used to display messages.
|
|
|
|
|
| |
This introduces junctions as a new kind of elements to allow
dependencies to cross project boundaries.
|
|
|
|
| |
Element and source factories use a project-specific search path.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This removes most of the usages of pkg_resources from the codebase, helping
the goal of getting rid of that completely.
With this change, version number is generated during install and embedded into
`__version__` which is then imported by root level `__init__`. From there,
it is used by other parts of the codebase when needed.
Generated `__version__` file is ignored and not tracked by git to prevent
unnecessary 'changes' messages and accidental commits of that file.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
o Now print the message itself on the same line in place of the abbreviated log file
o When reading back the last lines of the log file, prefix that
with an informative message about whence the log lines come,
showing the full unabbreviated log file.
o Fixed the behavior of read_last_lines() so that it works as
intended, problems were:
- Was prepending an additional newline when the log contains
more lines than we want to print
- Was not printing anything at all in the case we want to
print more lines than exist in the log
|
|
|
|
|
|
|
|
|
|
|
| |
Now we just assume that logging is turned on all the time, any
messages must now always go through the central context messaging
APIs.
As a side effect, we now send all output messages that
buildstream generates to stderr, leaving stdout only to
payload types of output, such as parsible `bst show` output,
the output of `bst workspace list` or `bst shell`.
|