Discourse が Dart Sass に移行

<div data-theme-toc="true"> </div>

Discourse の Sass コンパイラパイプラインを、非推奨の libsass からメンテナンスされている Dart Sass に移行する大規模なアップグレードを行いました。

これはシームレスな移行であり、アップグレード後にウェブサイトで何も変更されるべきではありません。万が一、何かが壊れた場合は、読み進めてください。

開発者とデザイナーへの注記

移行中に、すべてのオープンソースの プラグインテーマ を確認し、新しいパイプラインで問題なく動作することを確認しました。また、コンパイル中の警告に対処するために変更を加え、PR を送信しました。

バージョンの詳細

これにより、以下のように移行しました。

変更前:

  • sassc 2.0.1 (2019年2月)
  • libsass 3.5.2 (2018年5月)

変更後:

  • dart-sass 1.58 (2023年1月)

このアップデートでは、以下の非推奨事項が適用されます。

これらの破壊的な変更は間もなく実施されるか、最近リリースされました。

Dart Sass 1.32.0 以降、関数は許可される単位に対してより厳格になります。

Dart Sass 1.54.0 以降、無効な結合子を持つセレクターは無効になります。

Dart Sass 1.33.0 以降、/ は除算演算からリスト区切り文字に変更されます。

Dart Sass 1.7.2 以降、@-moz-document の特殊構文の解析が無効になります。

Dart Sass 1.0.0 および Ruby Sass 4.0.0 では、複合セレクターを拡張できなくなりました。

Q&A

今回のアップグレードでハードブレークな変更はありませんでしたので、テーマの 99% は問題なく動作するはずです。

カスタムテーマなしで Discourse を実行している場合は、何も変更されません。次回アップグレード時(またはホスティング会社によってアップグレードされた場合)に、これはバックグラウンドで発生します。

CDCK ホスティングを利用しており、当社が開発したテーマを使用している場合は、すでに Dart Sass と互換性があるように変更しました。

#公式 #テーマ#テーマコンポーネント を多数使用している場合は、それらも新しい Sass バージョンと互換性があるように変更しました。

カスタムテーマが壊れた場合は、共有していただければ修正をお手伝いします。

「いいね!」 17

:sweat_smile: CW と Multilingual はこれで両方とも壊れましたが、修正済みです。

「いいね!」 7

わざわざ教えてくれてありがとう。sass-migratorでは対応していないようだね :man_facepalming:。今から該当箇所を探すよ。

編集:心配していたけど、オープンソースとクローズドソースのプラグインやテーマ全体でこのエラーをgrepしたところ、君が言及した2つのプラグインでのextendの使用例しか見つからなかった。

「いいね!」 9

こんにちは、おはようございます。アップデート以来、ヘッダーバーのサイズが大きくなり、ページのトップに少なくとも1インチの隙間ができています。

編集。
これはCSSのヘッダー部分にあることがわかりました。

他のものは空白だったので、これでヘッダーは完璧になりましたが、カスタム背景を追加できません。

ありがとうございます。

「いいね!」 3

CSSの問題かパーサーの問題かわかりませんが、念のため共有しておきます。

Discourse::ScssError: Error: Expected whitespace

@media screen and(min-width: $breakpoint-sm) {
                 ^
「いいね!」 5