| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Check that lazy variable resolution allows using variables
in junction definitions which would not successfully resolve if
we needed to resolve synchronously.
|
|
|
|
|
|
|
|
| |
Variables are resolved on demand until Variables.check() is explicitly called,
allowing junctions to use variables without requiring that they be completely
resolved.
Approach is courtesy of Valentin David.
|
|
|
|
|
| |
Ensure that we get the expected provenance when expanding a variable
included in an overlap whitelist entry.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Test scenarios where a junction needs to resolve variables
in order to configure a subproject, but where some other variables
may be derived from the same subproject.
In this scenario we allow partial resolution of variables
for junction elements.
* Enhanced the undefined variables and circular reference tests
to also check for the expected provenances.
* Test for deep variable resolution
Test variable indirection with 50, 500 and 5000 variables:
* 50 - tests generally large indirections in the recursive algorithm,
which is limited to 200 recursions
* 500 - tests that the non-recursive algorithm works for successful
outcomes and not only for error resolution
* 5000 - tests that the iterative algorithm works and ensures it
is not discarded, as a recursive algorithm cannot be implemented
to support this depth with python (which limits itself to
merely 1000 stack frames).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Main enhancements here include:
* Support for deeply nested variable declarations, removing the
limitations of the recursive variable resolution algorithm.
We were unable to achieve equal performance with the iterative
resolution algorithm, so we now have the recursive approach as
the fast path and only support 200 recursions with this approach
before falling back on the iterative code path, which will support
deep variable resolution and take care of error reporting.
* Better error reporting for undefined variables.
Variables.subst() now requires a ScalarNode and not a simple `str`,
making it more difficult for the core to substitute an undefined
variable without providing the provenance of where that value
expression was declared.
Code changes:
* _variables.pyx: Complete rewrite
* exceptions.py: Added new LoadErrorReason.CIRCULAR_REFERENCE_VARIABLE
* element.py: Pass ScalarNode to Variable.subst() when substituting overlap
whitelists.
|
|\
| |
| |
| |
| | |
element.py: don't use timed activity for staging every artifact
See merge request BuildStream/buildstream!1968
|
|/
|
|
|
| |
Staging now takes very little time, so we have two lines per artifact
with no benefit. Use a STATUS line instead.
|
|\
| |
| |
| |
| | |
Remove the suggestion that BuildGrid can be used as an artifact server
See merge request BuildStream/buildstream!1998
|
|/
|
|
|
|
|
|
|
|
| |
BuildGrid's CAS can be used as artifact storage, but BuildGrid no longer
supports being used as an Artifact Cache, since it doesn't implement the
new proto-based approach to artifacts.
This commit makes this current situation clear in the docs, rather than
incorrectly suggesting the use of BuildGrid for the `index` and `both`
cache types.
|
|\
| |
| |
| |
| | |
.gitlab-ci.yml: Minor spring cleaning
See merge request BuildStream/buildstream!1996
|
| |
| |
| |
| | |
The buildstream user was previously created but was not used.
|
|/
|
|
|
| |
This variable is undefined, and was probably missed during some previous
cleanup. At present, this acts as a no-op.
|
|\
| |
| |
| |
| | |
Remove Aarch64 from overnights
See merge request BuildStream/buildstream!1994
|
|/
|
|
| |
This stage has been removed as we dont have docker images for it any more.
|
|\
| |
| |
| |
| | |
loader.py: use the full name of the element when looking up a workspace
See merge request BuildStream/buildstream!1971
|
|/
|
|
|
| |
This fixes a bug where buildstream would ignore the opened workspace on a
cross-junction element.
|
|\
| |
| |
| |
| | |
_platform/platform.py: Remove outdated comment
See merge request BuildStream/buildstream!1995
|
|/
|
|
|
|
|
|
| |
"Preferred" sandboxes used to be a thing when we had sandbox
implementations in BuildStream Core.
This should probably have been removed at the same time as dropping the
notion of preferred sandboxes, but that was likely an oversight.
|
|\
| |
| |
| |
| |
| |
| | |
Fix including of files across linked junction boundaries
Closes #1359
See merge request BuildStream/buildstream!1993
|
| |
| |
| |
| | |
boundaries
|
| |
| |
| |
| |
| |
| |
| | |
link elements need to be treated the same way as junctions in the
load process.
This fixes issue #1359
|
|/ |
|
|\
| |
| |
| |
| |
| |
| | |
Test freedesktop-sdk against buildstream2 in CI
Closes celduin/bsps/bst-boardconsumption#21 and #1334
See merge request BuildStream/buildstream!1987
|
|/
|
|
|
|
| |
Use the current 'main' bst2 branch of freedesktop-sdk, and use tag
1.93.4 of bst-plugins-experimental (contains an important fix for
flatpak_image.py)
|
|\
| |
| |
| |
| | |
doc/main_glossary.rst: Fix formatting of .bst file reference
See merge request BuildStream/buildstream!1974
|
|/
|
|
|
| |
One of the references to the "`.bst` file" term was formatted
incorrectly, and was missing a period.
|
|\
| |
| |
| |
| | |
Update bst-plugins-experimental to 1.93.4
See merge request BuildStream/buildstream!1991
|
|/
|
|
| |
This removes the 'ostree' extra and some build dependencies
|
|\
| |
| |
| |
| | |
fix tab-completion: hardcode default min version
See merge request BuildStream/buildstream!1989
|
|/
|
|
|
|
|
| |
Hardcodes the default min version as "2.0", instead of using a function.
(The function was causing an ImportError during tab completion,
because it attempts to import "__version__", which isn't available
at tab completion time.)
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
'master'
Don't strip '.bst' from user-supplied checkout dir
Closes #1361
See merge request BuildStream/buildstream!1992
|
|/
|
|
|
|
|
|
| |
Allows user to supply a directory name ending in '.bst' for "bst
artifact checkout", without buildstream removing '.bst' from the end.
(It's only supposed to remove '.bst' if the user didn't supply a
directory name, and buildstream is auto-generating a name based on the
target name.)
|
|\
| |
| |
| |
| | |
coding_guidelines.rst: Update documentation around type annotation
See merge request BuildStream/buildstream!1988
|
|/
|
|
|
|
|
|
| |
After
https://lists.apache.org/thread.html/r99119ddf038b3baa63afa3edf82ca28104f02550e6424dc5f14cb360%40%3Cdev.buildstream.apache.org%3E,
we now allow mypy in any part of the codebase.
- Also update previous documentation about typing public API
|
|\
| |
| |
| |
| | |
tar.py: Don't import 'dev' nodes
See merge request BuildStream/buildstream!1990
|
|/
|
|
|
| |
This filters out all the 'dev' nodes when extracting tar files since
they are not supported by any of our backends anyways
|
|\
| |
| |
| |
| | |
simplify stream interactions (Remove Notifications)
See merge request BuildStream/buildstream!1985
|
| |
| |
| |
| | |
Call directly the relevant methods from the stream to the scheduler
|
| |
| |
| |
| |
| | |
This removes all notifications left coming from the scheduler, and
replaces them by callbacks
|
| |
| |
| |
| |
| | |
The stream is itself calling the `run` method on the scheduler, we don't
need another indirection
|
| |
| |
| |
| |
| | |
We are calling the scheduler, and it returning correctly already tells
us this.
|
| |
| |
| |
| |
| | |
We are calling the scheduler, and it returning correctly already tells
us this.
|
| |
| |
| |
| |
| | |
Stop using 'Notifications' for retries, the state is the one handling
the callbacks required for every change in status of elements
|
| |
| |
| |
| |
| | |
This moves all implementations of 'start_time' into a single place
for easier handling and removing roundtrips of notifications
|
| |
| |
| |
| |
| | |
The State is the interface between both, there is no need to do multiple
round-trips to handle such notifications
|
|/
|
|
|
| |
The messenger should be the one receiving messages directly, we don't
need this indirection
|
|\
| |
| |
| |
| | |
app.py: Remove unnecessary operation in _message()
See merge request BuildStream/buildstream!1984
|
| | |
|
|/
|
|
|
| |
This copies a dictionary before it gets expanded, which is not necessary
since the expansion will not keep the dictionary as is
|
|\
| |
| |
| |
| | |
Add `bst source push` command
See merge request BuildStream/buildstream!1977
|