| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Fixes #424
|
|
|
|
|
|
|
|
|
|
|
|
| |
o Now the page titles are declared in plugins, allowing for
a more descriptive ToC
o Makefile and plugin.rsttemplate updated to not produce the title,
to no longer use `:orphan:` for plugin pages, and to ignore any
private modules in the plugin directories.
o Interestingly, now the docs will fail to build if you add
a new plugin and forget to add it to the documentation.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Plugins set their attributes in configure(), because the
constructor is not public API.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
compose plugin including paths still reachable through following of
symbolic links.
Keeping reachable paths through following of symbolic links in
manifest. Can lead to ENOENT error when copying the file if target
directory of a symbolic link is not yet created. The file is anyway
copied since the real path of the file is also in the manifest.
|
|
|
|
|
|
|
|
|
|
| |
o Some things changed in master since this patch, notably the
keyword only arguments have changed
o Enhanced the user feedback to mention removed, added and modified
files resulting from running integration
o Dont silence messages while integrating the sandbox
|
|
|
|
| |
Fixes issue #147
|
| |
|
| |
|
|
|
|
|
|
| |
Instead use BST_STRICT_REBUILD and follow a new pattern we're
using for any class attributes used for the plugin to communicate
static data back to the core.
|
|
|
|
|
|
|
|
| |
Using the new enhanced Element API for staging, allow the
user to specify domains to exclude as well as domains to
include.
Fixes issue #78
|
| |
|
| |
|
|
|
|
|
|
| |
Public data is now included when generating an element's cache key. Due
to this it is no longer necessary to include the split rules of
dependencies in the compose element's cache key calculation.
|
|
|
|
| |
This is just a bit safer than the change proposed in MR 31.
|
| |
|
|
|
|
|
|
| |
Instead of only moving over *added* files into the composition,
also move over any files which were *modified* by running integration
commands into the composition.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This iterates over the elements dependencies and stages them somewhere
in a sandbox.
This is especially interesting because of the added warnings it gives
you about the file overlaps and ignored files which would otherwise
overwrite non-empty directories.
Also updated build and compose elements to use this in place of
manually looping.
|
|
This creates a selective composition of its dependencies.
|