| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
Document here in terms of what the BuildElement does to implement
the abstract Element methods.
|
|
|
|
|
| |
Added new Abstract Methods section here, and rearranged sources
such that abstract methods are on top.
|
|
|
|
|
| |
Added heading section describing the abstract methods, and
moving the abstract methods to the top of the class.
|
|
|
|
|
|
|
|
| |
Adding "Abstract Methods" section indicating what implementors
have to implement.
Also fixed some inconsistencies, and moved the abstract methods
to the top of the class.
|
|
|
|
|
| |
This extra line shows which reports will be combined, which helps us
to more quickly debug problems in the coverage job of the .gitlab-ci.yml
|
| |
|
|
|
|
| |
So they show in order nicely in the gitlab CI UI
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
This ensures their state will be updated, it is especially important
for sourceless elements which are scheduled to be tracked, like stack elements.
This fixes a regression from my previous refactor or Sources
which added Element._tracking_done()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This disaster was introduced in fece8cc81e8d8412e32c6667682a33e7d2f9dafe
When doing `bst build --track`, we were:
o first scheduling every element to be tracked
o later filtering out the cross junction elements
o finally asserting consistency state, which would trigger
an error because we previously scheduled for tracking.
Fixed this by moving all code which resolves elements to track
into Pipeline.initialize(), and removing special element list handling
from the individual build/fetch/track commands.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The terminator context will only clean up on a signal,
so if another exception causes context manager cleanup
then unmount won't be called unless it's part of another context manager
or is wrapped in a try block's except or finally.
Everywhere else's unmounts are handled by delegating to another context manager
but these were what needed to be fixed.
The change in buildstream/_fuse/mount.py would cause lockups
since the build worker process still having a subprocess
blocked its termination from completing
which in turn caused the pipeline manager process to block indefinitely on it.
|
|
|
|
| |
default
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch makes cross junction tracking disabled by default, which
was the initial intention when landing project.refs but never got around
to doing this (intended to get addressing of junctioned elements via
command line sorted first, but didnt happen).
This adds the following options to enable cross-junction tracking:
o bst build -J / --track-cross-junctions
o bst fetch -J / --track-cross-junctions
o bst track -J / --cross-junctions
This also fixes `bst fetch --track` which had a bug, it was avoiding
to track and fetch elements which are in a `cached` consistency state,
which is wrong when `--track` is specified.
This also updates some test cases which were broken by
this change.
This fixes issue #354
|
|
|
|
|
|
| |
Added required size_request() method to new MessageOrLogFile() widget.
This came up in merge request !377
|
| |
|
|
|
|
|
| |
Now that we've restructured the artifact metadata into
separate files, we need to rev the artifact version.
|
|
|
|
|
|
|
|
| |
Recently after a refactor we kept the Source adding workspace keys
to the source keys because, now clean this up to have the workspace
key added directly in the Element cache key calculation.
This breaks cache keys.
|
|
|
|
|
|
|
|
|
|
| |
o Store the artifact.yaml into 4 separate files now
o Only load on demand what is needed at a given time
o Add local caching for what was loaded, ensuring we never redundantly load metadata
This breaks artifact format and will require an artifact revision
This should improve performance for issue #294
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
shell
Test both in regular `bst shell --build`, and on a failed build sysroot
with `bst shell --sysroot`, the latter being the semantic used when debugging
a failed build.
This guards against regressions of issue #346
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As reported in regression #346, since we started mounting the workspaces
we now fail to debug build failures for workspaces, the shell command
no longer sees the workspaces files to debug.
As the failed sysroot represents a very particular build failure, it
is incorrect to attempt to remount a workspace again after a failed
build, as the workspace files may have changed since the build.
Instead, in the case of a build failure on a workspaced element, we
copy the files from the workspace in place (while automatically preserving
the mtimes and everything, as utils.safe_copy() does).
When we implement failed build artifacts, this case will have to be
handled in a very similar way, too.
This fixes issue #346
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch makes the child process send any workspace state back
to the main process and saves it there directly before processing
the result of a build job, such that workspace modifications in
child tasks work transparently and no special care needs to be taken
to save them except when doing so in the main process.
Also this removes the line where we update workspace data at staging
time.
This fixes issue #352
|
|
|
|
|
| |
A helper function to identify if we are running in the main process
or not.
|
|
|
|
|
|
|
|
| |
This takes a serialized workspace dictionary as understood
by Workspace.from_dict() and created by Workspace.to_dict()
Further, this adds a Workspace.differs() method to compare
the state of two workspace instances.
|
|
|
|
|
| |
Also streamline the instantiation code paths to layer the yaml
parsing on top of simple dictionary deserialization.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This makes workspaces more cleanly separated from everything else.
o Removed some methods from Workspace()
o Added Element._open_workspace() to initialize workspaces on
sources
o Cleanup some code in the pipeline
o Have the App() call Element._open_workspace() instead of Workspace.open()
|
|
|
|
| |
I added this in the last refactor and forgot to remove it.
|
|
|
|
|
|
|
| |
workspace
This was previously only working for added or removed files and
broken for modified files.
|
|
|
|
| |
This was regressed in the refactor done in commit f761140f
|
|
|
|
| |
And Source no longer has any __workspace handle.
|
|
|
|
|
|
| |
source
And considering the workspace related edge cases in Element instead of Source.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This removes the scheduled state of tracking from Sources, as
this is really an element wide thing.
To be consistent with assembly, now this comes with:
o Element._schedule_tracking()
o Element._tracking_done()
o Element.__tracking_scheduled
o Element.__tracking_done
Updated the TrackQueue() to call Element._tracking_done() similarly
to how we have BuildQueue() call Element._assemble_done().
|
| |
|
|
|
|
|
|
|
| |
Element
Workspaces are now element wide, so consistency edge cases must
be handled at the element level instead of the source level.
|
|
|
|
|
|
| |
This was removing a file from the workspace, building, checking out,
and then asserting that the file is *still gone* in the workspace,
ignoring the same file in the checkout.
|
| |
|