- Explicitly forbid passing
CompilerFunctions across different compilations.
- Mark
Color.channel1,Color.channel2,Color.channel3, andColor.alphaas optional so they can represent missing channels.
-
Add
ColorSassScript value. -
Remove
RgbColor,HslColorandHwbColorSassScript values.
- Allow deprecation versions to be value of
fatal_deprecationfield.
- Add
containing_url_unusedfield toCanonicalizeResponseandFileImportResponse.
- Add
fatal_deprecation,silence_deprecation, andfuture_deprecationfields toCompileRequestanddeprecation_typetoLogEvent, implementing the deprecations API.
- Add
NodePackageImporteras a built-in Package Importer, resolvingpkg:URLs using the standards and conventions of the Node ecosystem.
- Add
CompileRequest.silentoption that suppresses allLogEvents.
- Add a
Value.CompilerMixinvalue type to represent first-class mixins.
- Deprecate the
Value.Calculation.CalculationValue.value.interpolationoption, and change how it's interpreted by the compiler.
-
Use the Java package
com.sass_lang.embedded_protocoland 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
CompileRequestand 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_idfields have been removed.
- The
-
The following fields are now explicitly declared as proto3
optionalfields: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-oneoffields are mandatory. (oneoffields are still described as "optional" or "mandatory" in the specification text.) -
CompileSuccess.loaded_urlshas been moved toCompileResponse.loaded_urlsso it's available even when compilation fails.
-
Have the compiler treat several user-generated invalid responses as compilation errors rather than
ProtocolErrors:-
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
HostFunctionshould treat the current function as failing, rather than theHostFunction.
- Add a
charsetoption that controls whether or not Sass emits a@charset/BOM for non-ASCII stylesheets.
- First stable release.
- Add a
CompileRequest.source_map_include_sourcesfield that tells the compiler to embed the contents of all source files in the generated source maps.
- Mark
ImportResponse.resultas optional. Importers should be able to returnnullto indicate that a file wasn't found.
-
Mark
CompileFailure.spanas 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.HwbColortype. -
Explicitly specify that compilers may choose which color types to use to represent each color.
- Add the
Value.ArgumentListtype, as well asFunctionCallResponse.accessed_argument_liststo 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_depsandCompileRequest.verboseflags to control how the compiler emits compilation warnings. -
Add a
CompileSuccess.loaded_urlsfield that indicates the URLs that were loaded by a compilation. -
Clarify that
CompileRequest.StringInput.urlmust be a canonical URL. -
Fix the documentation of
CanonicalizeRequestto avoid referring to the outmodedCanonicalizeResponse.result.filefield.
- Add
VersionRequest.idandVersionResponse.id.
- Added
CanonicalizeRequest.fromImportandFileImportRequest.fromImportfields to allow importers to correctly handle import-only files.
-
Added fields to support requesting and sending formatted errors and logs.
CompileRequest.alert_colorCompileRequest.alert_asciiCompileFailure.formattedLogEvent.formatted
-
Remove
OutputStyle.NESTEDandOutputStyle.COMPACT. It's unlikely that any host would support those any time soon.
- Use
4294967295as the special ID for error messages that aren't caused by a specific request, since-1isn't representable as auint32.
-
Changed
CompileResponse.idandProtocolError.idfromint32touint32to match the type of all other ID fields. -
Added protocol versions and created this changelog.
-
Added the
VersionRequestandVersionResponsemessages. -
Delimit messages with varints rather than fixed-size integers.