You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
there is significant overhead for new contributors who don't know make and don't use bash (think: using guis a lot, are on windows, or use a different non-bourne style shell)
make commands are easy to get wrong cross-platform, even if a windows user has cygwin / bash installed
As of now I prefer Makefile for the simplicity. But my opinion is biased since I don't use windows and makefiles work flawlessly on Unix systems.
Should we investigate any JS libraries that ease out the process and reduce the elaborate handrolled scripts? I found one https://github.com/jakejs/jake but did have a proper look yet.
there is significant overhead for new contributors who don't know make and don't use bash
(think: using guis a lot, are on windows, or use a different non-bourne style shell)
Makefiles will not be changed by contributors most of the times. Maybe we should add instructions to install Cygwin for windows contributors?
make commands are easy to get wrong cross-platform, even if a windows user has cygwin / bash
installed
@iHiD Copy a few top-level files, create a temporary directory, copy in all the exercise tests, and rename example.js to the correct filename -- then lints and runs tests. Used by travis at the moment. I prefer having all this in package.json scripts.
As of now I prefer Makefile for the simplicity. But my opinion is biased since I don't use windows and makefiles work flawlessly on Unix systems.
@tejasbubane I work with both which is why I know the pain. Make is really not straightforward on windows, even with cygwin.
I did not know this. Any specific examples?
Yeah, the most simple one is that anytime you need to escape something it's not the same cross shells; similar to why cross-env exists.
Makefiles will not be changed by contributors most of the times. Maybe we should add instructions to install Cygwin for windows contributors?
If we stay with make, I 👍 this proposal -- I think #287 is also very relevant.
Should we investigate any JS libraries that ease out the process and reduce the elaborate handrolled scripts? I found one https://github.com/jakejs/jake but did have a proper look yet.
@iHiD Ohh right sorry for not clarifying that in the issue.
Makefile does a few things in this repo:
Copy package.json from the root directory to each exercise directory. This makes sure all files being served to users are in sync. Contributors doing any changes to package.json are supposed ro run this and commit changes.
To be sure contributors making any change to package.json in project root have propagated (and commited) that change to all exercises, we run md5 checksum on top-level and exercise-level package.json files. Soon will be having more files like babel and eslint configs to keep in sync.
Create a ./tmp_exercises copy source and test files there. Run tests inside tmp_exercises directory. This allows Jest to run tests in parallel and is way faster than running inside in exercise directory - faster CI builds.
Activity
SleeplessByte commentedon Mar 25, 2019
I would also want to add that:
Makefile:
iHiD commentedon Mar 25, 2019
Sounds good to me.
tejasbubane commentedon Mar 25, 2019
As of now I prefer Makefile for the simplicity. But my opinion is biased since I don't use windows and makefiles work flawlessly on Unix systems.
Should we investigate any JS libraries that ease out the process and reduce the elaborate handrolled scripts? I found one https://github.com/jakejs/jake but did have a proper look yet.
Makefiles will not be changed by contributors most of the times. Maybe we should add instructions to install Cygwin for windows contributors?
I did not know this. Any specific examples?
iHiD commentedon Mar 25, 2019
What's the Makefile actually do here?
SleeplessByte commentedon Mar 25, 2019
@iHiD Copy a few top-level files, create a temporary directory, copy in all the exercise tests, and rename example.js to the correct filename -- then lints and runs tests. Used by travis at the moment. I prefer having all this in package.json scripts.
@tejasbubane I work with both which is why I know the pain. Make is really not straightforward on windows, even with cygwin.
Yeah, the most simple one is that anytime you need to escape something it's not the same cross shells; similar to why cross-env exists.
If we stay with make, I 👍 this proposal -- I think #287 is also very relevant.
If we move to JS scripts, then 👍 this proposal!
tejasbubane commentedon Mar 25, 2019
@iHiD Ohh right sorry for not clarifying that in the issue.
Makefile does a few things in this repo:
Copy
package.jsonfrom the root directory to each exercise directory. This makes sure all files being served to users are in sync. Contributors doing any changes topackage.jsonare supposed ro run this and commit changes.To be sure contributors making any change to
package.jsonin project root have propagated (and commited) that change to all exercises, we runmd5checksum on top-level and exercise-levelpackage.jsonfiles. Soon will be having more files like babel and eslint configs to keep in sync.Create a
./tmp_exercisescopy source and test files there. Run tests insidetmp_exercisesdirectory. This allows Jest to run tests in parallel and is way faster than running inside in exercise directory - faster CI builds.tejasbubane commentedon May 9, 2019
@SleeplessByte Just saw another point in your favour - #676 (comment)
SleeplessByte commentedon May 10, 2019
Ah yes. I also believe we should update
CONTRIBUTING.Use JS scripts instead of Makefile
Use JS scripts instead of Makefile
Use JS scripts instead of Makefile
Use JS scripts instead of Makefile
Use JS scripts instead of Makefile (#680)
SleeplessByte commentedon May 29, 2019
Resolved via #680