diff options
author | Jürg Billeter <j@bitron.ch> | 2020-08-19 11:30:15 +0200 |
---|---|---|
committer | Jürg Billeter <j@bitron.ch> | 2020-09-03 14:12:02 +0200 |
commit | 7df5e40e8673b8a59a93cfdf2685cf120d6a98db (patch) | |
tree | 603273d7e4d334748c4dd52c2bdc5da0232e6be4 | |
parent | 7175dbb76aab99935a4e3f5884bac9451bfb655e (diff) | |
download | buildstream-juerg/element-source-cache.tar.gz |
Move handling of the source `directory` configuration to ElementSourcesjuerg/element-source-cache
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.
30 files changed, 120 insertions, 128 deletions
diff --git a/src/buildstream/_elementsources.py b/src/buildstream/_elementsources.py index 5fc412f6b..c030591f8 100644 --- a/src/buildstream/_elementsources.py +++ b/src/buildstream/_elementsources.py @@ -15,6 +15,8 @@ # You should have received a copy of the GNU Lesser General Public # License along with this library. If not, see <http://www.gnu.org/licenses/>. +import os +from contextlib import contextmanager from typing import TYPE_CHECKING, Iterator from . import _cachekey, utils @@ -48,10 +50,6 @@ class ElementSources: self._cache_key = None # Our cached cache key self._proto = None # The cached Source proto - # the index of the last source in this element that requires previous - # sources for staging - self._last_source_requires_previous_idx = None - # get_project(): # # Return the project associated with this object @@ -92,9 +90,15 @@ class ElementSources: # def track(self, workspace): refs = [] - for index, source in enumerate(self._sources): + for source in self._sources: old_ref = source.get_ref() - new_ref = source._track(self._sources[0:index]) + + if source.BST_REQUIRES_PREVIOUS_SOURCES_TRACK: + with self._stage_previous_sources(source) as staging_directory: + new_ref = source._track(previous_sources_dir=staging_directory) + else: + new_ref = source._track() + refs.append((source._unique_id, new_ref)) # Complimentary warning that the new ref will be unused. @@ -183,7 +187,14 @@ class ElementSources: # def init_workspace(self, directory: str): for source in self.sources(): - source._init_workspace(directory) + if source._directory: + srcdir = os.path.join(directory, source._directory) + else: + srcdir = directory + + os.makedirs(srcdir, exist_ok=True) + + source._init_workspace(srcdir) # fetch(): # @@ -210,13 +221,16 @@ class ElementSources: # # Args: # fetch_original (bool): Always fetch original source + # stop (Source): Only fetch sources listed before this source # # Raises: # SourceError: If one of the element sources has an error # - def fetch_sources(self, *, fetch_original=False): - previous_sources = [] + def fetch_sources(self, *, fetch_original=False, stop=None): for source in self._sources: + if source == stop: + break + if ( fetch_original or source.BST_REQUIRES_PREVIOUS_SOURCES_FETCH @@ -226,12 +240,10 @@ class ElementSources: # CAS-based source cache on its own. Fetch original source # if it's not in the plugin-specific cache yet. if not source._is_cached(): - source._fetch(previous_sources) + self._fetch_original_source(source) else: self._fetch_source(source) - previous_sources.append(source) - # get_unique_key(): # # Return something which uniquely identifies the combined sources of the @@ -246,7 +258,10 @@ class ElementSources: result = [] for source in self._sources: - result.append({"key": source._get_unique_key(), "name": source.get_kind()}) + key_dict = {"key": source._get_unique_key(), "name": source.get_kind()} + if source._directory: + key_dict["directory"] = source._directory + result.append(key_dict) return result @@ -389,34 +404,76 @@ class ElementSources: # Unable to fetch source from remote source cache, fall back to # fetching the original source. - source._fetch([]) + source._fetch() # Stage original source into the local CAS-based source cache self._sourcecache.commit(source) + # _fetch_source(): + # + # Fetch a single original source + # + # Args: + # source (Source): The source to fetch + # + def _fetch_original_source(self, source): + if source.BST_REQUIRES_PREVIOUS_SOURCES_FETCH: + with self._stage_previous_sources(source) as staging_directory: + source._fetch(previous_sources_dir=staging_directory) + else: + source._fetch() + # _stage(): # # Stage the element sources # - def _stage(self): + # Args: + # stop (Source): Only stage sources listed before this source + # + def _stage(self, *, stop=None): vdir = CasBasedDirectory(self._context.get_cascache()) for source in self._sources: + if source == stop: + break + + if source._directory: + vsubdir = vdir.descend(*source._directory.split(os.sep), create=True) + else: + vsubdir = vdir + if source.BST_REQUIRES_PREVIOUS_SOURCES_FETCH or source.BST_REQUIRES_PREVIOUS_SOURCES_STAGE: if source.BST_STAGE_VIRTUAL_DIRECTORY: - source._stage(vdir) + source._stage(vsubdir) else: with utils._tempdir(dir=self._context.tmpdir, prefix="staging-temp") as tmpdir: # Stage previous sources - vdir.export_files(tmpdir) + vsubdir.export_files(tmpdir) source._stage(tmpdir) # Capture modified tree - vdir._clear() - vdir.import_files(tmpdir) + vsubdir._clear() + vsubdir.import_files(tmpdir) else: source_dir = self._sourcecache.export(source) - vdir.import_files(source_dir) + vsubdir.import_files(source_dir) return vdir + + # Context manager that stages sources in a cas based or temporary file + # based directory + @contextmanager + def _stage_previous_sources(self, source): + self.fetch_sources(stop=source) + vdir = self._stage(stop=source) + + if source._directory: + vdir = vdir.descend(*source._directory.split(os.sep), create=True) + + if source.BST_STAGE_VIRTUAL_DIRECTORY: + yield vdir + else: + with source.tempdir() as tempdir: + vdir.export_files(tempdir) + yield tempdir diff --git a/src/buildstream/source.py b/src/buildstream/source.py index d7e6021bc..245c3ca99 100644 --- a/src/buildstream/source.py +++ b/src/buildstream/source.py @@ -164,7 +164,7 @@ from typing import Iterable, Iterator, Optional, Tuple, TYPE_CHECKING from . import _yaml, utils from .node import MappingNode from .plugin import Plugin -from .types import SourceRef, Union, List +from .types import SourceRef, Union from ._exceptions import BstError, ImplError, PluginError from .exceptions import ErrorDomain from ._loader.metasource import MetaSource @@ -172,7 +172,7 @@ from ._projectrefs import ProjectRefStorage from ._cachekey import generate_key from .storage import CasBasedDirectory from .storage import FileBasedDirectory -from .storage.directory import Directory, VirtualDirectoryError +from .storage.directory import Directory from ._variables import Variables if TYPE_CHECKING: @@ -341,7 +341,7 @@ class Source(Plugin): self.__element_index = meta.element_index # The index of the source in the owning element's source list self.__element_kind = meta.element_kind # The kind of the element owning this source - self.__directory = meta.directory # Staging relative directory + self._directory = meta.directory # Staging relative directory self.__variables = variables # The variables used to resolve the source's config self.__key = None # Cache key for source @@ -784,15 +784,11 @@ class Source(Plugin): # Wrapper function around plugin provided fetch method # # Args: - # previous_sources (list): List of Sources listed prior to this source - # fetch_original (bool): whether to fetch full source, or use local CAS + # previous_sources_dir (str): directory where previous sources are staged # - def _fetch(self, previous_sources): - + def _fetch(self, previous_sources_dir=None): if self.BST_REQUIRES_PREVIOUS_SOURCES_FETCH: - self.__ensure_previous_sources(previous_sources) - with self.__stage_previous_sources(previous_sources) as staging_directory: - self.__do_fetch(previous_sources_dir=self.__ensure_directory(staging_directory)) + self.__do_fetch(previous_sources_dir=previous_sources_dir) else: self.__do_fetch() @@ -817,8 +813,6 @@ class Source(Plugin): # 'directory' option # def _stage(self, directory): - directory = self.__ensure_directory(directory) - if self.BST_KEY_REQUIRES_STAGE: # _get_unique_key should be called before _stage assert self.__digest is not None @@ -833,8 +827,6 @@ class Source(Plugin): if self.BST_STAGE_VIRTUAL_DIRECTORY: directory = FileBasedDirectory(external_directory=directory) - directory = self.__ensure_directory(directory) - self.validate_cache() self.init_workspace(directory) @@ -843,13 +835,10 @@ class Source(Plugin): # Wrapper for get_unique_key() api # def _get_unique_key(self): - key = {} - key["directory"] = self.__directory if self.BST_KEY_REQUIRES_STAGE: - key["unique"] = self._stage_into_cas() + return self._stage_into_cas() else: - key["unique"] = self.get_unique_key() # pylint: disable=assignment-from-no-return - return key + return self.get_unique_key() # _project_refs(): # @@ -1089,18 +1078,16 @@ class Source(Plugin): # Wrapper for track() # # Args: - # previous_sources (list): List of Sources listed prior to this source + # previous_sources_dir (str): directory where previous sources are staged # - def _track(self, previous_sources: List["Source"]) -> SourceRef: + def _track(self, previous_sources_dir: str = None) -> SourceRef: if self.BST_KEY_REQUIRES_STAGE: # ensure that these sources have a key after tracking - self._get_unique_key() + self._generate_key() return None if self.BST_REQUIRES_PREVIOUS_SOURCES_TRACK: - self.__ensure_previous_sources(previous_sources) - with self.__stage_previous_sources(previous_sources) as staging_directory: - new_ref = self.__do_track(previous_sources_dir=self.__ensure_directory(staging_directory)) + new_ref = self.__do_track(previous_sources_dir=previous_sources_dir) else: new_ref = self.__do_track() @@ -1116,6 +1103,8 @@ class Source(Plugin): # Save ref in local process for subsequent sources self._set_ref(new_ref, save=False) + self._generate_key() + return new_ref # _is_trackable() @@ -1206,7 +1195,7 @@ class Source(Plugin): self.__element_kind, self.get_kind(), self.__config, - self.__directory, + self._directory, self.__first_pass, ) @@ -1221,24 +1210,6 @@ class Source(Plugin): return clone - # Context manager that stages sources in a cas based or temporary file - # based directory - @contextmanager - def __stage_previous_sources(self, sources): - with self.tempdir() as tempdir: - directory = FileBasedDirectory(external_directory=tempdir) - - for src in sources: - if src.BST_STAGE_VIRTUAL_DIRECTORY: - src._stage(directory) - else: - src._stage(tempdir) - - if self.BST_STAGE_VIRTUAL_DIRECTORY: - yield directory - else: - yield tempdir - # Tries to call fetch for every mirror, stopping once it succeeds def __do_fetch(self, **kwargs): project = self._get_project() @@ -1341,31 +1312,6 @@ class Source(Plugin): return ref raise last_error - # Ensures a fully constructed path and returns it - def __ensure_directory(self, directory): - - if not isinstance(directory, Directory): - if self.__directory is not None: - directory = os.path.join(directory, self.__directory.lstrip(os.sep)) - - try: - os.makedirs(directory, exist_ok=True) - except OSError as e: - raise SourceError( - "Failed to create staging directory: {}".format(e), reason="ensure-stage-dir-fail" - ) from e - - else: - if self.__directory is not None: - try: - directory = directory.descend(*self.__directory.lstrip(os.sep).split(os.sep), create=True) - except VirtualDirectoryError as e: - raise SourceError( - "Failed to descend into staging directory: {}".format(e), reason="ensure-stage-dir-fail" - ) from e - - return directory - @classmethod def __init_defaults(cls, project, meta): if cls.__defaults is None: @@ -1388,17 +1334,6 @@ class Source(Plugin): return config - # Ensures that previous sources have been tracked and fetched. - # - def __ensure_previous_sources(self, previous_sources): - for index, src in enumerate(previous_sources): - # BuildStream should track sources in the order they appear so - # previous sources should never be in an inconsistent state - assert src.is_resolved() - - if not src._is_cached(): - src._fetch(previous_sources[0:index]) - def _extract_alias(url): parts = url.split(utils._ALIAS_SEPARATOR, 1) diff --git a/tests/cachekey/project/elements/build1.expected b/tests/cachekey/project/elements/build1.expected index ea0e6149b..71113a494 100644 --- a/tests/cachekey/project/elements/build1.expected +++ b/tests/cachekey/project/elements/build1.expected @@ -1 +1 @@ -c1fe5551061270c60ef2eb9c1953f5beb8ff0527f4901acdcc22432c5e7ad4d9
\ No newline at end of file +99eb5ee7e7b93f1f9e4abfd2b392ed3b9746aeebc74f9239e5e0ca3ca444ab47
\ No newline at end of file diff --git a/tests/cachekey/project/elements/build2.expected b/tests/cachekey/project/elements/build2.expected index 4b63a3f98..10d60050d 100644 --- a/tests/cachekey/project/elements/build2.expected +++ b/tests/cachekey/project/elements/build2.expected @@ -1 +1 @@ -4caa10b4218f57141c1ab917f0fcd70941924638e4f49762a03bba5b26f5a595
\ No newline at end of file +9458b71a2054df6ca3d1ce9df2090649b1416a368e41ae40bfa0cc52f5efb05e
\ No newline at end of file diff --git a/tests/cachekey/project/elements/compose1.expected b/tests/cachekey/project/elements/compose1.expected index e1977f0d5..fd0ca75fd 100644 --- a/tests/cachekey/project/elements/compose1.expected +++ b/tests/cachekey/project/elements/compose1.expected @@ -1 +1 @@ -8b7347f544092fd32ad6521f13410fa81f2bae5167f00ea512c0969cf5d7b48b
\ No newline at end of file +3a033cd6b00a0b7e113f2f78f67e73923bdadad33e7d8825fabb0e75f0386417
\ No newline at end of file diff --git a/tests/cachekey/project/elements/compose2.expected b/tests/cachekey/project/elements/compose2.expected index f4b02be6d..5ab72fe76 100644 --- a/tests/cachekey/project/elements/compose2.expected +++ b/tests/cachekey/project/elements/compose2.expected @@ -1 +1 @@ -c6dbef79391a184499557e951cb168062b3eda7cdffe81c4984472b6a3d74339
\ No newline at end of file +ec2cf079f662a497af5687d2458489fe3ad83810a2db1815ea489fb30f416fc9
\ No newline at end of file diff --git a/tests/cachekey/project/elements/compose3.expected b/tests/cachekey/project/elements/compose3.expected index d2a987420..5a6620a09 100644 --- a/tests/cachekey/project/elements/compose3.expected +++ b/tests/cachekey/project/elements/compose3.expected @@ -1 +1 @@ -474a2615be874dae877b54cce5a6f8fea2c02225219abeb14519c848b71c37cc
\ No newline at end of file +d24fd1c4beca8b40aad24e8bd4a6106e1278e193b10872e1ed33b0829eb4831a
\ No newline at end of file diff --git a/tests/cachekey/project/elements/compose4.expected b/tests/cachekey/project/elements/compose4.expected index cbb10d163..2c4ab4c48 100644 --- a/tests/cachekey/project/elements/compose4.expected +++ b/tests/cachekey/project/elements/compose4.expected @@ -1 +1 @@ -71a9dcafacbc0ed1eb9564b2d9c3943a5d46879cff11fdc0689e72c29e947c99
\ No newline at end of file +37dd09028bd0a95e64b83df32a1446932f81a72c4c9a6a2cac5c0165ac61e29b
\ No newline at end of file diff --git a/tests/cachekey/project/elements/compose5.expected b/tests/cachekey/project/elements/compose5.expected index 0ea43e3ce..425c55e96 100644 --- a/tests/cachekey/project/elements/compose5.expected +++ b/tests/cachekey/project/elements/compose5.expected @@ -1 +1 @@ -0686d70ec2a631eabf958ad1a7e82bb2920942a1359615229318244339404c23
\ No newline at end of file +4f2eea4571545a5ce896b13320aa7e6c55ca874237fcb7ebeea017f8456e1b5c
\ No newline at end of file diff --git a/tests/cachekey/project/elements/import1.expected b/tests/cachekey/project/elements/import1.expected index b5057db9f..d9e854ed6 100644 --- a/tests/cachekey/project/elements/import1.expected +++ b/tests/cachekey/project/elements/import1.expected @@ -1 +1 @@ -93dc103c1ee3bc274c0eb890d3bbfadf2ce1f9ecbd4afee6b61214e767328611
\ No newline at end of file +f27187b2e1b43a5d4d1855fc46fabe256d561d49d6aff2186a52d4d75315fe19
\ No newline at end of file diff --git a/tests/cachekey/project/elements/import2.expected b/tests/cachekey/project/elements/import2.expected index f8959f981..263684b4e 100644 --- a/tests/cachekey/project/elements/import2.expected +++ b/tests/cachekey/project/elements/import2.expected @@ -1 +1 @@ -20e3392d96420c5313b6ea9a008b3bedf019b391f7d791bdd60fae6bbf71e5fc
\ No newline at end of file +815467a6401a32162cfbcff05f11ff366f9f2d11338bc89d9cf41715da7db89c
\ No newline at end of file diff --git a/tests/cachekey/project/elements/import3.expected b/tests/cachekey/project/elements/import3.expected index b5f400086..24d6a031e 100644 --- a/tests/cachekey/project/elements/import3.expected +++ b/tests/cachekey/project/elements/import3.expected @@ -1 +1 @@ -9e719da7bf09081c218ef1b5613a65b58a8478e5f46f937a81e241cab4247da5
\ No newline at end of file +3fef8b7e07efe9b9599e32ce72b1f0f8ab31accd61788c94c57951770ab184c2
\ No newline at end of file diff --git a/tests/cachekey/project/elements/script1.expected b/tests/cachekey/project/elements/script1.expected index 7374fe9e5..71be17a37 100644 --- a/tests/cachekey/project/elements/script1.expected +++ b/tests/cachekey/project/elements/script1.expected @@ -1 +1 @@ -f11de354ac71ab209a0515686ae609a813d31855f50536ee1cf93a0851dde64c
\ No newline at end of file +38078af3714d6d5128669dc7b4d7e942a46ea4137c388d44a1f455b4cc1918d0
\ No newline at end of file diff --git a/tests/cachekey/project/sources/bzr1.expected b/tests/cachekey/project/sources/bzr1.expected index 912b3a8a1..4e66d6c12 100644 --- a/tests/cachekey/project/sources/bzr1.expected +++ b/tests/cachekey/project/sources/bzr1.expected @@ -1 +1 @@ -e485371c3d3055b8d9666a4be231b0eb6747145d9c83954dd95a2df25b40b152
\ No newline at end of file +ce45db2c82a50eec39416dc857c7a676121a5276b396ea6c7917b123a932ea34
\ No newline at end of file diff --git a/tests/cachekey/project/sources/git1.expected b/tests/cachekey/project/sources/git1.expected index d7628ee2a..7c6974590 100644 --- a/tests/cachekey/project/sources/git1.expected +++ b/tests/cachekey/project/sources/git1.expected @@ -1 +1 @@ -79acaa26ea2cc8bd1ffaee92d88f3a2043390d2d5ba8528f397949b08e454d5f
\ No newline at end of file +f02ac8cc516819ee72f56bdc3c1a6e4bb3a154a506a361a8d34a63b37dfa8dc7
\ No newline at end of file diff --git a/tests/cachekey/project/sources/git2.expected b/tests/cachekey/project/sources/git2.expected index 034a4519d..4fa7db829 100644 --- a/tests/cachekey/project/sources/git2.expected +++ b/tests/cachekey/project/sources/git2.expected @@ -1 +1 @@ -9e3ea2835e29ca4a66f750126a0d64636fcc36744057be485d62d940d41dbf84
\ No newline at end of file +59964ee437e38e37dbbb78362118937e90defd89bdf358667394a35f6ed2ba46
\ No newline at end of file diff --git a/tests/cachekey/project/sources/git3.expected b/tests/cachekey/project/sources/git3.expected index 7f14d4853..91cb0f882 100644 --- a/tests/cachekey/project/sources/git3.expected +++ b/tests/cachekey/project/sources/git3.expected @@ -1 +1 @@ -5dbc9678d2745acfb147c32cd8c68ad6919aa6004cb8a3d635a7ac47da9c8437
\ No newline at end of file +10dd7b3883cfe8fd8f7f29dd258098080227ee73c53ff825542d62d204f1e6c3
\ No newline at end of file diff --git a/tests/cachekey/project/sources/local1.expected b/tests/cachekey/project/sources/local1.expected index b9a130cf9..961785aa5 100644 --- a/tests/cachekey/project/sources/local1.expected +++ b/tests/cachekey/project/sources/local1.expected @@ -1 +1 @@ -64ff0a8d320d3a7c3bf27a5a0a897f1ef0854d38721f92fdbecb03b1029b9c2d
\ No newline at end of file +13acaa66115bd1d374b236b0ddd2cef804df75b3aa28878f4200efa7c758b14c
\ No newline at end of file diff --git a/tests/cachekey/project/sources/local2.expected b/tests/cachekey/project/sources/local2.expected index 1e216c2cc..762e7bc48 100644 --- a/tests/cachekey/project/sources/local2.expected +++ b/tests/cachekey/project/sources/local2.expected @@ -1 +1 @@ -c2274d309979d7f3f13a27aae65088e8348aec7b818096a42daa8253387bbde0
\ No newline at end of file +214238ba50ead82896e27d95e833c3df990f9e3ab728fdb0e44a3b07f986ab3c
\ No newline at end of file diff --git a/tests/cachekey/project/sources/patch1.expected b/tests/cachekey/project/sources/patch1.expected index e08887415..4593895c5 100644 --- a/tests/cachekey/project/sources/patch1.expected +++ b/tests/cachekey/project/sources/patch1.expected @@ -1 +1 @@ -b26ee38a5bba930fd3161ffa4e86c72cffe3eee4d6ed863587dafa7dae19275a
\ No newline at end of file +3b607c5657b600ab0e2c8b5ea09ed26fc65b3899b67d107676cf687b2cde374d
\ No newline at end of file diff --git a/tests/cachekey/project/sources/patch2.expected b/tests/cachekey/project/sources/patch2.expected index 6840ca3c6..221c9c779 100644 --- a/tests/cachekey/project/sources/patch2.expected +++ b/tests/cachekey/project/sources/patch2.expected @@ -1 +1 @@ -44c701a3beb5ee91d8f10749ee9081ddc808567a84905d8e3f3d56357b98be14
\ No newline at end of file +1911adbe62cbd7d9f0ded708530274c7f591798bd0a0b5f7e8358f7fcda3066a
\ No newline at end of file diff --git a/tests/cachekey/project/sources/patch3.expected b/tests/cachekey/project/sources/patch3.expected index ccb8595fa..1ad6d9fce 100644 --- a/tests/cachekey/project/sources/patch3.expected +++ b/tests/cachekey/project/sources/patch3.expected @@ -1 +1 @@ -08a0ef6633022338ac29c51d645bb1f38d31416541e7faa21740b31a1be04dc8
\ No newline at end of file +175ff52608a55a6af98466822e22f401c46b2659116ccfeee6dc78e09249da78
\ No newline at end of file diff --git a/tests/cachekey/project/sources/pip1.expected b/tests/cachekey/project/sources/pip1.expected index 5c3843182..59f11863b 100644 --- a/tests/cachekey/project/sources/pip1.expected +++ b/tests/cachekey/project/sources/pip1.expected @@ -1 +1 @@ -d5232928f6420fd95a07cc268f8e3eeb3562fc1162bdb96acc8ea44cc459cc76
\ No newline at end of file +20ac777cc56dfeafcf4543e0d9ed31108b32075c8a3e9d25d3deec16fbf7f246
\ No newline at end of file diff --git a/tests/cachekey/project/sources/remote1.expected b/tests/cachekey/project/sources/remote1.expected index 1bcc4fde0..9970589f3 100644 --- a/tests/cachekey/project/sources/remote1.expected +++ b/tests/cachekey/project/sources/remote1.expected @@ -1 +1 @@ -9ce089870d66b6ec5dc7a4686b04af00db9c04adab521aecec067419e83701ab
\ No newline at end of file +4d13955e7eeb0f0d77b0a3a72e77acd8636bdc8284712975593742d0667f88f7
\ No newline at end of file diff --git a/tests/cachekey/project/sources/remote2.expected b/tests/cachekey/project/sources/remote2.expected index 6ceb4ae83..139e4bf74 100644 --- a/tests/cachekey/project/sources/remote2.expected +++ b/tests/cachekey/project/sources/remote2.expected @@ -1 +1 @@ -14544535e10cc377fb2443e3e87025dce1c0be03f7a69b3a0a6fe1a7af7191b3
\ No newline at end of file +5f904fd43ca49f268af3141afe73116f1260800918a738afeaf51a94f99fffb2
\ No newline at end of file diff --git a/tests/cachekey/project/sources/tar1.expected b/tests/cachekey/project/sources/tar1.expected index e686318ea..89a492067 100644 --- a/tests/cachekey/project/sources/tar1.expected +++ b/tests/cachekey/project/sources/tar1.expected @@ -1 +1 @@ -f04fd7f059d136021c306b89130802c81e3baf8103ab9e84fe20a3af28815693
\ No newline at end of file +f516c30a7a493acd74e49c4ac91cf697dfd32e8821d4230becac100cdac7df64
\ No newline at end of file diff --git a/tests/cachekey/project/sources/tar2.expected b/tests/cachekey/project/sources/tar2.expected index 3b25c45f5..e9928d767 100644 --- a/tests/cachekey/project/sources/tar2.expected +++ b/tests/cachekey/project/sources/tar2.expected @@ -1 +1 @@ -bf581c0f1724b1a574dfa5ffaadc096db4b8f80a0f9b337cf6a867d12dfd6ecd
\ No newline at end of file +eba29361b50cf14128dbf34362635bc2170474c8bb13c916638b2531174bf04a
\ No newline at end of file diff --git a/tests/cachekey/project/sources/zip1.expected b/tests/cachekey/project/sources/zip1.expected index 3b41d3c42..41292f2a2 100644 --- a/tests/cachekey/project/sources/zip1.expected +++ b/tests/cachekey/project/sources/zip1.expected @@ -1 +1 @@ -eddd2c6bcf2f805874d7a852a18eccaa9c9c5006ccf1e44e2389908f3beb16a0
\ No newline at end of file +a759e15073fdeed9224e41af4c094464e268bb8ced95dedf6e6dc35ec524d003
\ No newline at end of file diff --git a/tests/cachekey/project/sources/zip2.expected b/tests/cachekey/project/sources/zip2.expected index da524df15..e723f4852 100644 --- a/tests/cachekey/project/sources/zip2.expected +++ b/tests/cachekey/project/sources/zip2.expected @@ -1 +1 @@ -d236514ddd135f2fdc81a2cb1912aef66fb7b0c616e3a652f81d4b61592baf02
\ No newline at end of file +d9c5a347340a387c4cecf24c29ad4b3c524773e8224683380221a62ec820abd9
\ No newline at end of file diff --git a/tests/cachekey/project/target.expected b/tests/cachekey/project/target.expected index 887bc59b9..38d4abeef 100644 --- a/tests/cachekey/project/target.expected +++ b/tests/cachekey/project/target.expected @@ -1 +1 @@ -e51a1db8dc54b50c92a9a18d505d2d580854a6f6dae346ed5f89310775233ab4
\ No newline at end of file +5bf8ea2d6c0900c226c8fd3dae980f0b92e40f3fc1887b64d31bf04b6210d763
\ No newline at end of file |