Skip to content

"gulp" -> "jake"#24069

Merged
DanielRosenwasser merged 1 commit into
masterfrom
amcasey-gulp-jake
Jun 11, 2018
Merged

"gulp" -> "jake"#24069
DanielRosenwasser merged 1 commit into
masterfrom
amcasey-gulp-jake

Conversation

@amcasey
Copy link
Copy Markdown
Member

@amcasey amcasey commented May 11, 2018

On branch release-2.8, gulp produces a build error. In practice, jake is our supported build tool.

On branch `release-2.8`, `gulp` produces a build error.  In practice, `jake` is our supported build tool.
Copy link
Copy Markdown
Member

@sandersn sandersn left a comment

Choose a reason for hiding this comment

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

Interesting to note that we had never changed the instructions for runtests-browser to use gulp argument syntax. (gulp uses --tests=x not tests=x)

@weswigham
Copy link
Copy Markdown
Member

weswigham commented May 11, 2018

Nooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo

jake doesn't actually implement all of our build tasks, even if its still some people's (and CI's) primary entrypoint.... it shells out to gulp for doing the runtests-browser build (because its complicated), for example.

The point of listing gulp in the readme was to encourage people to swap; if people aren't swapping (and allowing the gulp build version to break), I'm all for going through and making the rest of the jake commands a passthru as well.

On branch release-2.8, gulp produces a build error.

But it turns out the actual issue is the reason that we swapped from Gulpfile.ts to Gulpfile.js - the latest ts-node tried to typecheck the entire dir (including all our test .ts files); that fix just never hit the 2.8 branch (noone thought to port it, since the ci server still only uses jake for everything). If you port #23486 to release-2.8, gulp should work fine on it.

@amcasey
Copy link
Copy Markdown
Member Author

amcasey commented May 11, 2018

@weswigham I would like the team and community workflows to match and the combined workflow to succeed. If both of those things are true, I don't care which tool we use.

@weswigham
Copy link
Copy Markdown
Member

@amcasey That's why we've been trying to get everyone on the team to use gulp, since we're one of around 3 projects that still use jake.

@amcasey
Copy link
Copy Markdown
Member Author

amcasey commented May 11, 2018

I'm a little surprised this change failed validation.

Batched into 3 groups with approximate total file sizes of 2152097 bytes in each group. (90.0% of total tests batched)
[․․․․․․․․․․]
[▬․․․․․․․․․] 5481 passing
[▬▬․․․․․․․․] 10458 passing
[▬▬▬․․․․․․․] 15411 passing
[▬▬▬▬․․․․․․] 20616 passing
[▬▬▬▬▬․․․․․] 26099 passing
[▬▬▬▬▬․․․․․] 26105 passing
[▬▬▬▬▬▬․․․․] 31540 passing
[▬▬▬▬▬▬▬․․․] 37653 passing
[▬▬▬▬▬▬▬▬․․] 44599 passing
Test worker process exited with nonzero exit code!
jake aborted.
Error: Process exited with code 2
    at api.fail (/home/travis/build/Microsoft/TypeScript/node_modules/jake/lib/api.js:336:18)
    at failWithStatus (/home/travis/build/Microsoft/TypeScript/Jakefile.js:867:9)

@weswigham
Copy link
Copy Markdown
Member

weswigham commented May 11, 2018

Yeah, I've seen node6 on travis flake like that once in a long time before, too. No idea what causes it (beyond a worker dying), since there's no error or timeout logged, and the last of the progress messages isn't even printed, so we know the tests don't complete. It's strange. Haven't really inspected it much, though, since I've only seen it on ci, only on node6, and rarely, at that.

@sandersn
Copy link
Copy Markdown
Member

@weswigham I would like the team and community workflows to match and the combined workflow to succeed. If both of those things are true, I don't care which tool we use
I agree, but I had problems with [1] the gulp build tasks not quite being baked and [2] gulp build tasks falling out of date and breaking. If making jake a complete passthrough to gulp is the solution, then we should do that instead. I looked at the source of jake's runtests-browser, though, and didn't see any mention of gulp. Were you talking about browserify?

since we're one of around 3 projects that still use jake.
Source? Or is it my day to not recognise hyperbole? :]

@weswigham
Copy link
Copy Markdown
Member

weswigham commented May 14, 2018

Were you talking about browserify?

yeah, which is a prereq for the browser test task.

Source? Or is it my day to not recognise hyperbole?

Yes. ;) Compare stats on npm here and here for the unflattering realistic comparison.

@RyanCavanaugh
Copy link
Copy Markdown
Member

There are dozens of us, Wesley

@amcasey
Copy link
Copy Markdown
Member Author

amcasey commented May 14, 2018

I'll go ahead and merge this then? I don't think flipping it back will be the most challenging part of a jake-to-gulp migration.

@mhegazy
Copy link
Copy Markdown
Contributor

mhegazy commented May 14, 2018

This seems like a good time to finally pick one build system and go with it.. having two build systems is rather silly... and no positive comes out of it really.. only additional work for everyone who touch the build, and some confusion for new team members and contributors..

We originally added gulp with a promise of faster build times and optimized watch behavior.. none of these have materialized, and instead we have added a good chunk of npm dependencies instead..

I truly do not care which one we use, or whether we are using a popular tool or not.. what i care about is that we have one..

I would say let's have a poll, and see which one ppl want to use and remove the other..

@sandersn
Copy link
Copy Markdown
Member

I vote gulp, but let's wait until after Ryan's project dependency work goes in. Even if the gulpfile doesn't need to change that much, it would be better to keep it stable until after that's done.

@NN---
Copy link
Copy Markdown

NN--- commented May 20, 2018

I vote for Sparky.
Sparky has nicer usage and has context passing feature.

@DanielRosenwasser DanielRosenwasser merged commit d8f6f30 into master Jun 11, 2018
@DanielRosenwasser DanielRosenwasser deleted the amcasey-gulp-jake branch June 11, 2018 20:32
@DanielRosenwasser
Copy link
Copy Markdown
Member

If jake's the source of truth, we should just recommend people use that. We can revert in the future if we think otherwise.

@weswigham
Copy link
Copy Markdown
Member

@DanielRosenwasser

I vote gulp, but let's wait until after Ryan's project dependency work goes in. Even if the gulpfile doesn't need to change that much, it would be better to keep it stable until after that's done.

We were waiting for roughly this week. 🤷‍♀️

@RyanCavanaugh
Copy link
Copy Markdown
Member

The jakefile is about to get much smaller which will make switching to a new set of three mostly-similar task runners easier

@microsoft microsoft locked as resolved and limited conversation to collaborators Oct 21, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants