- Mark
Color.channel1
,Color.channel2
,Color.channel3
, andColor.alpha
as optional so they can represent missing channels.
-
Add
Color
SassScript value. -
Remove
RgbColor
,HslColor
andHwbColor
SassScript values.
- Allow deprecation versions to be value of
fatal_deprecation
field.
- Add
containing_url_unused
field toCanonicalizeResponse
andFileImportResponse
.
- Add
fatal_deprecation
,silence_deprecation
, andfuture_deprecation
fields toCompileRequest
anddeprecation_type
toLogEvent
, implementing the deprecations API.
- Add
NodePackageImporter
as a built-in Package Importer, resolvingpkg:
URLs using the standards and conventions of the Node ecosystem.
- Add
CompileRequest.silent
option that suppresses allLogEvent
s.
- Add a
Value.CompilerMixin
value type to represent first-class mixins.
- Deprecate the
Value.Calculation.CalculationValue.value.interpolation
option, and change how it's interpreted by the compiler.
-
Use the Java package
com.sass_lang.embedded_protocol
and generate multiple Java files when generating Java code. This doesn't affect any other languages.Note: although this is technically a breaking change for Java users, 2.0.0 is so new that it's being rolled into that breakage rather than releasing 3.0.0 immediately.
-
The compilation ID for each
CompileRequest
and the various outbound requests associated with a given compilation is now encoded as part of the wire protocol, rather than being protobuf fields. This makes it easier for embedded compilers to efficiently dispatch requests across multiple threads without reparsing protocol buffers.- The
CompileRequest.id
,CompileResponse.id
,LogEvent.compilation_id
,CanonicalizeRequest.compilation_id
,ImportRequest.compilation_id
,FileImportRequest.compilation_id
, andFunctionCallRequest.compilation_id
fields have been removed.
- The
-
The following fields are now explicitly declared as proto3
optional
fields:ImportSuccess.source_map_url
,LogEvent.span
,SourceSpan.end
. These should no longer be considered unset when they have the default value, but only when they're unset at the protocol level. All non-oneof
fields are mandatory. (oneof
fields are still described as "optional" or "mandatory" in the specification text.) -
CompileSuccess.loaded_urls
has been moved toCompileResponse.loaded_urls
so it's available even when compilation fails.
-
Have the compiler treat several user-generated invalid responses as compilation errors rather than
ProtocolError
s:-
Invalid function signatures in
CompileRequest.global_functions
. -
Non-absolute URLs in
CanonicalizeResponse.result.url
,ImportSuccess.source_map_url
, andFileImportResponse.result.file_url
.
-
-
Clarify that an invalid signature in a
HostFunction
should treat the current function as failing, rather than theHostFunction
.
- Add a
charset
option that controls whether or not Sass emits a@charset
/BOM for non-ASCII stylesheets.
- First stable release.
- Add a
CompileRequest.source_map_include_sources
field that tells the compiler to embed the contents of all source files in the generated source maps.
- Mark
ImportResponse.result
as optional. Importers should be able to returnnull
to indicate that a file wasn't found.
-
Mark
CompileFailure.span
as mandatory. There's no instance where a compilation itself should fail without having a source to point to. -
Make it the compiler's responsibility to verify
HostFunction.signature
. This ensures that the host doesn't have to parse Sass code.
-
Pluralize
Calculation.arguments
. -
Explicitly document how hosts should handle calculations.
- Add support for calculation values.
-
Add the
Value.HwbColor
type. -
Explicitly specify that compilers may choose which color types to use to represent each color.
- Add the
Value.ArgumentList
type, as well asFunctionCallResponse.accessed_argument_lists
to track which argument lists had their keywords accessed.
-
Breaking change: We now follow the protocol buffer style guide. This means:
- Field names are now all underscore-separated rather than lower camel case.
- Enums are now at the top-level with prefixes rather than surrounded in enclosing messages.
-
Add
CompileRequest.quiet_deps
andCompileRequest.verbose
flags to control how the compiler emits compilation warnings. -
Add a
CompileSuccess.loaded_urls
field that indicates the URLs that were loaded by a compilation. -
Clarify that
CompileRequest.StringInput.url
must be a canonical URL. -
Fix the documentation of
CanonicalizeRequest
to avoid referring to the outmodedCanonicalizeResponse.result.file
field.
- Add
VersionRequest.id
andVersionResponse.id
.
- Added
CanonicalizeRequest.fromImport
andFileImportRequest.fromImport
fields to allow importers to correctly handle import-only files.
-
Added fields to support requesting and sending formatted errors and logs.
CompileRequest.alert_color
CompileRequest.alert_ascii
CompileFailure.formatted
LogEvent.formatted
-
Remove
OutputStyle.NESTED
andOutputStyle.COMPACT
. It's unlikely that any host would support those any time soon.
- Use
4294967295
as the special ID for error messages that aren't caused by a specific request, since-1
isn't representable as auint32
.
-
Changed
CompileResponse.id
andProtocolError.id
fromint32
touint32
to match the type of all other ID fields. -
Added protocol versions and created this changelog.
-
Added the
VersionRequest
andVersionResponse
messages. -
Delimit messages with varints rather than fixed-size integers.