fix(cache): ensure installation and cache works with any environment #2839
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Pull Request Checklist
news/
describing what is new.Describe what you have changed in this PR.
Since a few versions I was having a lot of
sync
/install
failures due to some cache file collisions (especially the.referrers
file).This PR ensure installers (with or without cache) are tested against both
PythonEnvironement
(virtualenv) andPythonLocalEnvironment
(PEP582) because installation and caching might differ between both. (Only thePythonLocalEnvironment
was tested).It also tests cached installations across multiple projects with those environments allowing to reproduce my
.referrers
case:When installing with cache in a virtualenv env, the referrer files was not linked on first install (because created after installation) but it was on the 2nd one.
As a side-effect, when installing 2 already cached packages in the same virtualenv, the 2nd one was failing because the
.referrers
file was already linked (root file), produced the following error:Fixed by storing a list of cache metadata files on the
CachedPackage
class (avoiding to search/know where it is used in the codebase each time a new metadata file is created).