Commits on Source (9)
-
Tom Pollard authored
_context.py: Add cache_buildtrees global user context, the default of which is set to by default to 'always' via the addition of cache-buildtrees to userconfig.yaml cache group. 'failure' & 'never' can be given as valid options. app.py & cli.py: Add --cache-buildtrees as a bst main option, which when passed with a valid option can override the default or user defined context for cache_buildtrees. tests/completions/completions.py: Update for the added flag.
-
Tom Pollard authored
not _cached_sucess() could resolve to true if the element wasn't cached at all. switch to _cached_failure() to ensure condition reflects expected artifact state
-
Tom Pollard authored
Artifacts can be cached explicitly with an empty `build tree` when built via the cli main options or user config for all or only successful build artifacts. Default behaviour is to still create and cache all expected buildtrees. element.py: _cache_artifact() Check if context for cache_buildtrees has been set to always or failure with a corresponding build result, if not skip attempting to export the build-root. Element types without a build-root are cached with an empty buildtree regardless. Update _stage_sources_at() to warn the user that the buildtree import is empty. tests/integration: Add test to artifact.py for the optional caching of buildtree content from bst build. Rename build-tree.py to shellbuildtrees.py to reflect included test cases, add test for empty buildtree warning and failure option. NEWS: Add entry for new option.
-
Jürg Billeter authored
Optional creation of buildtrees Closes #896 See merge request !1135
-
Jürg Billeter authored
Resolving symlinks during staging causes various issues: * Split rules may not work properly as the resolved paths will differ depending on whether another artifact with a directory symlink has been staged in the same root directory or not, e.g., as part of compose. * The order of symlinks in file lists is difficult to get right to guarantee consistent and predictable behavior as paths in a file list might rely on symlinks in the same file list. See #647 and #817. * Staging order differences can lead to surprising results. See #390. * Difficult to properly support absolute symlinks. Absolute symlinks are currently converted to relative symlinks, however, this doesn't always work. See #606 and #830. This will require changes in projects that rely on the current behavior. However, the changes are expected to be small and are often a sign of buggy element files. E.g., elements that don't fully obey `bindir` or `sbindir` variables.
-
Jürg Billeter authored
This matches the change in utils._process_list(). This also removes the _Resolver class as it is now unused. We may want to support controlled symlink resolution in the future, in which case the _Resolver class can be resurrected from this commit.
-
Jürg Billeter authored
Copy symlinks as they are, absolute or relative. We no longer resolve symlinks when copying files, which makes this safe.
-
Jürg Billeter authored
-
Jürg Billeter authored
Showing
- NEWS 12 additions, 0 deletionsNEWS
- buildstream/_context.py 8 additions, 1 deletionbuildstream/_context.py
- buildstream/_frontend/app.py 2 additions, 1 deletionbuildstream/_frontend/app.py
- buildstream/_frontend/cli.py 5 additions, 1 deletionbuildstream/_frontend/cli.py
- buildstream/_versions.py 1 addition, 1 deletionbuildstream/_versions.py
- buildstream/data/userconfig.yaml 9 additions, 0 deletionsbuildstream/data/userconfig.yaml
- buildstream/element.py 30 additions, 13 deletionsbuildstream/element.py
- buildstream/storage/_casbaseddirectory.py 3 additions, 186 deletionsbuildstream/storage/_casbaseddirectory.py
- buildstream/utils.py 22 additions, 90 deletionsbuildstream/utils.py
- tests/cachekey/project/elements/build1.expected 1 addition, 1 deletiontests/cachekey/project/elements/build1.expected
- tests/cachekey/project/elements/build2.expected 1 addition, 1 deletiontests/cachekey/project/elements/build2.expected
- tests/cachekey/project/elements/compose1.expected 1 addition, 1 deletiontests/cachekey/project/elements/compose1.expected
- tests/cachekey/project/elements/compose2.expected 1 addition, 1 deletiontests/cachekey/project/elements/compose2.expected
- tests/cachekey/project/elements/compose3.expected 1 addition, 1 deletiontests/cachekey/project/elements/compose3.expected
- tests/cachekey/project/elements/compose4.expected 1 addition, 1 deletiontests/cachekey/project/elements/compose4.expected
- tests/cachekey/project/elements/compose5.expected 1 addition, 1 deletiontests/cachekey/project/elements/compose5.expected
- tests/cachekey/project/elements/import1.expected 1 addition, 1 deletiontests/cachekey/project/elements/import1.expected
- tests/cachekey/project/elements/import2.expected 1 addition, 1 deletiontests/cachekey/project/elements/import2.expected
- tests/cachekey/project/elements/import3.expected 1 addition, 1 deletiontests/cachekey/project/elements/import3.expected
- tests/cachekey/project/elements/script1.expected 1 addition, 1 deletiontests/cachekey/project/elements/script1.expected