Roman Rizzi
10478cb395
DEV: Bump uglifyjs ( #7834 )
...
* Rewrite uglifyjs command to work with 3.x
* Use ES5 syntax in plain JS files
* Use the older command if uglifyJS V2.x is installed
2019-10-09 10:02:49 -03:00
Sam Saffron
215216df48
FIX: stop re-downloading backup maxmind
...
We omitted updating the mmdb_time which changed causing a constant
re-download of the maxmind db
2019-06-13 17:42:26 +10:00
Sam Saffron
3de8c58134
DEV: clean up backup maxmind path
...
This follows up on 6580025a
reuses a list and removes a map that was erronuously there.
2019-05-28 11:47:58 +10:00
Sam Saffron
6580025af9
FEATURE: add backup directory for mmdb files
...
This new `DISCOURSE_MAXMIND_BACKUP_PATH` can be used a secondary location
for maxmind db. That way a build machine, for example can cache it on the
host and reuse between builds.
Also per 5bfeef77
added proper error raising for download fails from
dedicated rake task
This also moves "refresh_maxmind_db_during_precompile_days" to a global
setting, it did not make sense in a site setting
2019-05-27 16:51:24 +10:00
Régis Hanol
2f5938c3bf
DEV: use FileHelper to download MaxMindDB
2019-05-24 18:11:39 +02:00
Régis Hanol
8c9ffee3af
TEMP: log more information when failing to download db
2019-05-24 17:33:52 +02:00
Régis Hanol
9ed2c54e27
TEMP: log information when failing to download db
2019-05-24 17:26:04 +02:00
Sam Saffron
30990006a9
DEV: enable frozen string literal on all files
...
This reduces chances of errors where consumers of strings mutate inputs
and reduces memory usage of the app.
Test suite passes now, but there may be some stuff left, so we will run
a few sites on a branch prior to merging
2019-05-13 09:31:32 +08:00
Penar Musaraj
a92c925378
Use faster Brotli compression for non-default locale files
2019-05-08 14:55:24 -04:00
Penar Musaraj
d9ab722d05
Revert "Revert "PERF: Skip compressing locales for faster rebuilds ( #7501 )" ( #7502 )"
...
This reverts commit 6ea811c923
.
2019-05-08 14:55:06 -04:00
Joffrey JAFFEUX
6ea811c923
Revert "PERF: Skip compressing locales for faster rebuilds ( #7501 )" ( #7502 )
2019-05-08 07:54:21 +02:00
Sam Saffron
5c0bb29461
DEV: re-enable compression for node asset compilation
...
#b9d82818 makes enormous improvements to our bootstrap time, however going
to still keep compress for now despite the cost and watch it for a few weeks
2019-05-08 10:24:57 +10:00
Penar Musaraj
b9d8281818
PERF: Skip compressing locales for faster rebuilds ( #7501 )
...
* Do not brotli all locales in precompile
* Try without gzip
* uglify without compressing, always gzip
* skip uglify for unused locales
* FIX: Uglifier needs harmony for ES6 compatibility
* Use node uglifier if available
* Minor refactor
2019-05-08 10:22:19 +10:00
Sam Saffron
84f12ac3f7
DEV: No need to carry two brotli implementations around
...
old version of brotli binary is long gone, require brotli 1.0.0 and up
2019-04-11 16:53:29 +10:00
Sam Saffron
baa7a9836c
FEATURE: remove "COMPRESS_BROTLI" optional behavior
...
The compress brotli functionality is no longer optional, this has worked
well for years. The name of the ENV var is also confusing cause it does
not have a `DISCOURSE_` prefix which caused issues with the web upgrader
Brotli support is now unconditionally on
2019-04-11 12:36:18 +10:00
Bianca Nenciu
c523a12187
FIX: Fix assets:precompile rake task.
2019-04-10 14:03:26 +03:00
Bianca Nenciu
4555d0c598
FEATURE: Refresh MaxmindDb during assets:precompile. ( #7340 )
2019-04-10 11:37:29 +02:00
David Taylor
bc52437153
FIX: Add additional rescue for assets:precompile
...
This error can be caused if assets are precompiled before the database has been migrated
2019-03-07 14:03:05 +00:00
Penar Musaraj
d639cadb7a
DEV: Plugin scss errors should break precompile ( #6974 )
2019-02-07 09:27:42 -05:00
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
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