Skip to content

HyperKitty with COMPRESS is incompatible with recent ruby-sass.

With settings like

COMPRESS_PRECOMPILERS = (
   ('text/x-scss', 'sass  -t compressed {infile} {outfile}'),
   ('text/x-sass', 'sass  -t compressed {infile} {outfile}'),
)
COMPRESS_OFFLINE = True
COMPRESS_ENABLED = True

and recent versions of ruby-sass, running django-admin compress fails with

CommandError: An error occurred during rendering /opt/mailman/mm/venv/lib/python3.7/site-packages/django_mailman3-1.3.5-py3.7.egg/django_mailman3/templates/account/password_reset_from_key.html: Error: Invalid CSS after "...lor}: #{$value}": expected "{", was ";"
        on line 4 of /opt/mailman/mm/static/hyperkitty/libs/bootstrap/stylesheets/_root.scss
        from line 11 of /opt/mailman/mm/static/hyperkitty/libs/bootstrap/stylesheets/bootstrap.scss
        from line 4 of /opt/mailman/mm/static/hyperkitty/sass/hyperkitty.scss
  Use --trace for backtrace.

I don't know exactly with what version of ruby-sass this started, but the failure occurs with ruby-sass Sass 3.4.23 (Selective Steve) and not with Sass 3.2.12 (Media Mark). There are newer versions, e.g. Ubuntu 20.0.4 has Ruby Sass 3.7.4. It isn't known if they fail or not.

The workaround is to install sassc and use

COMPRESS_PRECOMPILERS = (
   ('text/x-scss', 'sassc  -t compressed {infile} {outfile}'),
   ('text/x-sass', 'sassc  -t compressed {infile} {outfile}'),
)
Edited by Mark Sapiro