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

Add support for Gulp #430

Closed
andismith opened this issue Jan 15, 2014 · 33 comments
Closed

Add support for Gulp #430

andismith opened this issue Jan 15, 2014 · 33 comments
Labels

Comments

@andismith
Copy link

Gulp is the new kid on the block, and seems much faster than Grunt. It would be great for Assemble to put Gulp support on their roadmap!

Thanks

@jonschlinkert
Copy link
Member

Hey @andismith! we've discussed this a lot, and others have been asking so we'll probably do something after v0.5.0 (which should be this month).

@andismith
Copy link
Author

Cool :)

@owzzz
Copy link

owzzz commented Jan 23, 2014

I've tried using https://npmjs.org/package/gulp-grunt to run grunt's assemble task within gulp as a temporary solution with no luck. Looking forward to seeing gulp supported. Thanks.

Error:

Object assemble has no method 'on'

@doowb
Copy link
Member

doowb commented Jan 23, 2014

@owzzz Did you open an issue with gulp-grunt? From looking at their docs, it looks like you still setup a Gruntfile with the Assemble configuration like normal, then tell gulp-grunt where to find that gruntfile to load in before running your tasks.

The error seems like you're doing gulp.task('assemble', require('assemble')); since it's trying to register an event listener (and assemble isn't an EventEmitter, yet 😉 ).

In our refactor we making changes that might allow us to use assemble with gulp, but it's still difficult for me to wrap my head around how it would work. In Assemble, we're loading all the files and doing some things that require cross file data or manipulation, like with layouts and relative page links. With gulp, they stream the files through so your plugin is expected to act on one at a time and stream the results out.

@koistya
Copy link

koistya commented Jan 24, 2014

@jonschlinkert Great news!

@danjessen
Copy link

@jonschlinkert Great news ... can we expect it in february 😏 ?

@lmartins
Copy link

I've suggested this also on the Gulp project. It's the only task im missing from Grunt in Gulp.

@JosefJezek
Copy link

+1

5 similar comments
@indolering
Copy link

+1

@koistya
Copy link

koistya commented Feb 25, 2014

👍

@douggrubba
Copy link

👍

@henriknorberg
Copy link

+1

@colourgarden
Copy link

+1

@piersolenski
Copy link

+1 please!

@wjthomas9
Copy link

+1

1 similar comment
@antoinepourriot
Copy link

+1

@gremo
Copy link

gremo commented Mar 11, 2014

We need this! +1

@austinpray
Copy link

Where does one check the progress of this/begin helping this along?

@jonschlinkert
Copy link
Member

There two prs need to be resolved first:

@austinpray
Copy link

Thank you, time to do some reading :)

@jonschlinkert
Copy link
Member

👍

@rwxrob
Copy link

rwxrob commented Mar 14, 2014

+1 Let us know if there is anything we can do to help.

@jonschlinkert
Copy link
Member

thanks @robmuh, that would be great, help is always welcome!

@jonschlinkert
Copy link
Member

Just wanted to provide more detail on our progress to help clarify some things for everyone, in particular that the holdup isn't related to gulp.

Since Assemble started as a grunt plugin, the code base, documentation, examples, plugins and so on have been almost entirely tuned to grunt and grunt-related workflows. Even some of the handlebars helpers. In other words, as the code base currently stands Assemble just isn't compatible with Gulp. This is more about respecting Gulp's conventions than whether or not it can be done. Could we force it and break Gulp's conventions? Sure, but that's not something we're willing to do.

However, we're working very hard on changing this with the v0.5.0 branch. With 0.5, Assemble has been completely refactored 100% from the ground up to be build-chain agnostic. We love both Grunt and Gulp, so Assemble will support both ecosystems via grunt-assemble and gulp-assemble, and it will also be super easy for community members to add Assemble to other build chains or just use Assemble as a regular node lib. So that, along with some new features, a cli, and a powerful api, 0.5 is shaping up to be a pretty awesome release.

So, how far along are we?

At present we're working through tests, fixing bugs, and so on. We're actually using it to vet it out on real projects, checking for feature parity, etc.

We're also updating plugins to work with 0.5, refactoring and cleaning up the handlebars-helpers lib so that the helpers can more easily be used in non-Assemble projects (or even non-Node.js projects). Next is documenting the new features, CLI, API, and grunt and gulp plugins. but we also have to re-write the existing docs so that everything, including code examples, describes how to use Assemble by itself. We're tracking progress here if you want to see how things are going or help out.

We're on the last stretch, so it's possible that we only have a few days to go. @doowb, anything to add to this? Any thoughts on how far out we are from releasing the gulp plugin? etc.

@rwxrob
Copy link

rwxrob commented Mar 14, 2014

Thanks very much for the update. Can't wait to become proficient enough to demo it for my students and local meetups as a part of modern apps/sites and workflows.

@jonschlinkert
Copy link
Member

@robmuh, very cool! we're always willing to help!

@doowb
Copy link
Member

doowb commented Mar 14, 2014

I pushed up an initial version to the gulp-assemble repo. This isn't published to npm yet so try it from the repo directly.

This version uses the v0.5.0 assemble branch and basically pipes the source templates through assemble and into a dest path. There's only one test on this repo so far.

We need help with cleaning up documentation and adding gulp specific tests. Also, other repos (like helpers and plugins for assemble) that use grunt specific code will have errors and need to be updated to remove that grunt specific code.

There are still features missing from the assemble core, but those should be in soon and will automatically be available in grunt-assemble and gulp-assemble.

Enjoy!

@jonschlinkert
Copy link
Member

nice, @doowb!

@austinpray
Copy link

Sounds like a lot of work! I want to help, but I am a bit overwhelmed with
where to start. Would one of you guys be okay with delegating a very
specific task to me? I am very good at:

  • The English language
  • Javascript

Narrowing down a task would help me find a place to start grokking the
codebase hardcore.

@jonschlinkert
Copy link
Member

@austinpray, that's awesome!

Would one of you guys be okay with delegating a very specific task to me?

Absolutely! @doowb or I can use the help for sure. I'll talk to @doowb and see what we need most

@lmartins
Copy link

Awesome stuff Brian. Thank you!

Sent from my iPhone

On 14/03/2014, at 20:00, Brian Woodward notifications@github.com wrote:

I pushed up an initial version to the gulp-assemble repo. This isn't published to npm yet so try it from the repo directly.

This version uses the v0.5.0 assemble branch and basically pipes the source templates through assemble and into a dest path. There's only one test on this repo so far.

We need help with cleaning up documentation and adding gulp specific tests. Also, other repos (like helpers and plugins for assemble) that use grunt specific code will have errors and need to be updated to remove that grunt specific code.

There are still features missing from the assemble core, but those should be in soon and will automatically be available in grunt-assemble and gulp-assemble.

Enjoy!


Reply to this email directly or view it on GitHub.

@jonschlinkert
Copy link
Member

@austinpray would you want to help document 0.5 API and maybe write some tests along the way? A very high level outline would be perfect - then we can team up on filling in details. we would obviously be more than happy to walk you through the code, answer questions, whatever you need.

This seems like a perfect thing you could help with since it uses both of the things you listed. what do you think? @doowb?

@jonschlinkert
Copy link
Member

K folks, I'm going to close this so that we can continue this discussion on the gulp-assemble issues. thanks!

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

No branches or pull requests