From 0e70553972931b670fc240496d79570d428c2656 Mon Sep 17 00:00:00 2001 From: Christophe Coevoet Date: Tue, 16 Jan 2024 23:51:16 +0100 Subject: [PATCH] Proposal: deprecate and remove `feature-exists` (#3749) --- proposal/remove-feature-exists.md | 47 +++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 proposal/remove-feature-exists.md diff --git a/proposal/remove-feature-exists.md b/proposal/remove-feature-exists.md new file mode 100644 index 00000000..0470b5ac --- /dev/null +++ b/proposal/remove-feature-exists.md @@ -0,0 +1,47 @@ +# `feature-exists` removal: Draft 1.0 + +*([Issue](https://github.com/sass/sass/issues/3702))* + +This proposal removes `feature-exists` in the built-in `sass:meta` module. + +## Table of Contents + +* [Background](#background) +* [Summary](#summary) +* [Deprecation Process](#deprecation-process) + * [`feature-exists`](#feature-exists) + +## Background + +> This section is non-normative. + +`feature-exists` is ill-defined as nothing specifies what each feature actually +requires to be considered as supported. The shared `sass-spec` testsuite does +not cover this either. Thus, no new feature identifier has been added in it +for years. + +New Sass features essentially fall into one of three categories: + +1. New built-in functions or mixins, which are easy to detect using other + `sass:meta` functions. +2. Language-level features which are relatively easy to detect on their own + (for example, first-class calc can be detected with calc(1 + 1) == 2). +3. New syntax which can't even be parsed in implementations that don't support + it, for which feature detection isn't particularly useful anyway. + +## Summary + +> This section is non-normative. + +The `feature-exists` function of `sass:meta` and its global alias will be +removed without any direct replacement. + +## Deprecation Process + +The `feature-exists` function will be supported until the next major version +with a deprecation warning. + +### `feature-exists` + +During the deprecation period, when invoking the `feature-exists` function, +emit a deprecation warning named `feature-exists`.