| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
|
| |
The output of walk_dir() seemed to be inconsistent in how it traversed
symlinks. Presumably this is to do with differences in how the filesystem
return files. If we do an in-place sort of the list of files and directories
that we get, os.walk() will honour that order which should make the output
stable.
|
|
|
|
|
| |
This is a regression test for the issue raised here:
https://gitlab.com/BuildStream/buildstream/issues/270
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The logic for determining which files were removed by integration
commands was broken when dealing with files staged within symlink
directories.
This rather weird scenario is only possible because of the way
BuildStream layers artifacts. If artifact 1 contains a symlink from
`/sbin` to `/usr/sbin`, and artifact 2 is staged on top and contains
a file `/sbin/init`, then the resulting filesystem contains a file at
`/usr/sbin/init`.
The manifest used by the compose element is generated from the contents
of the individual artifacts, so it lists the original paths such as
`/sbin/init`, but would would not contain `/usr/sbin/init` as nothing
has processed the symlinks.
The path `/sbin/init` is valid inside the composed tree, but filesystem
traversals that don't follow symlinks will not report that path in their
results. The compose plugin would look for `/sbin/init` in the results
of `utils.list_relative_paths()`, find it missing, and would act as if
some integration command had removed the file. This meant it would not
end up in the results.
To fix this, I have inverted the logic that processes the results of the
integration commands. We now work through every path in the manifest
and check it against the results of the integration commands, rather
than the other way around, and if any path from the manifest doesn't
appear in the snapshot we assume that it has staged in a different
location due to symlinks.
See: https://gitlab.com/BuildStream/buildstream/issues/270
|
|
|
|
|
|
| |
This is an optimisation for the case where the compose element doesn't
do any splitting, and also brings 2 related code fragments closer to
each other.
|
|
|
|
|
| |
There is no significant order for the lists of added, removed and
modified files, so use an unordered set() to store the data.
|
| |
|
|
|
|
| |
Titles have 2 blank lines before them, and no blank lines after them.
|
| |
|
|
|
|
|
|
| |
_artifactcache/pushreceive.py: Wrap OSTreeReceiver.do_run in a
profiling domain.
_profile.py: Add 'ARTIFACT_RECEIVE' domain.
|
|
|
|
| |
Sections have 2 blank lines before them, and no blank line after them.
|
| |
|
|
|
|
|
|
|
|
|
| |
Seems this was not propperly rebased; libostree and bubblewrap requirements
are already there.
Also the paragraph about docker was removed in
commit f0b350f158ed14c97613dc22b83ed89759b8d255
This reverts commit 7854fc5037204474d16618c657a1cd1ca12c888e.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This uses the existing messaging system to report errors in the main
application as a BUG type. It requires the use of a global_app variable
which isn't ideal; this may be replaced in future. This partially addresses
issue #197.
Theoretically, an exception could occur before Scheduler.loop is set up,
hence the check for it when terminating all jobs.
NOTE: This was originally submitted by Jim MacArthur, and manually
reapplied after some refactoring took place.
|
| |
|
|
|
|
| |
Drop the happy welcome phrase with exclamation point.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
The required version is 0.1.2 based on the fact that we're using
--hostname and --remount-ro.
|
|
|
|
|
|
|
| |
This will give us an error if an instance attribute is ever
declared outside of the constructor, which usually constitutes
either a bug or a violation of the coding standard, rendering
code more difficult to read.
|
|
|
|
|
| |
This is in a derived Process from the standard lib, we add this
here because we are unsure about the constructor signature.
|
|
|
|
| |
in constructor
|
| |
|
| |
|
|
|
|
|
| |
Plugins set their attributes in configure(), because the
constructor is not public API.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This guards against regressions of issue #367
|
|
|
|
|
|
|
| |
Tell the pipeline to only track either 'none' or 'all'
PipelineSelection modes.
This fixes issue #367
|
|
|
|
|
| |
This informs the pipeline what PipelineSelection mode to use
for constructing the list of elements to track.
|
|
|
|
|
|
|
|
| |
Part of a slow, ongoing refactor to unmangle the pipeline into
something which just creates pipelines of elements for a centerpiece
to process.
This also renames Pipeline.deps_elements() -> Pipeline.get_selection()
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
Two empty lines before a section title, no empty line after the section title
|