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

Improved yarn rwt link, with selective copy #2122

Merged
merged 5 commits into from
Mar 31, 2021

Conversation

dac09
Copy link
Contributor

@dac09 dac09 commented Mar 26, 2021

What?

As discussed, new workflow:

  • copies only files that are meant to be packaged from FRAMEWORK_PATH/packages/ to PROJECT_PATH/redwood
  • attempted to use esbuild, but unfortunately can't do that just yet. However code is simple enough to switch over when this is possible
  • link is now a simple nodejs script, does not need to be compiled before to use, so we can run it from the repo too like this:
yarn build:link -- -- --dest PATH_TO_PROJECT/packages

(crazy dashes for lerna)

  • if you're a super advanced user you can do selective link like this
cd packages/cli
./../../tasks/build-link --dest PATH_TO_PROJECT/packages

This will only link the cli package. But I haven't exposed this in rwt cli.

@dac09 dac09 changed the title First attempt: try selective copy + build with esbuild to destination [Draft] Improved yarn rwt link Mar 26, 2021
@github-actions
Copy link

github-actions bot commented Mar 26, 2021

📦 PR Packages

Click to Show Package Download Links

https://rw-pr-redwoodjs-com.s3.amazonaws.com/2122/create-redwood-app-0.28.3-77f955e.tgz
https://rw-pr-redwoodjs-com.s3.amazonaws.com/2122/redwoodjs-api-0.28.3-77f955e.tgz
https://rw-pr-redwoodjs-com.s3.amazonaws.com/2122/redwoodjs-api-server-0.28.3-77f955e.tgz
https://rw-pr-redwoodjs-com.s3.amazonaws.com/2122/redwoodjs-auth-0.28.3-77f955e.tgz
https://rw-pr-redwoodjs-com.s3.amazonaws.com/2122/redwoodjs-cli-0.28.3-77f955e.tgz
https://rw-pr-redwoodjs-com.s3.amazonaws.com/2122/redwoodjs-core-0.28.3-77f955e.tgz
https://rw-pr-redwoodjs-com.s3.amazonaws.com/2122/redwoodjs-dev-server-0.28.3-77f955e.tgz
https://rw-pr-redwoodjs-com.s3.amazonaws.com/2122/redwoodjs-eslint-config-0.28.3-77f955e.tgz
https://rw-pr-redwoodjs-com.s3.amazonaws.com/2122/redwoodjs-eslint-plugin-redwood-0.28.3-77f955e.tgz
https://rw-pr-redwoodjs-com.s3.amazonaws.com/2122/redwoodjs-forms-0.28.3-77f955e.tgz
https://rw-pr-redwoodjs-com.s3.amazonaws.com/2122/redwoodjs-internal-0.28.3-77f955e.tgz
https://rw-pr-redwoodjs-com.s3.amazonaws.com/2122/redwoodjs-prerender-0.28.3-77f955e.tgz
https://rw-pr-redwoodjs-com.s3.amazonaws.com/2122/redwoodjs-router-0.28.3-77f955e.tgz
https://rw-pr-redwoodjs-com.s3.amazonaws.com/2122/redwoodjs-structure-0.28.3-77f955e.tgz
https://rw-pr-redwoodjs-com.s3.amazonaws.com/2122/redwoodjs-testing-0.28.3-77f955e.tgz
https://rw-pr-redwoodjs-com.s3.amazonaws.com/2122/redwoodjs-web-0.28.3-77f955e.tgz

Install this PR by running yarn rw upgrade --pr 2122:0.28.3-77f955e

@dac09
Copy link
Contributor Author

dac09 commented Mar 26, 2021

The error may not be related to anything we're doing, setting policies like this seems to help: yarnpkg/yarn#8405

@dac09 dac09 requested a review from peterp March 26, 2021 16:36
@@ -81,7 +81,7 @@ export const fixProjectBinaries = (PROJECT_PATH) => {
})
}

export const copyFiles = async (src, dest) => {
export const copyFiles = async (src, dest, { skipChmod, silent } = {}) => {
// TODO: Figure out if we need to only run based on certain events.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ignore these changes, I'll take them out

addRedwoodFolderToGitIgnore()

// Let workspaces do the link
await execa('yarn build:link', [' -- -- --dest', projectPackagesPath], {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the key change

@@ -0,0 +1,72 @@
#!/usr/bin/env node
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And this is how we're copying only relevant files, and using esbuild to build the framework. There must be some config missing in esbuild

@dac09 dac09 changed the title [Draft] Improved yarn rwt link Improved yarn rwt link, with selective copy Mar 29, 2021
@dac09 dac09 marked this pull request as ready for review March 29, 2021 14:34
@dac09
Copy link
Contributor Author

dac09 commented Mar 29, 2021

@peterp ready for review. Unfortunately couldn't get esbuild to work, as we discussed, but hopefully in the future!

Copy link
Contributor

@thedavidprice thedavidprice left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I trust whatever @dac09 wants to do ¯_(ツ)_/¯

@dac09
Copy link
Contributor Author

dac09 commented Mar 31, 2021

Merging to test with canary, happy to revert if there's objections later

@dac09 dac09 merged commit f1149a9 into redwoodjs:main Mar 31, 2021
@thedavidprice thedavidprice added this to the next release milestone Mar 31, 2021
@thedavidprice
Copy link
Contributor

@dac09 Forgot to ask --> does this change the "how to use" instructions/flow?

@dac09
Copy link
Contributor Author

dac09 commented Mar 31, 2021

@dac09 Forgot to ask --> does this change the "how to use" instructions/flow?

Nope, non-breaking change :) Just make sure your local branch has the latest code from main merged :)

@thedavidprice
Copy link
Contributor

Trying it now!

@thedavidprice
Copy link
Contributor

Not working for me. Here's my process:

  1. installed canary in my local Dev Project (DP)
  2. pulled latest code into local Framework (F)
  3. F: clean and install
  4. DP: yarn rwt link path/to/F
  5. waited 'till things stopped moving
  6. DP: yarn rw help ERROR "no such file or directory"

😢

@dac09
Copy link
Contributor Author

dac09 commented Apr 1, 2021

Not working for me. Here's my process:

  1. installed canary in my local Dev Project (DP)

  2. pulled latest code into local Framework (F)

  3. F: clean and install

  4. DP: yarn rwt link path/to/F

  5. waited 'till things stopped moving

  6. DP: yarn rw help ERROR "no such file or directory"

😢

There's a chance you will need to wait a little longer! I've noticed that the console output "stops" for a bit while it's doing something, then resumes.

Best way is to wait till you see the box that tells you "your project is now linked!" (with 🚀 emoji ofcourse)

Hope this fixes it for you!!

@thedavidprice
Copy link
Contributor

Best way is to wait till you see the box that tells you "your project is now linked!" (with 🚀 emoji ofcourse)

^^ ha! This never displayed for me. I did give it quite awhile. Can try again.

@dac09
Copy link
Contributor Author

dac09 commented Apr 1, 2021

On my machine it takes about 90 odd seconds to build, maybe 30-60s to install and then it displays the box, and then starts the watcher. Not ideal, but works consistently for me so far. To speed things up a little you could pass --no-clean

If not, I'll try and fix in the morn!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants