-
Notifications
You must be signed in to change notification settings - Fork 2
Meetings
Benjamin Arthur Lupton edited this page Jan 14, 2014
·
4 revisions
Participants: Tyler, Jo, BenA, BenL, Eric
-
Goal: have library authors (like Sass, CoffeeScript) maintain their own plugin that goes into any build tool (grunt, gulp, brunch, etc.)
-
Task Specification
-
Streams vs Buffers vs Files
- Streams
- Implementations:
- Problems:
- Templating engines are synchronous, streams are asynchronous
- Buffers
- Implementations:
- DocPad
- Problems:
- DocPad runs out of memory for large sites (1GB+ of data)
- Implementations:
- Files
- Implementations:
- Grunt
- Problems:
- Interacting with the file system is slow
- Templating engines are synchronous, file system is asynchronous
- Implementations:
- Streams
-
How will tasks be installed?
-
What use cases shall we handle?
- Rendering transforms? E.g. http://docpad.org/docs/plugins#renderers
- Are we just trying to be https://github.com/visionmedia/consolidate.js/
- Async vs Sync?
- Logging?
- Server middlewares?
- Misc: E.g. http://docpad.org/docs/plugins#helpers
- Admin interfaces? E.g. http://docpad.org/docs/plugins#admin-interfaces
- Rendering transforms? E.g. http://docpad.org/docs/plugins#renderers
-
-
Task Complications
- Sourcemaps
- Have to be implemented on every single step
- RequireJS
- Sourcemaps
-
What do we need to agree on?
- Do we want to do this? (implement the same task spec)
- BenA: Grunt: Yes!
- BenL: DocPad: We're happy though, but I'm doubtful of where in DocPad it would be implemented, as we are more than just rendering transforms
- Do we want to do this? (implement the same task spec)
-
BenL: Will DocPad interop with node task?
- Does this make sense to implement?
- Right now if someone wants to leverage interop, they just install the build system plugin they want, e.g. docpad-plugin-grunt
- Advantage: less wrappers, interop on the application level
- Does this make sense to implement?
-
Are we all trying to do the same thing? (implementing the same tasks in our own systems)
- Grunt:
- Uses file system
- DocPad:
- Uses asynchronous grouped event listeners: https://github.com/bevry/event-emitter-grouped
- http://docpad.org/docs/events
- http://docpad.org/docs/plugin-write
- Gulp:
- Uses standard streams with standard (error) events
- Grunt:
-
What are the biggest pain points of your current build system?
- BenA: The grunt team do not have the bandwidth to manage all the issues with our 40+ plugins
- Tyler: We have to trust people on code we don't know about, are implementing it the right way
- A: Want to do it; Pro-active
- B: Will do it; Capable