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

Chore/DX: move from make to JS-based taskrunner #10889

Open
kaicataldo opened this issue Dec 18, 2019 · 8 comments
Open

Chore/DX: move from make to JS-based taskrunner #10889

kaicataldo opened this issue Dec 18, 2019 · 8 comments

Comments

@kaicataldo
Copy link
Member

@kaicataldo kaicataldo commented Dec 18, 2019

Given the higher barrier for contribution for Windows users introduced by us using make, we should explore moving to a JS-based taskrunner. WSL should be the silver bullet for this, but I haven't been able to get lerna bootstrap run in WSL (and it looks like I'm not the only one).

My initial exploration is here, but some tests are failing and I think it's due to the fact that shelljs doesn't preserve colors in the output of running shell commands.

Some other alternatives:

  • Modify the current shelljs PR and switch out shelljs.exec() for something like node-cross-spawn or execa.
  • Go all in on Gulp
  • Use something like Just

Would love to hear others' opinions on this! 😃

Follow-up question:

We use a lot of shell scripts in the dev build process that don't work natively in Windows. Should we also rewrite these in JS?

@nicolo-ribaudo nicolo-ribaudo mentioned this issue Dec 18, 2019
0 of 14 tasks complete
@TomasHubelbauer

This comment has been minimized.

Copy link

@TomasHubelbauer TomasHubelbauer commented Dec 18, 2019

We use a lot of shell scripts in the dev build process that don't work natively in Windows. Should we also rewrite these in JS?

Yes, please! I'm not partial about them being in JS, but they should IMO be cross-platform, so there are other options like PowerShell or something. But JS feels like the best choice given the project itself is written in it.

@JLHwung

This comment has been minimized.

Copy link
Contributor

@JLHwung JLHwung commented Dec 18, 2019

We do have travis building on Windows: https://travis-ci.com/babel/babel/jobs/268662807 so it is okay to build and test on Windows.

Some of maintenance scripts might not be cross platform, though. Since GNU Make is not bundled in Windows and GNU Make for Windows seems to be not actively maintained (Last updated 13 years ago), switching to JS-based task runner could help reduce the fiction here.

@thorn0

This comment has been minimized.

Copy link
Contributor

@thorn0 thorn0 commented Dec 22, 2019

@kaicataldo Did you try adding "mutex": "file:../babel-mutex" to lerna.json? This made make bootstrap work for me in WSL.

@kaicataldo

This comment has been minimized.

Copy link
Member Author

@kaicataldo kaicataldo commented Dec 23, 2019

@thorn0 I have not! Trying to find documentation around this option, but am coming up short. Mind sharing where you found that info? Thanks!

@thorn0

This comment has been minimized.

Copy link
Contributor

@thorn0 thorn0 commented Dec 23, 2019

@kaicataldo found it here lerna/lerna#806

@layershifter

This comment has been minimized.

Copy link
Contributor

@layershifter layershifter commented Dec 25, 2019

Had the same friction during first time contribution, so totally support this 👍

I vote for Gulp as it is a time proven task runner. However any cross platform solution will be great 🙏

@kaicataldo

This comment has been minimized.

Copy link
Member Author

@kaicataldo kaicataldo commented Jan 2, 2020

@thorn0 Thanks for the suggestion, but it's unfortunately still not working for me.

@danez

This comment has been minimized.

Copy link
Member

@danez danez commented Jan 14, 2020

I once started with all in gulp, but never had the time to continue with it #9674

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
6 participants
You can’t perform that action at this time.