| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
| |
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.
|
|\
| |
| |
| |
| | |
.gitlab-ci.yml: Configure SAST analyzers
See merge request BuildStream/buildstream!1939
|
|/
|
|
|
| |
Disable flawfinder and eslint jobs as this repository contains no C or
JavaScript code to be analyzed.
|
|\
| |
| |
| |
| |
| |
| | |
element.py: Expand variables in sandbox config
Closes #1303
See merge request BuildStream/buildstream!1938
|
| | |
|
| | |
|
|/ |
|
|\
| |
| |
| |
| | |
doc/source/format_declaring.rst: Fixing spelling mistake
See merge request BuildStream/buildstream!1940
|
|/
|
|
|
| |
Making some examples more consistent with regards to indentation
of YAML, and fixing "recursice -> recursive" spelling mistake.
|
|\
| |
| |
| |
| | |
Introduce new `junction` plugin origin
See merge request BuildStream/buildstream!1935
|
| | |
|
| | |
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This way we split up the logic of how to load plugins from different
origins into their respective classes.
This commit also:
o Introduces PluginType (which is currently either SOURCE or ELEMENT)
o Reduces the complexity of the PluginFactory constructor
o Kills the loaded_dependencies list and the all_loaded_plugins API,
and replaces both of these with a new list_plugins() API.
Consequently the jobpickler.py from the scheduler, and the
widget.py from the frontend, are updated to use list_plugins().
o Split up the PluginOrigin implementations into separate files
Instead of having all PluginOrigin classes in pluginorigin.py, split
it up into one base class and separate files for each implementation,
which is more inline with BuildStream coding style.
This has the unfortunate side effect of adding load_plugin_origin()
into the __init__.py file, because keeping new_from_node() as
a PluginOrigin class method cannot be done without introducing a
cyclic dependency with PluginOrigin and it's implementations.
|
|\
| |
| |
| |
| | |
Restore dynamic build plan feature
See merge request BuildStream/buildstream!1926
|
| |
| |
| |
| | |
Make sure build-only dependencies are pulled only when necessary.
|
| |
| |
| |
| | |
This reverts commit aa25f6fcf49f0015fae34dfd79b4626a816bf886.
|
| |
| |
| |
| | |
This reverts commit 14e32a34f67df754d9146efafe9686bfe6c91e50.
|
|/
|
|
| |
This reverts commit 750aa60ab3809167ff14c479068a328dc477de3e.
|
|\
| |
| |
| |
| | |
Field-based node properties
See merge request BuildStream/buildstream!1918
|
| | |
|
| | |
|
| | |
|
|/ |
|
|\
| |
| |
| |
| | |
_loader/loader.py: Reoganized public/private methods
See merge request BuildStream/buildstream!1936
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
* This file had `clean_caches()` documented as public but
the function was actually private `_clean_caches()`: Moved this to
the end of the class in the private section.
* The `_get_loader()` was marked as private but is in fact public,
and used by the project to load cross junction include files.
This patch also updates `_includes.py` to call the public `get_loader()`
method instead of sneaking in and calling the private `_get_loader()` method
(while also removing one redundant line of code from the same function).
|
|\
| |
| |
| |
| |
| |
| | |
Improve handling of frontend crashes
Closes #1312
See merge request BuildStream/buildstream!1933
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
real_schedule()
In case queuing jobs results in jobs completing, we need to reset the
schedule handler at the beginning of the function and not after queueing
the jobs.
This fixes the failure to exit the main loop in #1312
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sending notifications causes potentially large bodies of code to run
in the abstracted frontend codebase, we are not allowed to have knowledge
of the frontend from this code.
Previously, we were adding the job to the active jobs, sending the
notification, and then starting the job. This means that if a BuildStream
frontend implementation crashes, we handle the excepting in an inconsistent
state and try to kill jobs which are not running.
In addition to making sure that active_jobs list adjustment and
job starting does not have any code body run in the danger window
in between these, this patch also adds some fault tolerance and assertions
around job termination so that:
o Job.terminate() and Job.kill() do not crash with None _process
o Job.start() raises an assertion if started after being terminated
This fixes the infinite looping aspects of frontend crashes at
job_start() time described in #1312.
|
|\
| |
| |
| |
| | |
node.pyx: Deep clone ScalarNode too
See merge request BuildStream/buildstream!1929
|
|/
|
|
|
| |
This ensures that when resolving variables, we do not overwrite the
values for a different element in the case we were using composition.
|
|\
| |
| |
| |
| |
| |
| | |
_frontend/profile: Use non-greedy search to substitute variables
Closes #1307
See merge request BuildStream/buildstream!1932
|
|/
|
|
|
|
|
|
| |
Use non-greedy search to ensure that we stop at the next closing brace.
Otherwise, for a string like `%{variable} {variable}`, the second
variable will also get substituted.
Fixes #1307.
|
|\
| |
| |
| |
| |
| |
| | |
Ensure there are no duplicates in Elements.dependencies()
Closes #1308
See merge request BuildStream/buildstream!1931
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
| |
When we are not recursing, `Element.dependencies()` uses a much more
light weight codepath since it just needs to print the direct
dependencies. However, this simple codepath was not accounting for
duplicates, in case something is both a build time and run time
dependency.
One way this manifested itself was in `bst show --format %{deps}`, but
it would also affect anything that was using this method to iterate on
the dependencies.
Fixes #1308.
|