After struggling with a decision for a while, I ended up just using fabric 
and building this into our deployment routine. 

Our pyramid app toggles different includes between Production and Testing 
(based on environment.ini variables):

- production 
   * uses compressed / minified / joined / filtered assets in /-dist
   * appends a release number as the query string to all assets ( to bust 
cache across releases )

- development
   * uses normal assets in /js /css
   * appends the datetime as the query string to all assets ( to bust cache 
across requests )

before joining and minifying the js files, they're heavily 
regexed/filtered.  a javascript flag is set to production, logger lines are 
commented out, and lots of other changes.  sometimes libraries are patched.

I also manage versioned assets like this:

  /js
  |-- /jquery
     |-- /active ( symlink to other folder in this directory )
     |-- /v1.8.1
     |-- /v1.8.5

the fabric deployment file is written to deploy off the /active symlink in 
each folder.  It occasionally needs to be rewritten/updated , as 3rd party 
libraries sometimes will change their file structure.  

a lot of the work just re-implements the html5boilerplate build tools ( 
originally in ant, now in node ).  html5boilerplate is installed into the 
virtualenv/source, and kept relatively up-to-date.  instead of running 
their commands natively, I use fabric as the exclusive interface.  that 
lets me move files around or do all the other work in Python.

It took about three hours to set up and has been really great.  Instead of 
having to deal with all sorts of evolving config files, everything stays in 
python.  

-- 
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/pylons-discuss.
For more options, visit https://groups.google.com/d/optout.

Reply via email to