-
Notifications
You must be signed in to change notification settings - Fork 25
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
Migrate to pnpm + turborepo #612
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎ 6 Ignored Deployments
|
2d18fbb
to
8c1b3cb
Compare
8c1b3cb
to
21ef505
Compare
21ef505
to
22e78bc
Compare
22e78bc
to
39b6e1b
Compare
39b6e1b
to
8b2b573
Compare
8b2b573
to
d365bb6
Compare
d365bb6
to
8419487
Compare
# Conflicts: # common/config/rush/command-line.json # common/config/rush/repo-state.json # packages/apps/tools/src/pages/transactions/module-explorer/index.tsx # pnpm-lock.yaml # rush.json
# Conflicts: # common/config/rush/repo-state.json # packages/apps/graph-client/package.json # packages/apps/graph/package.json # pnpm-lock.yaml
@@ -5,6 +5,6 @@ Thanks for contributing to this project! | |||
- Link to the related issue (if any) | |||
- Add use cases, scenarios, images and screenshots | |||
- Add documentation and tutorials | |||
- Run `rush test` and `rush change` | |||
- Run `pnpm install` and `pnpm test` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm missing a notion to add a changelog. How can a user add a changelog to the PR?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is handled in another PR: #712
"engines": { | ||
"node": ">=16", | ||
"pnpm": ">=8" | ||
}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be only node LTS versions
"target": "es2019", | ||
"lib": ["es2019", "DOM"], | ||
"skipLibCheck": true |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Current LTS of node
is 16 and 18.
Does this affect that?
https://github.com/nodejs/Release#nodejs-release-working-group
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
16 is EOL in a few weeks so I think we're good
workspace.json
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not a config file for the monorepo if I'm correct? Maybe to prevent wrong assumptions we can rename this, or cache it as a .workspace.json and regenerate when a packages is added (a simple ls ./packages/*/*
would suffice)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I renamed it to packages.json
and added a script to update it
# Conflicts: # .gitignore # common/config/rush/repo-state.json # packages/apps/docs/package.json # packages/apps/graph-client/package.json # packages/apps/graph/package.json # pnpm-lock.yaml
# Conflicts: # .github/workflows/ci.yml # common/autoinstallers/rush-command-packages/pnpm-lock.yaml # common/autoinstallers/rush-fix-versions/pnpm-lock.yaml
This monorepo is managed using Rush. The tool is opinionated and may work well
for certain projects and teams, yet it's not performing to our standards and
needs (which is also opinionated, lol). The main issue is that it's basically a
framework in front of everything. A framework works well, until it doesn't.
Let's follow widely used standards and the Unix philosophy a bit more: pick the
right tool for each job separately. So we can update and swap out tools
separately as the
trendneed arises.Rush is also an extra unnecessary blocker/hurdle for using the latest versions of Node.js and pnpm.
What jobs?
But how?
pnpm
does a lot out of the box already (with this PR we go from v6 to v8 btw!)Guide
"private": true
for packages that should not be published.stderr
+ warnings allowed). Also see Allow warnings in test and lint commands #442.package.json#scripts
. When we replace a tool the commands don't change. You can runturbo build
instead ofpnpm build
, but that's on you.rush build
job had linting included, such commands/actions should be separated (unless significant performance gain or something).TODO
pactjs
bin workarounds/issues e.g. in@kadena/client-examples
@kadena/client-examples
TODO in follow-up PRs
packages/*
structureMisc.