Commits on Source (49)
-
See #783
-
Tristan Van Berkom authored
git: warn about checkout submodules by default See merge request !983
-
Jonathan Maw authored
This is required because if there are projects with the same name loaded, that have elements in the same path, with the same contents, they are considered the same, despite actually belonging to different Projects. This fixes buildstream issue #795
-
Test required to close #795 - We should be able to build a project which refers to the same junction twice, but with two different filenames.
-
Jürg Billeter authored
_yamlcache.py: Use a project's junction name if present Closes #795 See merge request !980
-
Tristan Van Berkom authored
Commit 3fa79d8d, part of an initiative for caching of the failed builds, introduced a call to Element._update_state() after a job completes and before entering the error handling harness intended for handling plugin raised errors. Element._update_state() can result in triggering plugin code to run, so this is incorrect, and causes raised errors to crash BuildStream if they happen here. After analyzing the code, it appears that this additional call to Element._update_state() is unneeded, and was only added because the state needs to be updated for a failure as well as a success. Instead, we now have the BuildQueue call Element._assemble_done() unconditionally, regardless of whether the build was successful or not, which has the same effect and also reads better. In addition, added a FIXME comment that we are still conditionally updating the artifact cache size from BuildQueue.done() only if the build is successful, which is incorrect because failed builds also increase the local artifact cache size - to fix this we need to communicate the added artifact size through Element._assemble() regardless of whether the build succeeded or failed.
-
Tristan Van Berkom authored
_scheduler/queues/queue.py: Don't call update state outside of error handling harness See merge request !988
-
Valentin David authored
Instead of tag information being fetched which can change with time, they are tracked and saved in the projects.refs/.bst. Then we re-tag automatically the closest tag so that `git describe` works and is reproducible. This new feature is opt-in with the new `track-tags` configuration, and must be used to fix modules which are broken by our new policy of omitting the `.git/` repository when staging git sources. This fixes issue #487
-
Valentin David authored
-
Tristan Van Berkom authored
Track of git tags and save them to reproduce minimum shallow repository Closes #487 See merge request !906
-
Raoul Hidalgo Charman authored
-
Raoul Hidalgo Charman authored
In element, platform asks for host os and architecture to default to when SandboxConfig is initialised. This changes element cache keys so those have been updated in the tests.
-
Raoul Hidalgo Charman authored
Also update tests to be consistent with this
-
Raoul Hidalgo Charman authored
These are contained within the platform field.
-
Raoul Hidalgo Charman authored
-
Raoul Hidalgo Charman authored
Same format as OptionArch tests, but with OS's.
-
Raoul Hidalgo Charman authored
-
Raoul Hidalgo Charman authored
o _platform/linux.py: Add linux32 flag to send to sandbox bwrap when the build arch is x86-32 and the machines arch is x86-64 or similarly with aarch32 and aarch64. o sandbox/_sandboxbwrap.py: Use flag passed to start bwrap command with linux32 if set.
-
Raoul Hidalgo Charman authored
-
Raoul Hidalgo Charman authored
-
Raoul Hidalgo Charman authored
-
Jürg Billeter authored
Execution environment reqs Closes #775 See merge request !969
-
Raoul Hidalgo Charman authored
Get cascache.py to use this
-
Raoul Hidalgo Charman authored
Stops unneccesary pushing of builds that have already been built, just checks the action cache to begin with. Fixes #628
-
Raoul Hidalgo Charman authored
The endpoint may not necessarily be the same as execution-service endpoint. Part of #628
-
Raoul Hidalgo Charman authored
Part of #628
-
Raoul Hidalgo Charman authored
Remote-execution client flow optimisation Closes #628 See merge request !982
-
Tristan Van Berkom authored
Instead of duplicating the whole test body, run it twice while checking for a warning or an error depending on the parameter.
-
Tristan Van Berkom authored
This also ensures it is exposed via the main buildstream __init__.py file, fixes the imports of CoreWarnings, and adjusts the documentation links to point to the right place.
-
Tristan Van Berkom authored
Now the commands have documentation linkability so we can link to them when referring to them anywhere in the docs. This reference was previously referring to a bogus non-existent `build-stream track`, maybe this dates way back to the days before we named the frontend `bst`.
-
Tristan Van Berkom authored
Fixes the configurable warning part of this to properly link to the project.conf documentation describing what configurable warnings actually are. Also fix the plugin raise the actual configurable warning which it advertizes that it raises; which is 'inconsistent-submodule', not 'inconsistent-submodules'.
-
Tristan Van Berkom authored
Change 'INCONSISTENT_SUBMODULE' for 'WARN_INCONSISTENT_SUBMODULE' to make things a bit more readable and comprehensive.
-
Tristan Van Berkom authored
Misc cleanups See merge request !993
-
Tristan Van Berkom authored
This is guaranteed to be called only once for a given session once the sources are known to be Consistency.CACHED, if source tracking is enabled in the session for this source, then this will only be called if the sources become cached after tracking completes.
-
Tristan Van Berkom authored
o Unlisted submodule warning Now the git plugin will issue a configurable warning if a submodule exists and is used (checking out the submodule is not disabled), but is not specified in the source configuration. o Invalid submodule warning Now the git source plugin will issue a warning if the configuration specified a submodule which does not exist in the underlying git repository. As a side effect, this patch also changes the flow control of the git plugin such that submodules which are explicitly set to not be checked out, are also not fetched but instead ignored completely.
-
Tristan Van Berkom authored
Now that we have Source.validate_cache(), this is a better place to emmit the ref-not-in-track warning, since it will be emmitted at the earliest opportunity and not only at Source.stage() or Source.init_workspace(). This also allows us to remove the `self.tracked` local state, and cleanup some convoluted calling paths, removing some unnecessary parameters from the usual codepaths and making the plugin overall more readable.
-
Tristan Van Berkom authored
A function for removing paths from a git repo, can also be used to remove submodules.
-
Tristan Van Berkom authored
o Test that it is not triggered in show before fetch, because we don't know about the unlisted submodules yet o Test that it is triggered by a fetch command o Test that it is triggered by `show` after having completed a fetch command, since now we have the repository and know about the unlisted submodule o Test all of this under warning or error conditions (parameterized for fatal-warnings)
-
Tristan Van Berkom authored
o Test that it is not triggered in show before fetch, because we don't know the submodules yet so we cannot know if they are valid or not. o Test that it is triggered by a fetch command o Test that it is triggered by `show` after having completed a fetch command, since now we have the repository and know which specified submodules are invalid o Test all of this under warning or error conditions (parameterized for fatal-warnings)
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
Implement submodule warnings See merge request !996
-
Jonathan Maw authored
-
Jonathan Maw authored
Fix bst source-checkout not working with open workspaces Closes #807 See merge request !997
-
Tristan Van Berkom authored
This allows specifying whether or not the code believes a None value is acceptable if explicitly expressed to be None in the YAML. A previous patch 3ba544b8 changed the behavior to accept None for all values across the board, along with allowing explicitly setting the `default_value` to `None` which caused the code to be much more readable (this was the main motivation of the patch, but it had the side effect of allowing None for everything). In the majority of cases we load YAML however, it either has a value or it is not specified in the YAML, and None is hardly ever acceptable to be explicitly specified (it may be in the case you want to override something with nothing in the YAML, but it is the edge case). This had the side effect of causing unexpected crashes where the YAML specifies an empty dictionary for instance. Instead of forcing the caller to handle a possible None value, give the choice to the caller if they really want to accept a None value, and raise the LoadError otherwise. This fixes issue #803, which is a crash due to receival of an unexpected None value through _yaml.node_get()
-
Tristan Van Berkom authored
Allow plugins to conveniently leverage the new `allow_none` parameter, and have Plugin.node_get_member() raise a LoadError in the usual case where None is not an acceptable value to be explicitly set in the user provided YAML.
-
Tristan Van Berkom authored
This adds a regression test for issue #803
-
Tristan Van Berkom authored
Only optionally allow None values in user provided YAML Closes #803 See merge request !999
-
Fix #530 - Extract free space computation in a function for easier mocking - Mock space computation during cache quota tests - Mock cache size during cachque quota tests - Add two more tests when the configuration would require to much storage space
Showing
- NEWS 4 additions, 0 deletionsNEWS
- buildstream/__init__.py 1 addition, 1 deletionbuildstream/__init__.py
- buildstream/_artifactcache/artifactcache.py 16 additions, 4 deletionsbuildstream/_artifactcache/artifactcache.py
- buildstream/_artifactcache/cascache.py 1 addition, 4 deletionsbuildstream/_artifactcache/cascache.py
- buildstream/_loader/loader.py 1 addition, 1 deletionbuildstream/_loader/loader.py
- buildstream/_options/optionarch.py 2 additions, 3 deletionsbuildstream/_options/optionarch.py
- buildstream/_options/optionos.py 41 additions, 0 deletionsbuildstream/_options/optionos.py
- buildstream/_options/optionpool.py 2 additions, 0 deletionsbuildstream/_options/optionpool.py
- buildstream/_platform/linux.py 30 additions, 3 deletionsbuildstream/_platform/linux.py
- buildstream/_platform/platform.py 38 additions, 0 deletionsbuildstream/_platform/platform.py
- buildstream/_platform/unix.py 10 additions, 1 deletionbuildstream/_platform/unix.py
- buildstream/_project.py 1 addition, 1 deletionbuildstream/_project.py
- buildstream/_scheduler/queues/buildqueue.py 11 additions, 5 deletionsbuildstream/_scheduler/queues/buildqueue.py
- buildstream/_scheduler/queues/queue.py 0 additions, 1 deletionbuildstream/_scheduler/queues/queue.py
- buildstream/_stream.py 1 addition, 1 deletionbuildstream/_stream.py
- buildstream/_versions.py 1 addition, 1 deletionbuildstream/_versions.py
- buildstream/_yaml.py 4 additions, 3 deletionsbuildstream/_yaml.py
- buildstream/_yamlcache.py 30 additions, 6 deletionsbuildstream/_yamlcache.py
- buildstream/element.py 12 additions, 5 deletionsbuildstream/element.py
- buildstream/plugin.py 22 additions, 43 deletionsbuildstream/plugin.py
buildstream/_options/optionos.py
0 → 100644