Skip to content

Conversation

@romainmenke
Copy link
Member

Which issue, if any, is this issue related to?

Closes #8248

Is there anything in the PR that needs further explanation?

Not especially happy with the addition of the clearEmittedDeprecationWarnings function.
If anyone has a good alternative?

@changeset-bot
Copy link

changeset-bot bot commented Dec 31, 2024

🦋 Changeset detected

Latest commit: dfb36b0

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
stylelint Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@Mouvedia
Copy link
Member

If anyone has a good alternative?

If we had --quiet-deprecation-warnings=[002,006] I would recommend a class.
e.g. clear, emit and remove/init methods
i.e. init to filter before or remove to filter after
Also if we supported adding custom deprecations in user land then add would be necessary too.
i.e. preferring our flag over NODE_OPTIONS='--no-deprecation'

Since we are doing neither a class would be overkill for just clear and emit.

@ybiquitous
Copy link
Member

ybiquitous commented Jan 1, 2025

Not especially happy with the addition of the clearEmittedDeprecationWarnings function.
If anyone has a good alternative?

It seems we cannot avoid exposing the internals. 🤔

But, to reduce code duplication, how about using the setupFilesAfterEnv option of Jest and clearing emitted warnings in a global afterEach? E.g.

jest.setupAfterEnv.mjs (new file):

import { clearEmittedDeprecationWarnings } from "./lib/utils/emitDeprecationWarning.mjs";

afterEach(() => {
	clearEmittedDeprecationWarnings();
});

package.json:

{
  "setupFilesAfterEnv": [
    "<rootDir>/jest.setupAfterEnv.mjs"
  ],
}

EDIT: I removed the example of emitDeprecationWarning.mjs since it was unnecessary.

Mouvedia

This comment was marked as resolved.

@Mouvedia Mouvedia dismissed their stale review January 1, 2025 20:50

resolved

…e-per-custom-rule--unassuming-burmese-7f9819439e
Copy link
Member

@ybiquitous ybiquitous left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you, LGTM 👍🏼

@romainmenke romainmenke merged commit 5ae7ead into main Jan 2, 2025
17 checks passed
@romainmenke romainmenke deleted the fix-deprecation-warnings-to-only-display-once-per-custom-rule--unassuming-burmese-7f9819439e branch January 2, 2025 13:08
@jeddy3 jeddy3 mentioned this pull request Jan 5, 2025
8 tasks
renovate bot added a commit to andrei-picus-tink/auto-renovate that referenced this pull request Jan 12, 2025
| datasource | package   | from    | to      |
| ---------- | --------- | ------- | ------- |
| npm        | stylelint | 16.12.0 | 16.13.0 |


## [v16.13.0](https://github.com/stylelint/stylelint/blob/HEAD/CHANGELOG.md#16130---2025-01-12)

It adds 3 rules to help you write error-free at-rules and 2 rules to warn you about deprecated CSS features. We've turned these rules on in our [standard config](https://www.npmjs.com/package/stylelint-config-standard).

It also adds new rule options, a feature to display how long rules take, lax autofix and support for `messageArgs` in more rules. It fixes 7 bugs.

Lastly, we've made a deprecation that may affect some plugins. We've updated our docs for [plugin authors](docs/developer-guide/plugins.md#quiet-deprecation-warnings) and [end users](docs/user-guide/options.md#quietdeprecationwarnings) on how to silence deprecation warnings.

-   Deprecated: ambiguous position arguments passed to `utils.report()` ([#8244](stylelint/stylelint#8244)) ([@romainmenke](https://github.com/romainmenke)).
-   Added: `lax`/`strict` values to the `fix` Node.js API option and CLI flag ([#8106](stylelint/stylelint#8106)) ([@ryo-manba](https://github.com/ryo-manba)).
-   Added: support for profiling rule performance via the `TIMING` environment variable ([#8108](stylelint/stylelint#8108)) ([@ryo-manba](https://github.com/ryo-manba)).
-   Added: `at-rule-descriptor-no-unknown` rule ([#8197](stylelint/stylelint#8197)) ([@ryo-manba](https://github.com/ryo-manba)).
-   Added: `at-rule-descriptor-value-no-unknown` rule ([#8211](stylelint/stylelint#8211)) ([@ryo-manba](https://github.com/ryo-manba)).
-   Added: `at-rule-no-deprecated` rule ([#8251](stylelint/stylelint#8251)) ([@jeddy3](https://github.com/jeddy3)).
-   Added: `at-rule-prelude-no-invalid` rule ([#8268](stylelint/stylelint#8268)) ([@ryo-manba](https://github.com/ryo-manba)).
-   Added: `declaration-property-value-keyword-no-deprecated` rule ([#8223](stylelint/stylelint#8223)) ([@Mouvedia](https://github.com/Mouvedia)).
-   Added: `"ignore": ["at-rule-preludes", "declaration-values"]` to `string-no-newline` ([#8214](stylelint/stylelint#8214)) ([@ryo-manba](https://github.com/ryo-manba)).
-   Added: `messageArgs` to `declaration-property-value-no-unknown`, `font-family-name-quotes`, `font-family-no-duplicate-names`, `function-calc-no-unspaced-operator`, `import-notation`, `media-feature-name-unit-allowed-list`, `selector-attribute-quotes` and `selector-pseudo-element-colon-notation` ([#8285](stylelint/stylelint#8285) & [#8252](stylelint/stylelint#8252)) ([@Mouvedia](https://github.com/Mouvedia)).
-   Fixed: deprecation warnings to only display once per (custom) rule ([#8265](stylelint/stylelint#8265)) ([@romainmenke](https://github.com/romainmenke)).
-   Fixed: `*-no-vendor-prefix` message ambiguity ([#8239](stylelint/stylelint#8239)) ([@Mouvedia](https://github.com/Mouvedia)).
-   Fixed: `at-rule-(dis)allowed-list`, `at-rule-no-vendor-prefix`, `at-rule-property-required-list` message argument ([#8277](stylelint/stylelint#8277)) ([@Mouvedia](https://github.com/Mouvedia)).
-   Fixed: `at-rule-property-required-list` message for inclusion of properties and descriptors ([#8207](stylelint/stylelint#8207)) ([@jeddy3](https://github.com/jeddy3)).
-   Fixed: `at-rule-*` false positives and negatives for `@charset` rule ([#8215](stylelint/stylelint#8215)) ([@jeddy3](https://github.com/jeddy3)).
-   Fixed: `declaration-property-value-no-unknown` false positives for descriptors ([#8240](stylelint/stylelint#8240)) ([@jeddy3](https://github.com/jeddy3)).
-   Fixed: `property-(dis)allowed-list` false negatives for custom properties, use `/^--/` to (dis)allow them ([#8209](stylelint/stylelint#8209)) ([@fbasmaison-lucca](https://github.com/fbasmaison-lucca)).
-   Fixed: `property-no-unknown` false positives for descriptors ([#8203](stylelint/stylelint#8203)) ([@jeddy3](https://github.com/jeddy3)).
-   Fixed: `selector-pseudo-class-no-unknown` false positives for deprecated pseudo-classes ([#8264](stylelint/stylelint#8264)) ([@Mouvedia](https://github.com/Mouvedia)).
-   Fixed: `selector-type-case` false positives for `hatchPath` ([#8264](stylelint/stylelint#8264)) ([@Mouvedia](https://github.com/Mouvedia)).
-   Fixed: `selector-type-no-unknown` false positives for `shadow`, `hatch` and `hatchpath` ([#8264](stylelint/stylelint#8264)) ([@Mouvedia](https://github.com/Mouvedia)).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

Fix deprecation warnings to only display once per (custom) rule

4 participants