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

Move away from PNPM #36

Closed
PaulRBerg opened this issue Dec 29, 2023 · 4 comments · Fixed by #39
Closed

Move away from PNPM #36

PaulRBerg opened this issue Dec 29, 2023 · 4 comments · Fixed by #39
Labels
effort: medium Default level of effort. type: build Changes that affect the build system or external dependencies. work: complicated Sense-analyze-respond. The relationship between cause and effect requires analysis or expertise.

Comments

@PaulRBerg
Copy link
Owner

PNPM's symbolic links are problematic. I should move away from PNPM. Possible solutions:

  1. Go back to Yarn
  2. NPM
  3. Explore Bun

Refs:

@PaulRBerg PaulRBerg added type: build Changes that affect the build system or external dependencies. work: complicated Sense-analyze-respond. The relationship between cause and effect requires analysis or expertise. effort: medium Default level of effort. labels Dec 31, 2023
@akshatmittal
Copy link

akshatmittal commented Jan 8, 2024

I have to ask @PaulRBerg, why choose Bun over Yarn?

Perspective: Yarn ecosystem is ubiquitous, supports configurable soft links, hard links, global cache and per-project configs for several things necessary in the Solidity ecosystem. Meanwhile, Bun is (currently) only supported on Linux, is unstable, fairly buggy and for a project like this (and nearly anything in the solidity ecosystem) the benefit of installing dependencies 1s faster are outweighed by the ecosystem alone.

(To be clear, I really like this template, I switched from my own to this a while ago but I always replace <whatever package manager> with Yarn)

@PaulRBerg
Copy link
Owner Author

I have to ask @PaulRBerg, why choose Bun over Yarn?

  1. Bun is faster
  2. Bun is more lightweight; I've used Yarn V3 for 2+ years, and gotten tired of having to keep the .yarn directory in version control and the complicated entries in .gitignore

Tip: feel free to open discussions for questions like this (which are great!)

Bun is (currently) only supported on Linux

Not true. I use it on macOS

is unstable, fairly buggy and for a project like this (and nearly anything in the solidity ecosystem) the benefit of installing dependencies 1s faster are outweighed by the ecosystem alone.

It wasn't unstable for me. But I hear you on the other points - I will monitor how Bun works and reconsider Yarn.

I really like this template

Thanks

I switched from my own to this a while ago but I always replace with Yarn)

Then, the template works! It's meant to be edited like that.

@akshatmittal
Copy link

Thanks for the comments, @PaulRBerg!

  1. Bun is faster

Does it really matter here? The half a second to a second saved isn't going to be impactful right?

  1. Bun is more lightweight;

I do agree with you, it is. Although I'm not quite following the problem with .yarn and one entry in .gitignore. As of right now, (using v4.0.2) .yarn is optional if you want everyone to be on the same version of yarn - which imo is useful, and the only entry I have in .gitignore is the install-state.gz file, which is also optional.

Not true. I use it on macOS

Haha, true, you're not wrong. I should really have mentioned *nix here.

Appreciate the openness here, I will open a discussion to talk about Bun vs Yarn! The only reason I'm even talking about this is because having a single package manager that just works for everyone on the team (using Linux, macOS and Windows), without having to worry about versions, without having to think about the idiosyncrasies or unexpected behaviours is a good experience.

@PaulRBerg
Copy link
Owner Author

PaulRBerg commented Jan 8, 2024

The half a second to a second saved isn't going to be impactful right?

Fair enough

As of right now, (using v4.0.2) .yarn is optional if you want everyone to be on the same version of yarn - which imo is useful, and the only entry I have in .gitignore is the install-state.gz file, which is also optional.

Oh, that is interesting! I did not know that.

I will open a discussion to talk about Bun vs Yarn!

Please do!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
effort: medium Default level of effort. type: build Changes that affect the build system or external dependencies. work: complicated Sense-analyze-respond. The relationship between cause and effect requires analysis or expertise.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants