-
Notifications
You must be signed in to change notification settings - Fork 25
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
123 changed files
with
8,982 additions
and
14,079 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
# Migration notes | ||
|
||
## What & Why | ||
|
||
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 ~~trend~~ need arises. | ||
|
||
## What jobs? | ||
|
||
- Build and test packages | ||
- Format and lint source code | ||
- Cache results of builds and tests to save time and resources | ||
- Build and test packages, and only those affected in a pull request | ||
- Publish packages | ||
- Dependency management, e.g. to fixate versions of dependencies across packages | ||
|
||
## But how? | ||
|
||
- `pnpm` does a lot out of the box already | ||
- [turborepo][1] seems great for caching and "affected packages" logic | ||
- [changesets][2] seems great for changelogs and publishing | ||
|
||
## Guide | ||
|
||
- Use more standards where possible, e.g. leverage `"private": true` for | ||
packages that should not be published. | ||
- Commands are run through the package manager (npm, pnpm, ...) based on the | ||
standardized `package.json#scripts`. When we replace a tool the commands don't | ||
change. You _can_ run `turbo build` instead of `pnpm build`, but that's on | ||
you. | ||
|
||
## TODO | ||
|
||
- [ ] Find out wat heft/rigs actually do for us | ||
- [ ] Look into version policies (e.g. to "group" packages) | ||
- [ ] Enforce fixed version across monorepo for certain/all dependencies | ||
- [ ] Fix build of `@kadena/client-examples` | ||
- [ ] Implement alternative to [packageTable.ts][3] | ||
- [ ] Propose flat `packages/*` structure | ||
|
||
## Misc. | ||
|
||
```sh | ||
pnpm run test --filter @kadena/react-ui | ||
pnpm -r run "/^format:(md|pkg|src)/" | ||
``` | ||
|
||
[1]: https://turbo.build | ||
[2]: https://github.com/changesets/changesets | ||
[3]: packages/tools/remark-plugins/src/commentMarkers/packageTable.ts |
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.