refactor: migrate to Yarn Berry (v3.2.1)#8764
Conversation
|
@acid-chicken I'd personally like your feedback on this PR first if you don't mind, as you've been the most involved with Yarn Berry discussion. |
acid-chicken
left a comment
There was a problem hiding this comment.
Thank you for your work.
I believe that by using the node_modules linker, we can upgrade without facing most of the problems, so I think this PR is fine with the current policy for now, regardless of whether we move to PnP mode in the future or not.
Also, since Yarn berry has built-in monorepo management system called workspaces, so it would be great (and probably easy) to also improve the current situation, which is awkwardly realized by scripts/install-packages.js and so on.
|
Also, since there are opinions like #5858 (comment), it would be better if Corepack could be used as a boot loader for Yarn berry (instead of placing |
|
Running |
|
|
@acid-chicken yep! |
|
Seems like the labeler bot adds back removed labels every commit ^^" |
Done! |
|
I assume |
|
developに追従した |
|
マージしちゃう? |
This comment was marked as abuse.
This comment was marked as abuse.
This comment was marked as abuse.
This comment was marked as abuse.
|
yarn install --immutableであれば1GiBで足りるかも |
|
そもそもproductionのビルドって yarn v1 版でも1GBで足りるんだっけ?vite入ったから行ける? |
|
無理だった |
| "ioredis": "4.28.5", | ||
| "ip-cidr": "3.0.10", | ||
| "is-svg": "4.3.2", | ||
| "jest-mock": "^29.0.3", |
There was a problem hiding this comment.
要る?
要るとしてもdevDependenciesじゃないかしら
| "node-fetch": "3.3.0", | ||
| "nodemailer": "6.8.0", | ||
| "nsfwjs": "2.4.2", | ||
| "oauth": "^0.10.0", |
There was a problem hiding this comment.
DiscordServerServiceとGithubServerServiceでは使われているけど
|
Fastifyと統合するのちょっと骨折れそう |
|
🙏🏻🙏🏻🙏🏻 |
|
🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 |
|
nodeLinker: pnpmだと型の不具合が起きるっぽい |
|
いやこれ peerDependencies に追加すれば解決する |
* Yarn berry * Add `.yarn` to dockerignore * Mention in CHANGELOG * Update Dockerfile * Proper upgrade to yarn * use `"packageManager"` * Replace `install-packages.js` with workspaces * Replace `install-packages.js` with workspaces * Typo * `corepack enable` for linting * Remove `packages/*/yarn.lock` * Improve lint workflow * Update .github/workflows/lint.yml Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com> * Update .github/workflows/lint.yml Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com> * Add `eslint` * Regenerate yarn.lock * 🙏 * Update lint.yml :thinking: * Fix workflow! * yarn lint my beloved * corepack enable for mocha/e2e * Update CHANGELOG.md * fix the code that depends on node_modules * tbh * tbh * More yarn workspaces stuff * 🍀 * Change `browser-image-resizer` * :finnadie: * :goberserk: * :godmode: * Remove yarnrc for workspaces * 🙏 * Add proper packages for eslint * Skip extra install * New steps for test.yml too * uhh * Update .dockerignore * Update lint.yml * Update test.yml * Make client/backend lints seperate workflows * package.json names * pnpm = dont change paths * Fix changelog * :bowtie: * I don't know why github workflows hates me... * test * ????? * continue-on-error: true * Fix yarn.lock Co-authored-by: ishowta <ishowta@gmail.com> * add @rollup/pluginutils * add packageExtensions for chartjs_date-fns Co-authored-by: acid-chicken <root@acid-chicken.com> * npm run => yarn * wip * yarn node => node 依存関係の記載不足の解消がかなり多いため、yarn nodeは使わない * fix * fix http-signature * fix * fix * add packageExtensions * ✌️ * remove `yarn set version berry` * yarn install --immutable Co-authored-by: ishowta <ishowta@gmail.com> * misskey-dev/misskey#8764 (comment) * enable actions/setup-node's global cache * Update .gitignore Co-authored-by: iwata <ishowta@gmail.com> * revival gulp build https://github.com/misskey-dev/misskey/pull/8764/files/66ab7591bff9b35255219057e33399a06260aa31#r885899944 * fix lockfile * Update packages/backend/package.json Co-authored-by: iwata <ishowta@gmail.com> * remove packagemanager * `yarn run gulp` in `build` instead of just `gulp` * Update CHANGELOG.md * update lockfile * Add .yarn/cache to gitignore for packages * ? * move resolutions * ✌️ * update lockfie * update-lockfile * update yarn.lock * fix build * fix * fix * fix: add @tensorflow/tfjs * ダメ * modify lockfile * use yarnrc * update yarnlock * add jest-mock * update-lockfile * update lockfile * update lockfile * move jest-mock, update lockfile Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com> Co-authored-by: tamaina <tamaina@hotmail.co.jp> Co-authored-by: ishowta <ishowta@gmail.com>
What
Migrate to Yarn Berry (v3.2.1)
Resolve #5858
Supersede #8472
Why
As yarn v3 (yarn berry) has worked with Misskey for a while and provides better performance when compiling while still retaining backwards compatibility with yarn v1, I feel that upgrading to yarn berry would be a smart choice.
Additional info
I've been building Misskey with yarn v3 for two months now both on my server for production and on my development machine with absolutely no problems. This PR was made simply by running
yarnwith yarn 3.2.1 and following the yarn migration instructions.Further steps