Commit Graph

72 Commits

Author SHA1 Message Date
Guo Xiang Tan 77c293f82d Prefer `Process.clock_gettime` over `Time.now`. 2018-10-05 10:25:52 +08:00
Guo Xiang Tan 13dde44c72 FIX: Limit concurrent `assets:precompile` to number of available cores. 2018-10-03 16:46:21 +08:00
Sam d1b21aa73b add timings to asset precompile 2018-07-04 09:42:38 +10:00
Sam 89ad2b5900 DEV: Rails 5.2 upgrade and global gem upgrade
This updates tests to use latest rails 5 practice
and updates ALL dependencies that could be updated

Performance testing shows that performance has not regressed
if anything it is marginally faster now.
2018-06-07 14:21:33 +10:00
Sam 5a8d2b5e45 FIX: rake assets:precompile should be re-runnable 2018-05-31 16:18:01 +10:00
Michael Brown 45c19e44f0 assets rake task: only try and detect brotli if COMPRESS_BROTLI is set 2017-11-24 12:00:38 -05:00
Michael Brown 5584085943 assets rake task: detect the brotli version on the image as the usage changes 2017-11-24 10:40:57 -05:00
Michael Brown 3c60702663 assets rake task: gzip and brotli exit codes exist for a reason - to be checked 2017-11-24 09:52:08 -05:00
Guo Xiang Tan 5012d46cbd Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
Joffrey JAFFEUX 0a478905b9 FIX: ensure we clear emoji cache before recompilation 2017-07-05 10:36:06 +02:00
Sam Saffron 1dc55bcc5b attempt to handle one more multisite edge case 2017-05-05 13:51:26 -04:00
Sam 4ed4d77fd3 correct the monkey patch 2017-04-14 15:06:52 -04:00
Sam 8370b4b1b7 FIX: don't precompile if we have no themes table 2017-04-14 10:33:35 -04:00
Sam 4161a7abec FIX: allow CSS precompilation to access newly manifested assets 2017-04-14 10:30:19 -04:00
Sam 8cd9afcfad move CSS precompilation to last step 2017-04-12 12:30:24 -04:00
Sam a3e8c3cd7b FEATURE: Native theme support
This feature introduces the concept of themes. Themes are an evolution
of site customizations.

Themes introduce two very big conceptual changes:

- A theme may include other "child themes", children can include grand
children and so on.

- A theme may specify a color scheme

The change does away with the idea of "enabled" color schemes.

It also adds a bunch of big niceties like

- You can source a theme from a git repo

- History for themes is much improved

- You can only have a single enabled theme. Themes can be selected by
    users, if you opt for it.

On a technical level this change comes with a whole bunch of goodies

- All CSS is now compiled using a custom pipeline that uses libsass
    see /lib/stylesheet

- There is a single pipeline for css compilation (in the past we used
    one for customizations and another one for the rest of the app

- The stylesheet pipeline is now divorced of sprockets, there is no
   reliance on sprockets for CSS bundling

- CSS is generated with source maps everywhere (including themes) this
    makes debugging much easier

- Our "live reloader" is smarter and avoid a flash of unstyled content
   we run a file watcher in "puma" in dev so you no longer need to run
   rake autospec to watch for CSS changes
2017-04-12 10:53:49 -04:00
Guo Xiang Tan fc3c34b78f Allow Brotli compression to be disabled when precompiling. 2017-03-27 11:55:43 +08:00
Sam c106ca6778 FEATURE: fallback asset path for multi host setups 2017-03-20 15:59:17 -04:00
Sam bc96f0fe78 rescue failure to backup assets 2017-03-20 13:43:59 -04:00
Sam e14a63cc88 FEATURE: add support for backup asset path post precompile 2017-03-20 13:05:39 -04:00
Sam 20ed11f9a5 We must GC here otherwise we risk not freeing our v8 contexts 2017-03-10 11:36:10 -05:00
Sam b68d08404d shell to node to avoid high memory usage 2017-03-09 17:05:55 -05:00
Sam ab3faeb0f9 PERF: user mini racer to uglify assets 2017-03-09 16:44:50 -05:00
Guo Xiang Tan 2c1249f381 Remove monkey patch. 2016-08-23 12:04:53 +08:00
Sam fe1ebee791 we need to fix permissions 2016-06-07 17:43:09 +10:00
Sam d0c5dc9280 rename CONCURRENT to SPROCKETS_CONCURRENT 2016-06-07 17:03:05 +10:00
Sam 8d1a556f3e FEATURE: Add brotli compression option to precompile
To enable brotli compression on static assets use COMPRESS_BROTLI
2016-06-07 16:55:57 +10:00
Guo Xiang Tan b744306654
PERF: Uglify and gzip assets concurrently. 2016-04-21 10:36:09 +08:00
Guo Xiang Tan 95e0948fba FIX: Don't use Uglifier that ships with Sprockets. 2016-04-19 14:29:20 +08:00
Guo Xiang Tan 6a33fcf48e FIX: Do not gzip when using uglifier. 2016-04-19 12:27:51 +08:00
Sam 0032047804 missing a bracket 2016-02-05 15:01:12 +11:00
Sam 886273f158 FIX: when CDN assets are not in root path source maps fail 2016-02-05 13:05:47 +11:00
Jeff Atwood 1a8487cf7b we want screw_ie8 here as we don't support IE9 2016-01-11 03:13:37 -08:00
Jeff Atwood 770adbaf71 gzip 9 takes 2x as long as 7 for +0.1% compression 2016-01-11 02:53:28 -08:00
Sam 25db4cc4d9 added DONT_PRECOMPILE_CSS env var 2015-10-13 10:48:21 +11:00
Sam 42b72a9834 parallel is not really helping, need a diff approach. 2015-10-13 10:14:48 +11:00
Sam 5f62c592a4 FEATURE: CSS_COMPILE_THREADS env setting for compiling CSS concurrently 2015-10-12 17:31:37 +11:00
Sam 42925b46b8 FEATURE: allow DONT_MINIFY flag in production for assets:precompile 2015-09-29 11:54:16 +10:00
Sam 9cad925c67 FIX: correct error message on precompile fail 2015-09-22 11:28:31 +10:00
Kane York d6129001b9 FIX: Provide proper source map URLs with a CDN 2015-07-21 11:52:54 -07:00
Sam 535e8cac5d don't force caching when compiling 2015-05-22 11:22:12 +10:00
Sam 89ac825641 add a force to ensure we properly cache stylesheets 2015-05-21 18:06:33 +10:00
Sam 45bdd23689 FEATURE: support user local switching to RTL correctly
FEATURE: support RTL in multisite
2015-05-20 15:56:54 +10:00
Neil Lalonde 406c8bb340 PERF: don't recompile css files that have already been compiled 2015-05-12 16:12:49 -04:00
Jamie Nguyen 5d16db1c48 Avoid gzip "-k" option for wider OS compatibility
The "-k" option tells gzip to keep the original files intact and is an
alternative to `gzip -c file > file.gz`. It was implemented in 2013:
http://git.savannah.gnu.org/cgit/gzip.git/commit/?id=0192f02

There are a few popular operating systems (ie, Red Hat 7, Debian Wheezy)
whose version of gzip does not have the "-k" option. Compiling assets
breaks on these operating systems. Using "-c" instead ensures that it
works even with older versions of gzip.
2015-02-24 15:19:23 +00:00
Robin Ward 3aa165d3b6 Provides the ability to skip minification of some JS assets. 2015-02-20 15:51:38 -05:00
Sam b279b1daa0 FIX: reduce verboseness of uglify command
PERF: do not generate source maps in ruby mode
2014-12-18 04:14:12 +11:00
Sam f8fb823924 FEATURE: source maps in production for JavaScripts 2014-12-12 18:53:26 +11:00
Sam 5aaafff798 cache breaker for new uglify options 2014-10-14 11:04:07 +11:00
Robin Ward a67d1c1765 FIX: Symbol was missing colon 2014-10-15 17:54:17 -04:00