Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sets the default compression to 0 #5526

Merged
merged 11 commits into from Jun 26, 2023
Merged

Conversation

arcanis
Copy link
Member

@arcanis arcanis commented Jun 24, 2023

What's the problem this PR addresses?

Cache compression doesn't seem the best option nowadays:

  • It adds significant time to installs
  • It adds a non-negligible runtime overhead (partially related, Benchmark PnP runtime overhead #1817)
  • It prevents Git from diffing archives when they're modified

Its main advantage is for some amazingly large packages, where storing them inside a Git repository would be impossible (GitHub has a 600MB file limit). But since we changed the cache default to enableGlobalCache: true, this isn't relevant by default, so the cache compression should be set to zero.

One potential issue is how it may give the impression that Yarn became worse for global cache users. We don't believe it's the case (Git can delta uncompressed archives in some measure, making it less expensive to upgrade from one package version to another), but to the average eye it may not look as such.

How did you fix it?

This diff sets the new default compression setting to 0.

To avoid breaking projects' (or at least not making the migration more difficult), I added a rule to automatically set compressionLevel (and enableGlobalCache) to their 3.x default values when running yarn install in a 3.x project. When users are ready they can remove these settings and re-run the install.

I kept the current compression level on our repository to avoid changing all archives again. I think we'll have to think of purging the repository in some form to migrate it to compressionLevel: 0.

Checklist

  • I have set the packages that need to be released for my changes to be effective.
  • I will check that all automated PR checks pass before the PR gets reviewed.

@arcanis arcanis mentioned this pull request Jun 25, 2023
3 tasks
@arcanis arcanis merged commit 21fcc79 into master Jun 26, 2023
17 checks passed
@arcanis arcanis deleted the mael/default-compression-zero branch June 26, 2023 08:53
arcanis added a commit that referenced this pull request Oct 24, 2023
**What's the problem this PR addresses?**

Closes: #5843
Refs: #5526

**How did you fix it?**

Updated the default compressionLevel to '0' in documentation.

**Checklist**
<!--- Don't worry if you miss something, chores are automatically
tested. -->
<!--- This checklist exists to help you remember doing the chores when
you submit a PR. -->
<!--- Put an `x` in all the boxes that apply. -->
- [x] I have read the [Contributing
Guide](https://yarnpkg.com/advanced/contributing).

<!-- See
https://yarnpkg.com/advanced/contributing#preparing-your-pr-to-be-released
for more details. -->
<!-- Check with `yarn version check` and fix with `yarn version check
-i` -->
- [x] I have set the packages that need to be released for my changes to
be effective.

<!-- The "Testing chores" workflow validates that your PR follows our
guidelines. -->
<!-- If it doesn't pass, click on it to see details as to what your PR
might be missing. -->
- [x] I will check that all automated PR checks pass before the PR gets
reviewed.

---------

Co-authored-by: Maël Nison <nison.mael@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants