Commit Graph

166 Commits

Author SHA1 Message Date
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
Robin Ward
65ab88da77 Let's try to change Uglifier settings properly 2014-10-15 16:51:16 -04:00
Sam
2be03371ae FEATURE: allow a central redis cache for assets 2014-09-23 16:50:17 +10:00
Neil Lalonde
17f0777d14 For heroku, check if necessary table exist before trying to precompile assets 2014-06-12 14:41:45 -04:00
Neil Lalonde
d69472c9fb FIX: production css digest not changing 2014-05-29 15:42:50 -04:00
Sam
fad868c78f Bump hashes on various files
Upgrade jquery


I made this commit cause my JS debugging CDN support added a header and
wanted we bump cache everywhere
2014-05-15 15:52:09 +10:00
Neil Lalonde
c4d3aa3d47 Theming: a UI to choose some base colors that are applied to all the site css. CSS compiled outside of asset pipeline. 2014-05-14 10:18:12 -04:00
Sam
913c4f7b6e BUGFIX: caching sass is not valid due to "import" being used 2014-04-23 17:04:25 +10:00
Vikhyat Korrapati
8c129e480a Always use DiscourseSassImporter, add optional sprockets deps tracking. 2014-04-09 19:17:19 +05:30
Vikhyat Korrapati
45a23f524a Fix asset precompilation issues. 2014-04-01 23:05:17 +05:30
Vikhyat Korrapati
ef99ab59a5 Allow importing Discourse styles in custom stylesheets to modify vars. 2014-04-01 23:04:50 +05:30
Régis Hanol
77a8a4083a Revert "Merge pull request #2125 from vikhyat/css-variables"
This reverts commit b537de3ca5, reversing
changes made to b925827e5b.
2014-04-01 16:24:29 +02:00
Vikhyat Korrapati
ddd1dfe896 Allow importing Discourse styles in custom stylesheets to modify vars. 2014-04-01 15:25:43 +05:30
Sam
d969958b18 PERF: workaround aweful sass compiling perf with HUGE css files 2014-03-04 17:16:53 +11:00
Sam
f602c568e2 PERF: speed up css precompilation by caching 2014-03-04 16:55:23 +11:00
Sam
cfa5882035 Be slightly less aggressive at clearing assets 2014-02-07 21:43:05 +11:00
Sam
8e9cfdfcda BUGFIX: plugins not updating after assets:precompile
Now that we have a fancy cache we can nuke all old assets
This is way better cause it ensures all .erbs get re-evaluated
And ensures plugins are updated
2014-02-07 11:37:07 +11:00
Sam
d9df40dfcd minor refactor 2014-02-06 17:07:15 +11:00
Sam
a69f59ef51 FEATURE: much faster asset precompilation with a redis backed cache 2014-02-06 16:55:53 +11:00
Sam
66afabcf4c stop messing with asset pipeline defaults
stripping postfixes is wasteful and uneeded. It messes up our build
2013-12-19 12:33:17 +11:00
Scott Carleton
908ba32d37 Avoiding double manifest files
Capistrano chokes if there's two manifest files. 
http://meta.discourse.org/t/rails-4-non-digest-assets-and-capistrano/10948?u=scotterc
2013-11-14 18:22:44 -05:00
Sam
b11e665ecc Rails 4 is now the out-of-the-box default 2013-11-05 09:36:52 +11:00
Sam
cc27c5f363 Rails 4 changes behavior of precompile not to include originals
This patch will restore rails 3 beavior and fix emoji etc under rails 4
2013-11-04 09:58:34 +11:00