| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
This is used by the platform to disable pushing explicitly in
the case that we're falling back to not using user namespaces, in
which case we dont entirely trust the artifacts we create.
|
|
|
|
| |
Part of the fix for #92
|
|
|
|
|
|
|
|
|
|
|
|
| |
Here we check if `bwrap --ro-bind / / --unshare-user --uid 0 --gid 0 whoami`
returns successfully and prints 'root', to check if we are indeed capable
of creating user namespaces on the host.
If we are unable, then we save that state in the platform allowing
buildstream to behave differently, and print an informative startup
warning about this.
This fixes issue #92
|
|
|
|
|
| |
Dont use the plugin which the message originates from, use the
plugin associated with the child task.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
We avoid printing regular start/success/status messages etc
at startup time in advance of the heading, this would introduce
a lot of noise while interrogating source plugins for consistency
state.
This patch holds on to important errors and warnings which might
be raised by core components at startup time, and prints them
immediately after printing the heading.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Attempting to compose a list property would result in an unhandled
exception:
AttributeError: 'CommentedSeq' object has no attribute 'get'
We now at least detect the situation and produce an exception that
the frontend will report neatly:
Error loading pipeline: element.bst [line 11 column 4]: Only values of type 'dict' can be composed.
I was getting this error from an attempt to conditionally extend the
sources list:
sources:
(?):
arch == "x86_64":
- url: http://example.com/x86_64
The correct way to do this is to move the conditional into the parent
dict, e.g.:
(?):
arch == "x86_64":
sources:
- url: https://example.com/x86_64
It would be nice if the error message could hint at how the user can do
what they want, but it doesn't seem possible in this case.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Profiling suggested that the cumulative time spent in os.path.relpath()
was the dominant cost of utils.list_relative_paths().
Try to call this only once per directory walked.
In Python 3.5, we can optimise further by using os.scandir() and
maintaining relative paths as we go.
|
|
|
|
|
|
|
| |
This is deadcode, except_ is already calculated before we get here.
Updated some internal comments to reflect this, and updated the frontend
to not pass the useless except_ parameter.
|
|
|
|
|
| |
These come exclusively from the frontend or _pipeline.py code, we just
avoid printing an element name or cache key for these messages.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead, use None as the unique ID.
This will help with messaging when we allow invoking multiple targets
and the element would have been ambiguous - this also consequently
fixes issue #137.
The reason for the hangs with #137 is because:
o When you --except a base element, reverse dependencies cannot calculate a cache key
o When you track, cache keys are intentionally reset at startup time, because
we know they are going to change
o At the end of tracking, we make one attempt to print the toplevel cache key
This operation is insanely expensive, because we never cache a cache key because
it logically cannot ever be resolved in this situation.
This fix is basically a workaround to the above.
|
| |
|
|
|
|
|
|
|
|
| |
This wont take any additional time because if there is
a remote artifact share configured in the pytest suite, it
can only be a locally created one - this makes the push/pull
tests work after recently making downloading of remote refs
optional for the sake of issue #140.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
o bst build
o bst push
o bst pull
o bst show --downloadable
This adds a `--downloadable` option to `bst show`, if this is
specified then buildstream will spend some time trying to download
the remote artifact share's refs and refresh the local downloadable
state.
This fixes #140
|
|
|
|
| |
Default is not to fetch them, we only need them in a few cases.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
It has been moved to an external repository.
|
| |
|
|
|
|
| |
This is an interim step for issue #131.
|
|
|
|
|
|
| |
First case simply asserts that prepending to configure-commands
from the project.conf works as intended, ensuring we dont regress
issue #127
|
|
|
|
|
|
|
|
|
|
|
| |
The element overrides are intended for later recomposition onto
the element type specific yaml files, so it is incorrect to assert
that array composition is complete at this stage.
Instead remove the element overrides and store those seperately
before making our final yaml assertions.
This fixes issue #127
|
|
|
|
|
|
|
|
|
|
| |
I was seeing messages like this:
Fetching artifact list from None
However, the artifact cache did have the correct pull URL set -- the
issue was that I had overridden it my own config, and the string we
sent to the ticker didn't take that override into account.
|
| |
|
|
|
|
| |
And also ensure that expression errors are reported with provenance.
|
|
|
|
|
| |
When using an undefined option in a conditional expression, buildstream
should error out and print a good message about it.
|
| |
|
|
|
|
| |
Ensure test cases dont have remnent exceptions from a previous test.
|
|
|
|
| |
default
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Deconstructed the default strip-commands to declare some objcopy and
strip arguments separately, so it's easier to override these in the
case that you are building with an older toolchain which does not
support compression of debug symbols (or if you want to strip them
with something in a more exotic way).
By default pass --compress-debug-sections to objcopy.
|
|
|
|
|
|
|
|
| |
When cache key tests fail, and when it is intentional that
the keys have changed, then run ./tests/cachekey/update.py
to update the keys.
This is also useful whenever adding new tests.
|
|
|
|
| |
This is so that we can use it in other contexts than running tests
|
| |
|
|
|
|
|
|
|
|
|
| |
Here would be the right place to test that an error is raised
when staging files to the build directory.
These files here, would be good for that purpose, however they
are just deadcode which somehow got added to the git history,
no tests use them.
|
|
|
|
|
|
|
|
|
| |
New tests only via the frontend cli, never mucking about with source APIs
directly, this whole directory needs to eventually be removed.
This test was also testing the wrong condition, it's okay that a source
stage to a non-empty directory, it's not okay that an element stages
it's group of sources to a non-empty directory.
|
|
|
|
|
| |
This is the correct place for the check, once for each element in
the overall source staging directory.
|
|
|
|
|
| |
This is the wrong place for the check, it needs to be done once
for the toplevel staging directory, not for each source.
|
|
|
|
|
| |
utils._force_rmtree() was overwriting it's path directory, and
then only recursively removing the last entry which was walked.
|
|
|
|
| |
After successful builds.
|
|
|
|
|
|
|
| |
For some reason, an undesired .eggs/ directory gets created
at times by the incomprehensible pip/setuptools machinery.
This makes sure it doesnt cause noise in our tests.
|
|
|
|
| |
environment
|
| |
|
| |
|