| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit does the following:
* Move the section about rules on element naming to the beginning
of the document instead of the end.
Element names are probably the first thing you need to know about
elements, not the last.
* Expand this element naming section to also speak about element
addressing, and how to express element paths and how these
can be used across the boundaries of multiple junctions.
It helps to have a single place to discuss this and link to
in the documentation, instead of repetitively explaining in
multiple places that one must specify a filename relative
to a project's element path.
* Update documentation about dependencies to refer to the
element naming and addressing documentation.
* Update the documentation in the `link` and `junction`
elements to link back to the element name documentation.
|
| |
|
|
|
|
|
|
|
|
| |
* Test that we succeed to load links with full path targets
* Test that we get correct provenance information in errors when
linking to non-existing elements in existing subprojects, using
full paths.
|
|
|
|
|
|
|
|
|
|
| |
Added tests to cover:
* Successfully loading plugins with full paths in junction origins
* Failing to load missing plugins in sub-junctions which are successfully loaded
* Failing to load missing plugins in sub-junctions which are invalid and couldnt load
|
| |
|
|
|
|
|
| |
Need to consider only the last element of a path as the filename
while the rest of the path is a junction path.
|
|
|
|
|
| |
This is important for reporting errors due to missing files while
loading a junction.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit does the following:
* Moves the `get_loader()` implementation to a private `_get_loader()`
implementation again, without changing it.
* Replaces the public `get_loader()` method with a simple one which
parses the passed junction name and walks the `:` splits until
the ultimate loader is found (by calling _get_loader() internally).
* Removes an assertion in the Dependency constructor about having
multiple `:` in the element name, which is now allowed, and adjusts
the Dependency constructor to properly rsplit() the passed dependency
target from the right, storing the full junction path in dep.junction
and the target only in the dep.target.
* Adds missing `provenance` argument to Loader._parse_name(), ensuring
that the provenance of where a target name was found is propagated
through `get_loader()` and `_load_file()` preserving the original
provenance of a loaded element name.
|
|
|
|
|
|
|
|
|
|
|
| |
When opening up the possibility of loading the same junction twice,
it becomes possible to have multiple elements with the same name
following the current implementation logic which enforces that
you must have a toplevel junction to coalesce junctions and synchronize
their configuration.
Since we no longer coalesce junction names, we need to allow elements
to be reported in the UI with their full depth.
|
|
|
|
|
|
|
|
|
|
|
| |
When opening up the possibility of loading the same junction twice,
it becomes possible to have multiple elements with the same name
following the current implementation logic which enforces that
you must have a toplevel junction to coalesce junctions and synchronize
their configuration.
Since we no longer coalesce junction names, we need to allow elements
to be reported in the UI with their full depth.
|
|\
| |
| |
| |
| | |
Drop bwrap sandboxing backend
See merge request BuildStream/buildstream!1952
|
| |
| |
| |
| |
| | |
With the use of buildbox-run on all platforms, there is no longer any
platform-specific code in the Platform subclasses.
|
| |
| |
| |
| |
| |
| |
| | |
buildbox-run is the only local sandbox and there are no plans to add
other sandboxing backends in the future. New platforms can be supported
by new buildbox-run implementations without requiring any changes in
BuildStream.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
It is always true.
|
| |
| |
| |
| | |
Replaced by buildbox-run.
|
| |
| |
| |
| |
| | |
Without the SafeHardlinks FUSE filesystem there is no longer a need to
increase the open file limit.
|
| |
| |
| |
| | |
FUSE is no longer a blocker.
|
| | |
|
| | |
|
| |
| |
| |
| | |
The bwrap sandbox will be removed.
|
|/ |
|
|\
| |
| |
| |
| | |
Optimize variable flattening
See merge request BuildStream/buildstream!1949
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Verifying for variables (all used variables defined and no cycle) is
much faster than flattening them. It also uses much less memory. Only
`bst show -f "%{vars}"` requires to flatten all variables. For other
cases we can improve performance by only checking rather than
flattening.
Also flattening very nested variables could lead to very long lists of
empty strings. The memory usage for flattening could be a lot bigger
than the resulting value. Force flattening and caching every
variable definitions can improve intermediate memory consumption and
only consume memory of the size of the result.
Finally, an optimization allowed inifinite cycles leading to
segmentation fault. This was solved by simplifying the code.
|
|\
| |
| |
| |
| | |
update FD overnights
See merge request BuildStream/buildstream!1953
|
|/
|
|
| |
bst2 efforts are now concentrated on the `valentindavid/bst2` branch
|
|\
| |
| |
| |
| | |
Add new core `link` element kind
See merge request BuildStream/buildstream!1948
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This removes:
* The `target` feature from the junction plugin
* Special case code in the loader for the `target` feature
* The `target` related cases in tests/format/junctions.py
This also adjusts the `target` related documentation in
the `junction` element to suggest using a `link` element for
the purpose of using a subproject junction configuration to
access a common sub-subproject.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
This element acts as a symbolic link, it has no other configurations
other than to specify the element (or junction) to which it refers to,
either in the local project or in a subproject.
|
|/
|
|
|
| |
Within the _loader module, the LoadElement will need to use this
in order to resolve links.
|
|\
| |
| |
| |
| | |
_loader/loader.py: Remove useless line of code.
See merge request BuildStream/buildstream!1946
|
|/
|
|
|
|
|
|
|
| |
We were redundantly calling Loader._load_file() directly
before calling Loader.get_loader(), even though Loader.get_loader()
implicitly loads the file anyway.
To pass tests, we needed to fix get_loader() to pass provenance
along to Loader._load_file().
|
|\
| |
| |
| |
| | |
loader: removing the NO_PROGRESS object
See merge request BuildStream/buildstream!1947
|
|/
|
|
|
|
|
|
|
|
|
| |
While adding a mock task object to track progress in some loader
tests in commit 17144d84c2b63daf6e3aa9b42c6c773f134e8660, a new
`_NO_PROGRESS` object was added as an explicit marker to denote
that progress information should not be reported.
This complicates the code, None should be a sufficient value
for not reporting progress, while still permitting mock task
objects to capture progress if desired.
|
|\
| |
| |
| |
| | |
Support version specific configuration files
See merge request BuildStream/buildstream!1941
|
| | |
|
| | |
|
|/
|
|
|
|
|
|
|
|
| |
Allow users to keep separate buildstream.conf files in their
XDG_CONFIG_HOME for separate BuildStream versions, in case they
have BuildStream 1 and 2 installed.
Like other major version safeguards and warnings, this new
addition also supports future major versions if they should
appear.
|
|\
| |
| |
| |
| |
| |
| | |
element.py: Always expand public data's variables
Closes #1310
See merge request BuildStream/buildstream!1943
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes a bug introduced by d7d18c1a2e454c507afd9e1d3f1358639dd43871,
where public data integration commands and others would never get their
data expanded and would thus fail to run.
The previous however revelead a previous bug, where variables values in
public data of elements would not be part of the cache key of an element
or it's reverse dependencies, and thus, on variable change, rebuilds
would not happen when they would have been needed.
This ensures that all the public data is always resolved and part of the
element's cache key. This however will bring a rebuild of an element
whenever its integration commands variables change, which is simpler to
handle than to try to push that responsibility on reverse dependencies,
since public data can contain plugin-defined values.
|
|\
| |
| |
| |
| | |
cascache.py: Drop unnecessary FindMissingBlobs from _send_directory()
See merge request BuildStream/buildstream!1944
|
|/
|
|
|
|
| |
buildbox-casd `UploadMissingBlobs` will call `FindMissingBlobs` before
the actual upload. Having BuildStream call `FindMissingBlobs` as well
adds unnecessary overhead.
|