[buddypress-trac] [BuddyPress Trac] #5160: Use gruntjs to generate minified versions of the js and css files everywhere.

buddypress-trac noreply at wordpress.org
Fri Jan 31 19:58:37 UTC 2014

#5160: Use gruntjs to generate minified versions of the js and css files
 Reporter:  enej         |       Owner:
     Type:  enhancement  |      Status:  new
 Priority:  normal       |   Milestone:  2.0
Component:  Core         |     Version:
 Severity:  normal       |  Resolution:
 Keywords:               |
Changes (by DJPaul):

 * milestone:  Future Release => 2.0


 Let's use this ticket to talk about adding Grunt to BuddyPress. In
 addition to just minifying CSS and JS, Grunt would let us have a better
 development workflow by better organising plugin code vs. any other bits
 of code that we currently have in trunk (e.g. the travis file), as well as
 opening the door to things in future like using a CSS pre-compiler. Having
 a convenient script to build a release package would also help the core
 team out when we do releases, and gives a couple of interesting
 possibilities for managing the deprecation of BP-Default and old bbPress.

 If we did decide to utilise Grunt, the next issue is creating the Grunt
 file and deciding how we want the project organised. For example,
 WordPress core https://core.trac.wordpress.org/browser/trunk lives inside
 a `/src/` subfolder, and the unit tests folder, some i18n tools, and a
 bunch of non-plugin config files live at the top level. I see this as a
 fairly neat way of organising the project's files, and I suspect we'd do
 something similar if we ever worked on a new plugin.

 If we used a similar arrangement, we'd break any sites that do a SVN
 checkout of BuddyPress trunk; how many sites might be affected is unknown.
 We could assume that if you're running a SVN checkout of trunk, that
 you're keeping an eye on core development and would know how to fix the

 Another approach is not re-organising trunk, and just adding the Grunt
 file into the root `/trunk/` folder. Biggest downside is that we mix
 build/test scripts with the actual code, and everything continues to get a
 bit messier.

 I have put together proof-of-concepts for each idea:

 * https://github.com/paulgibbs/bp-grunt (move trunk)
 * https://github.com/paulgibbs/bp-grunt-lite (don't move trunk)

 `bp-grunt-lite`'s Grunt build file is a little bit more fleshed out and
 tested than `bp-grunt` is, but both should at least demonstrate the basic
 idea and generate a release build.

Ticket URL: <https://buddypress.trac.wordpress.org/ticket/5160#comment:2>
BuddyPress Trac <http://buddypress.org/>
BuddyPress Trac

More information about the buddypress-trac mailing list