jfmengels / node-elm-review

CLI for elm-review
https://package.elm-lang.org/packages/jfmengels/elm-review/latest/
BSD 3-Clause "New" or "Revised" License
47 stars 25 forks source link

Turbo-ize #164

Closed lishaduck closed 1 week ago

lishaduck commented 1 week ago

Depends on #163 Relates to #156

npm-run-all kept acting up, so I went ahead and migrated elm-review to turbo. Key things: everything is parallelized now. It's also cached.

To run tasks, use turbo ... instead of npm run ..., which is installable via npm install -g turbo You can also use npx turbo. They both run using our pinned turbo, the global one just proxies to the local one. And, of course, you can still run npm run ..., it just won't get cached.

If you want to add a task, just add it in the package.json. It'll automatically get cached. If you find it gets invalidated too much, you can add it to turbo.json.

Here's the diff as GH doesn't play well with stacks from forks: https://github.com/lishaduck/node-elm-review/compare/bump-deps-2...turbo I also updated CI. I hope you don't mind.

socket-security[bot] commented 1 week ago

New and removed dependencies detected. Learn more about Socket for GitHub ↗︎

Package New capabilities Transitives Size Publisher
npm/@types/folder-hash@4.0.4 None 0 7.09 kB types
npm/@types/jest@27.5.2 Transitive: environment, eval +12 447 kB types
npm/@types/minimist@1.2.5 None 0 6.27 kB types
npm/@types/node@14.18.63 None 0 1.61 MB types
npm/@typescript-eslint/eslint-plugin@5.62.0 Transitive: environment, filesystem +42 6.99 MB jameshenry
npm/@typescript-eslint/parser@5.62.0 Transitive: environment, filesystem +30 2.14 MB jameshenry
npm/elm-test@0.19.1-revision12 Transitive: environment, filesystem, shell +8 489 kB lydell
npm/elm-tooling@1.15.1 environment, filesystem, network, shell 0 100 kB lydell
npm/eslint-config-prettier@9.1.0 None 0 20.8 kB lydell
npm/eslint-config-turbo@2.0.4 Transitive: environment, eval, filesystem, shell +2 477 kB turbobot
npm/eslint-plugin-unicorn@52.0.0 Transitive: environment, eval, filesystem, unsafe +71 10.9 MB sindresorhus
npm/eslint@8.57.0 environment, filesystem Transitive: eval, unsafe +75 11.1 MB eslintbot

🚮 Removed packages: npm/@types/chalk@2.2.0, npm/@types/jest@29.5.1, npm/@types/minimist@1.2.2, npm/@types/node@18.15.13, npm/@typescript-eslint/eslint-plugin@5.59.1, npm/@typescript-eslint/parser@5.59.1, npm/elm-test@0.19.1-revision10, npm/elm-tooling@1.15.0, npm/eslint-config-prettier@8.8.0, npm/eslint-plugin-unicorn@46.0.0, npm/eslint@8.39.0, npm/strip-ansi@6.0.1

View full report↗︎

lishaduck commented 1 week ago

~Can you tell me where I can find the docs for turbo? I'm having trouble finding it.~ It's at https://turbo.build/repo/docs I kept getting confused because I though turbo was a different tool than turborepo.

Yeah. turbo is the cli, which came first. Then they made turbopack, so they retroactively named it turborepo, but they share a cli (well, they will eventually).

Do you also know if there's a way to not have the interactive window showing up? Mostly out of curiosity.

The --log-order flag. You can pass either --log-order=grouped or --log-order=stream. stream is essentially npm-run-all

npm-run-all kept acting up

Do you remember what kind of problems you were encountering?

It wasn't injecting node_modules/.bin into the path, so some tests were failing.

Do you know if it's possible to keep a test script so that I can just run npm test ?

Yeah. I can rename test to, say, testing, and then alias npm test to turbo testing. It's meant to be used in a monorepo where you do that for all your tasks in your root, then use turbo in the individual packages, but it works well in single package repos as well.

jfmengels commented 1 week ago

I can rename test to, say, testing, and then alias npm test to turbo testing

I think this would be great. npm test (or actually npm t) is a very ingrained shortcut for me :smile:

I've pushed the change now :+1:

lishaduck commented 1 week ago

If you prefer the log-order flags, I just found out you can set an env variable: Set export TURBO_UI=0 and export TURBO_LOG_ORDER=streamed (or grouped) in your .zshrc (or .bash_profile or whatever)