DiscourseをDart Sassに移行

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

これはシームレスな移行であり、アップグレード後もウェブサイトに変更はありません。稀に問題が発生する場合がありますので、その場合は以下をお読みください。

開発者・デザイナーの皆様への注意

移行にあたり、すべてのオープンソースプラグインおよびテーマを確認し、新しいパイプラインで正常に動作することを確認しました。また、コンパイル時の警告に対応するための変更やPRを行いました。

バージョン詳細

これにより、以下のように変更されます。

From:

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

To:

  • dart-sass 1.58 (2023年1月)

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

これらの破壊的変更はまもなく適用されるか、最近リリースされました:

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

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

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

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

複合セレクターは拡張できませんでした 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