| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The `directory` value determines where a source is staged within the
build root of an element, however, it does not directly affect
individual sources.
With this change the sources will individually be cached in CAS
independent of the value of `directory`. `ElementSources` will use the
value of `directory` when staging all element sources into the build
root.
This results in a cache key change as the `directory` value is moved
from the unique key of individual sources to the unique key of
`ElementSources`.
This is in preparation for #1274.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The goal was to include the source plugin kind in the element cache key
as the unique key of a source may not be unique across different source
plugins. This is the source equivalent of the `element-plugin-name`
value in the element cache key.
However, `Source._get_source_name()` was the wrong method for this as
that also includes the key itself, which may not even be set yet.
This results in a cache key change.
Fixes: 3953bcc6 ("element.py: clobber sources with workspace")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
unconditionally
Not all elements use the "build-root" variable, but it is the standard
variable to use for the build directory, and the build directory must
be considered in the cache key.
Handling this unilaterally in the core is safer than delegating this
to element implementations, as we have less chance of plugin authors
missing this detail and possibly introducing binary variance for
artifacts where only the build directory differs (something which
happens when the project name or element names change).
This commit also updates the hard coded cache keys in the cache key
test, so as to ensure every commit passes it's own tests.
This fixes #1386.
|
|
|
|
| |
This matches the REAPI platform lexicon.
|
|
|
|
|
|
|
| |
Remove call to Element._source_cached() in _calculate_cache_key and
do not recalculate workspace keys.
tests: shell browsing of workspaces is currently broken
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Check that sources are cached even if they are workspaced and do not
reset workspace cache data
partially reverts !1470
closes #1088
element.py: remove workspaces in cache key calc
Using the workspace source plugin, workspaces should now be handled like
sources for the purpose of calculating element cache keys.
partially reverts !1470
works towards #1073
Since the source keys are now calculated using the unique keys of the
workspace source, this change will break external tracking for open
workspaces. In future attempting to track an open workspace might raise
a SourceError. The test is rewritten to close the workspace before
tracking.
|
|
|
|
|
|
|
|
|
| |
We also need to store the project name of dependencies in
the proto in order to reconstruct the graph.
This also means that we must include the project name of the
dependencies in the cache key, otherwise the proto and the
cache keys may fall out of sync.
|
|
|
|
| |
add name to sources in cache key dict
|
|
|
|
| |
relates to #1073
|
| |
|
|
|
|
|
|
|
|
| |
This affects the cache key version (updated to 7) and introduces
a dependency on `ujson` which is BSD licenced as of the version
locked in `requirements.txt`
Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
|
|
|
|
|
|
|
|
|
| |
Most split rules already included the relevant directories themselves in
addition to the directory contents. Add the missing bin, sbin, and
libexec directories.
This is required to fix tests with the following commit that changes
list_relative_paths() to return all directories.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Since we now set PWD in the environment of builds
existing builds may behave differently so must cache differently now.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows for users to configure fatal-warnings to be either a list of
warnings.
This commit deprecates the use of fail-on-overlap within project.conf,
this will now use the fatal-warnings configuration item.
element.py: Cache key calculation now takes into account all of the
fatal-warnings
tests: This modifys the tests/frontend/overlaps.py tests to support the
new fatal-warnings configuration. Backwards compatibility is also
tested for `fail-on-overlap`
_versions.py: BST_FORMAT_VERSION bumped to 15 for fatal-warnings
BST_CORE_ARTIFACT_VERSION bumpted to 5 for fatal-warnings
Fixes: #526
|
| |
|
|
|
|
|
| |
buildstream/element.py: Adding build tree to cache
buildstream/_versions.py: Bumping BST_CORE_ARTIFACT_VERSION
|
| |
|
|
|
|
|
| |
Now that we've restructured the artifact metadata into
separate files, we need to rev the artifact version.
|
|
|
|
|
|
|
|
| |
Recently after a refactor we kept the Source adding workspace keys
to the source keys because, now clean this up to have the workspace
key added directly in the Element cache key calculation.
This breaks cache keys.
|
| |
|
| |
|
|
|
|
| |
environment
|
| |
|
|
This test should contain an entry for every element and source plugin
in buildstream. Further, an entry should exist for every feature of
every plugin which may effect cache key calculation.
MANIFEST.in: Adding .expected files used in this test to the
generated dist tarballs.
|