| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
Previously "elements" was hard-coded as the path for the elements
directory whereas it was supposed to be configurable via the
`element_path` option to `init_project()`. This led to incorrect
behavior when `bst init` was run `--element-path` option.
Also, extend tests to test the creation of elements directory.
Fixes #398.
|
|
|
|
|
|
| |
With the dynamic plan using `_set_required()` we can avoid
pulling/fetching/building unneeded elements even if elements are being
tracked.
|
|
|
|
| |
This is in preparation for moving away from summary files.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
This removes some additional initialization code from Pipeline().
Some symbols have changed here, the initialization is now called
from Stream(), and a test case was also adjusted for this.
|
|
|
|
|
|
| |
This shifts the whole responsibility of interpreting command line
targets etc to the Stream() object itself. With this commit, the
Pipeline() truly becomes slaved to the Stream().
|
|
|
|
| |
Use Stream error for Stream errors.
|
|
|
|
|
|
| |
We have machine readable errors for this purpose, and the
strings happen to change causing tests to break if we test the specific
UI (reported error strings are UI).
|
| |
|
| |
|
|
|
|
|
|
| |
Leave this error to be handled by preflight.
Updated test case to expect the new ElementError instead of a LoadError
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Using setuptools_scm had a couple of bad problems:
o Unexpected versioning semantics, setuptools_scm would
increment the micro version by itself in the case that
we derive a version number from something that is not a tag,
making the assumption that we are "leading up to" the next
micro version.
People mostly dont expect this.
o When installing in developer mode, i.e. with `pip3 install --user -e .`,
then we were always picking the generated version at install time
and never again dynamically resolving it.
Many of our users install this way and update through git, so it's
important that we report more precise versions all the time.
This commit needs to make a series of changes at the same time:
o Adds versioneer.py to the toplevel, this is used by setup.py
for various activities.
This is modified only to inform the linter to skip
o Adds buildstream/_version.py, which is generated by versioneer
and gives us the machinery to automatically derive the correct version
This is modified only to inform the linter to skip
o Adds a .gitattributes file which informs git to substitute
the buildstream/_version.py file, this is just to ensure that
the versioning output would work if ever we used `git archive`
to release a tarball.
o Modifies setup.py and setup.cfg for versioneer
o Modifies utils.py and _frontend/cli.py such as to avoid importing
the derived version when running bash completion mode, we dont
derive the version at completion time because this can result
in running a subprocess (when running in developer install mode)
and is an undesirable overhead.
o Updates tests/frontend/version.py to expect changed version output
|
|
|
|
|
|
|
|
|
|
|
|
| |
o _projectrefs.py: Additional constructor option to choose the base name
o _project.py: Load two ProjectRefs objects, one for the junctions
o source.py: Load and save junctioned source refs with the appropriate ProjectRefs object
o tests: Updated some tests to expect junctions to be stored in junction.refs
This fixes issue #361
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
This guards against regressions of issue #367
|
| |
|
|
|
|
|
|
| |
!357 added support for closing multiple workspaces. Similarly, also
allow `bst workspace reset` to work on multiple workspaces, with `--all`
as a helper to reset all open workspaces.
|
|
|
|
| |
Guard against regressions of issue #364
|
|
|
|
| |
This guards against regressions of issue #292
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of having the pipeline preflight all sources separately
from elements, have the element preflight it's sources.
This is in order to simplify the shared code path for the pipeline
and the loader to use for instantiating elements.
Also updated tests to expect the new ElementError and SourceError
instead of the PipelineError which was raised for preflighting before.
|
|
|
|
| |
This is a part of issue #285
|
|
|
|
|
|
|
| |
This uses the build tool mode of cmake to have a single command that can call
either make or ninja.
I've also modified the tests to take the new commands into account
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
workspace
This was previously only working for added or removed files and
broken for modified files.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Since we want to react and start an interactive session when the
project.conf is missing, we need a more specific error to catch.
|
| |
|
|
|
|
|
|
|
| |
This comes with an interactive mode unless the project name is specified
on the command line.
This fixes issue #342
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
At present, it is only possible to close workspaces for elements one at
a time. This can become slightly tedious process when you have multiple
workspaces open and you want to close all of them, maybe because you
just finished working on a set of related elements.
Instead of accepting a single element, accept a list of elements as
argument for `bst workspace close`. Additionally, add `-a`/`--all`
option to close all workspaces.
Fixes #337 - Add option to close all workspaces.
|
| |
|
| |
|
| |
|
|
|
|
| |
This is sufficiently covered by other tests in tests/format/project.py
|
|
|
|
|
|
| |
Moved the old style project format tests into the new CLI based
directory in tests/format/ and converted to use the CLI fixture
for these tests.
|
|
|
|
|
|
|
|
|
|
| |
o Test that we get the expected error if the junction element
the pipeline refers to is inconsistent
o Test that the junction element is automatically fetched as
a part of the build phase
Both tests using both ref-storage modes
|
|
|
|
|
|
|
|
|
|
|
| |
o Test that we bail out with the expected errors when the
junction element in question is Consistency.INCONSISTENT
o Test that tracking the junction itself, causes a subsequent
show of the pipeline to not bail out anymore (tests that
tracking works and persists for a junction element).
Again these use both ref-storage modes.
|
|
|
|
|
|
|
|
|
|
| |
o This tests that a Consistency.RESOLVED junction will automatically be fetched
when `bst fetch` is run on a pipeline which refers to a junction.
o Further, it tests that a Consistency.INCONSISTENT junction will bail
out with the expected error message
Again testing with both ref-storage modes
|
|
|
|
|
|
|
|
|
|
| |
o Test error conditions for showing an unfetched junctioned project
o Test error conditions for showing an untracked junctioned project
Both tests check both modes of ref-storage.
This adds a new shared helper function `generate_junction`
|
|
|
|
| |
Make buildtrack.py and track.py share the same configure_project() helper.
|