Skip to content

Upgrade scssphp to 1.13.0, fix PHP 8.4 deprecations#274

Open
shadoath wants to merge 3 commits intomasterfrom
upgrade/scssphp-1.13.0
Open

Upgrade scssphp to 1.13.0, fix PHP 8.4 deprecations#274
shadoath wants to merge 3 commits intomasterfrom
upgrade/scssphp-1.13.0

Conversation

@shadoath
Copy link
Collaborator

@shadoath shadoath commented Mar 6, 2026

Summary

  • Replaces the bundled scssphp library (1.11.0 → 1.13.0), the highest 1.x release before the breaking 2.0.0 rewrite
  • Applies explicit ?Type nullable parameter fixes throughout the library to suppress PHP 8.4 deprecation notices
  • No changes to plugin code — scssphp directory only

What changed in scssphp 1.13.0

  • Compiler improvements and bug fixes across the 1.11→1.13 range
  • Removes the experimental Ast/, Serializer/, Parser/, Value/, Visitor/ new-architecture files that were bundled in 1.11 but unused
  • Adds back Formatter/Compact, Formatter/Nested, Formatter/Crunched, Formatter/Debug classes

PHP 8.4 deprecations fixed

All parameters typed as Type $x = null changed to ?Type $x = null across Compiler.php, Parser.php, Formatter.php, Node/Number.php, and related files.

Test plan

  • Activate plugin on a WordPress site running PHP 8.4
  • Confirm SCSS files compile without PHP deprecation notices in error log
  • Confirm scssphp/src/Version.php reports 1.13.0

🤖 Generated with Claude Code

shadoath added 3 commits March 5, 2026 23:03
Replaces the embedded scssphp library with the latest 1.x release
(v1.13.0, Aug 2023), which is the highest version before the breaking
2.0.0 rewrite. Also applies explicit nullable type fixes (Type $x = null
→ ?Type $x = null) to suppress PHP 8.4 deprecation notices.
The merge commit d83318a silently re-added 188 files from scssphp 1.11.0's
experimental new architecture (Ast/, Serializer/, Parser/, Value/, Visitor/,
etc.) that were removed in 1.13.0. These files don't exist in the upstream
1.13.0 release and are dead code — the autoloader never requests them — but
they bloat the bundle and misrepresent the library version.

Restores scssphp/src/ to exactly the 1.13.0 file set.
@shadoath shadoath changed the base branch from master to sb/feat/scssph-1.13.0 March 6, 2026 13:11
@shadoath shadoath changed the base branch from sb/feat/scssph-1.13.0 to master March 6, 2026 13:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant