Skip to content

chore: upgrade from yarn 1 to 3 - #224

Closed
jawnsy wants to merge 4 commits into
mainfrom
jawnsy/switch-yarn3
Closed

jawnsy wants to merge 4 commits into
mainfrom
jawnsy/switch-yarn3

Conversation

@jawnsy

@jawnsy jawnsy commented Feb 9, 2022

Copy link
Copy Markdown

Switch from Yarn Classic (1.22) to Yarn Berry (3.1.1) in order
to speed up install and builds.

Jonathan Yu added 2 commits February 9, 2022 19:38
Switch from Yarn Classic (1.22) to Yarn Berry (3.1.1) in order
to speed up install and builds.
@codecov

codecov Bot commented Feb 9, 2022 •

Copy link
Copy Markdown

Codecov Report

Merging #224 (bb30589) into main (c44d036) will increase coverage by 0.13%.
The diff coverage is n/a.

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #224      +/-   ##
==========================================
+ Coverage   68.31%   68.44%   +0.13%     
==========================================
  Files         111      111              
  Lines        6003     6003              
  Branches       67       67              
==========================================
+ Hits         4101     4109       +8     
+ Misses       1512     1507       -5     
+ Partials      390      387       -3     
Flag Coverage Δ
unittest-go-macos-latest 66.47% <ø> (+0.20%) ⬆️
unittest-go-ubuntu-latest 67.62% <ø> (+0.11%) ⬆️
unittest-go-windows-latest 66.07% <ø> (+0.14%) ⬆️
unittest-js 64.76% <ø> (ø)
Impacted Files Coverage Δ
provisionerd/provisionerd.go 69.30% <0.00%> (-0.61%) ⬇️
peer/conn.go 80.00% <0.00%> (+0.25%) ⬆️
peerbroker/listen.go 84.80% <0.00%> (+2.39%) ⬆️
provisioner/echo/serve.go 50.52% <0.00%> (+3.15%) ⬆️
peerbroker/dial.go 80.95% <0.00%> (+4.76%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update c44d036...bb30589. Read the comment docs.

@jawnsy jawnsy self-assigned this Feb 9, 2022
@jawnsy
jawnsy marked this pull request as ready for review February 9, 2022 20:38
@kylecarbs

Copy link
Copy Markdown
Member

How much does this improve build times?

@kylecarbs kylecarbs left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems fine to me, but I'd like @bryphe-coder to take a look!

Comment thread site/.gitignore
Comment on lines +1 to +5
/.yarn/*
!/.yarn/patches
!/.yarn/plugins
!/.yarn/releases
!/.yarn/sdks

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will this affect the directories we need to cache in our workflow? ie

key: js-${{ runner.os }}-test-${{ hashFiles('**/yarn.lock') }}

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yea it would. I think it'd be much faster with Plug 'n Play mode, but I couldn't get that working

Comment thread site/package.json
@@ -1,5 +1,6 @@
{
"name": "coder-v2",
"packageManager": "yarn@3.1.1",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for investigating this!

@bryphe-coder

bryphe-coder commented Feb 9, 2022 •

Copy link
Copy Markdown
Contributor

No-op yarn install (running yarn install when dependencies are already available)

➤ YN0000: └ Completed in 0s 928ms
➤ YN0000: Done with warnings in 2s 236ms

vs the 0.78s previously, unfortunately. Seems consistently over 2s, so more than double the time previously.

With yarn 3 + pnp:

➤ YN0000: Done with warnings in 1s 678ms

@bryphe-coder

bryphe-coder commented Feb 9, 2022 •

Copy link
Copy Markdown
Contributor

Running yarn install in a fresh repo (after git clean -dxf) yields the following results:

yarn 3:

...
➤ YN0000: Done with warnings in 21s 668ms

yarn 1:

...
[4/4] Building fresh packages...
Done in 18.98s.

The fresh-install seems comparable but yarn 3 is still surprisingly a little slower.

With PnP enabled + yarn 3:

➤ YN0000: Done with warnings in 9s 680ms

@bryphe-coder

Copy link
Copy Markdown
Contributor

@jawnsy - do you think the benefits of yarn 3 outweigh the additional time for fresh install / no-op install? I'm more concerned about the no-op install because that will be hit in the development flow.

From my testing locally - it seems like yarn 3 is (surprisingly) slower in both those cases 😦

Wondering if we should hold off on this until we can investigate the PnP issue and get the perf benefit?

@bryphe-coder bryphe-coder left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just curious on your thoughts re: perf @jawnsy - did you see different results when you tested?

@jawnsy

jawnsy commented Feb 9, 2022

Copy link
Copy Markdown
Author

@bryphe-coder and I are going to check this out on Monday for testing Monday to see if we can get PnP working, otherwise I'll just close this :)

@jawnsy

jawnsy commented Feb 14, 2022

Copy link
Copy Markdown
Author

After some investigation, it doesn't seem to be a material performance improvement for us, so it's not worth doing at this time

@jawnsy jawnsy closed this Feb 14, 2022
@jawnsy
jawnsy deleted the jawnsy/switch-yarn3 branch February 14, 2022 21:41
@jawnsy jawnsy removed their assignment Mar 12, 2022
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.

3 participants