Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 13.7.0 #4854

Closed
6 tasks done
jeddy3 opened this issue Jul 6, 2020 · 8 comments
Closed
6 tasks done

Release 13.7.0 #4854

jeddy3 opened this issue Jul 6, 2020 · 8 comments
Labels
status: wip is being worked on by someone

Comments

@jeddy3
Copy link
Member

jeddy3 commented Jul 6, 2020

  • stylelint release
  • stylelint-config-recommended update/release
  • stylelint-config-standard update/release
  • stylelint-demo update
  • stylelint.io update
  • tweet

It'll be great if we could get out a release this week. I'll try to make time for the release itself, but we need:

It'll be nice to have:

@jeddy3 jeddy3 added the status: needs discussion triage needs further discussion label Jul 6, 2020
@hudochenkov
Copy link
Member

It doesn't seem like it's ready for release. Renaming rules causes few issues, which are not taken care of.

  1. User has unit-blacklist rule in their config. But received warning for unit-disallowed-list. User is confused, because they never configured unit-disallowed-list.
  2. User has unit-blacklist rule in their config. And /* stylelint-disable unit-blacklist */ in the code. Will be violation suppressed?
  3. User finds unit-blacklist in their config or receives a violation. They use stylelint@13.6.0. They go to website and couldn't find rule descriptions. List of rules doesn't have these rules. The only option is to know direct URL to be redirected to the new rule. Old names should be in the list of rules until they are removed.
  4. Change log entry doesn't show that there are 26 rules renamed, what their old and new names. And that users are advised to update their configs, because old names will be removed.

@jeddy3
Copy link
Member Author

jeddy3 commented Jul 12, 2020

Thanks for catching these.

User has unit-blacklist rule in their config. But received warning for unit-disallowed-list. User is confused, because they never configured unit-disallowed-list.

I can't think of a solution to this confusion.

User has unit-blacklist rule in their config. And /* stylelint-disable unit-blacklist */ in the code. Will be violation suppressed?

It should be, but it currently produces:

 9:10  ignore  Unexpected unit "px"                                      unit-disallowed-list

Offhand, I'm unsure where the ignore part is coming from.

User finds unit-blacklist in their config or receives a violation. They use stylelint@13.6.0. They go to website and couldn't find rule descriptions. List of rules doesn't have these rules.

We could mitigate this somewhat by including the alias in each description. For example: "at-rule-allowed-list: Specify a list of allowed at-rules (aliased as at-rule-whitelist).". But that feels less than ideal.

With these issues in mind, I'm wondering whether aliasing the rules, like ESLint did, is the right way to go about this. Perhaps we should revert to a deprecate and remove approach, even if that means everyone will need to update and publish new configs to avoid the deprecation warnings.

Can anyone see another solution to the issues above?

@jeddy3
Copy link
Member Author

jeddy3 commented Jul 18, 2020

Perhaps we should revert to a deprecate and remove approach, even if that means everyone will need to update and publish new configs to avoid the deprecation warnings.

Does anyone have any objections to this? If not, I'll reach out to see if anyone has time to make these changes.

@m-allanson
Copy link
Member

Perhaps we should revert to a deprecate and remove approach, even if that means everyone will need to update and publish new configs to avoid the deprecation warnings.

I think this is probably the neatest approach in the long run.

@jeddy3
Copy link
Member Author

jeddy3 commented Aug 8, 2020

OK, let's deprecate.

The delayed release of 13.7.0 is on me because it was my suggestion to take ESLint's approach that's led to these unforeseen problems. Unfortunately, I've had little time for OSS this past month to remedy the issue, and I'll unlikely have much time for the next couple.

Has anyone got time to re-add the *-whitelist, *-blacklist and *-requirelist rules and then deprecate them like @kevindew had originally done in #4845? A copy and paste job will be fine, rather than use a rule factory as we'll remove the rules in the next major release and it's unlikely the rules will need to be touch before then.

kevindew added a commit to kevindew/stylelint that referenced this issue Aug 8, 2020
The aliasing approach taken for these rule renaming presented user
experience problems [1]. To resolve these problems the preference is to
revert on the aliasing strategy and instead return to a deprecation
strategy. The first step towards this is re-instating these rules.

As per the preference of jeddy3 [2] these rules are re-instated using a copy
and paste strategy, with the expectation these will be removed in the
next major release. An approach that didn't involve copy and pasting was
previously introduced in [3] and could be looked at again if maintaining this
duplicate code proves problematic.

[1]: stylelint#4854 (comment)
[2]: stylelint#4854 (comment)
[3]: stylelint@e93e44c
kevindew added a commit to kevindew/stylelint that referenced this issue Aug 8, 2020
The aliasing approach taken for these rule renaming presented user
experience problems [1]. To resolve these problems the preference is to
revert on the aliasing strategy and instead return to a deprecation
strategy. The first step towards this is re-instating these rules.

As per the preference of jeddy3 [2] these rules are re-instated using a copy
and paste strategy, with the expectation these will be removed in the
next major release. An approach that didn't involve copy and pasting was
previously introduced in [3] and could be looked at again if maintaining this
duplicate code proves problematic.

[1]: stylelint#4854 (comment)
[2]: stylelint#4854 (comment)
[3]: stylelint@e93e44c
kevindew added a commit to kevindew/stylelint that referenced this issue Aug 8, 2020
The aliasing approach taken for these rule renaming presented user
experience problems [1]. To resolve these problems the preference is to
revert on the aliasing strategy and instead return to a deprecation
strategy. The first step towards this is re-instating these rules.

As per the preference of jeddy3 [2] these rules are re-instated using a copy
and paste strategy, with the expectation these will be removed in the
next major release. An approach that didn't involve copy and pasting was
previously introduced in [3] and could be looked at again if maintaining this
duplicate code proves problematic.

[1]: stylelint#4854 (comment)
[2]: stylelint#4854 (comment)
[3]: stylelint@e93e44c
kevindew added a commit to kevindew/stylelint that referenced this issue Aug 8, 2020
As discussed in issue stylelint#4854, the desired approach is to deprecate the
*-blacklist/*-requirelist/*-whitelist rules. The first step I've taken
to doing this is to make copies of all the rules. The commands used to
generate this commit were:

- find . -name '*-allowed-list' -exec sh -c 'cp -R "$1" "${1%-allowed-list}-whitelist"' _ {} \;
- find . -name '*-disallowed-list' -exec sh -c 'cp -R "$1" "${1%-disallowed-list}-blacklist"' _ {} \;
- find . -name '*-required-list' -exec sh -c 'cp -R "$1" "${1%-required-list}-requirelist"' _ {} \;
kevindew added a commit to kevindew/stylelint that referenced this issue Aug 8, 2020
The aliasing approach taken for these rule renaming presented user
experience problems [1]. To resolve these problems the preference is to
revert on the aliasing strategy and instead return to a deprecation
strategy. The first step towards this is re-instating these rules.

As per the preference of jeddy3 [2] these rules are re-instated using a copy
and paste strategy, with the expectation these will be removed in the
next major release. An approach that didn't involve copy and pasting was
previously introduced in [3] and could be looked at again if maintaining this
duplicate code proves problematic.

[1]: stylelint#4854 (comment)
[2]: stylelint#4854 (comment)
[3]: stylelint@e93e44c
kevindew added a commit to kevindew/stylelint that referenced this issue Aug 8, 2020
The aliasing approach taken for these rule renaming presented user
experience problems [1]. To resolve these problems the preference is to
revert on the aliasing strategy and instead return to a deprecation
strategy. The first step towards this is re-instating these rules.

As per the preference of jeddy3 [2] these rules are re-instated using a copy
and paste strategy, with the expectation these will be removed in the
next major release. An approach that didn't involve copy and pasting was
previously introduced in [3] and could be looked at again if maintaining this
duplicate code proves problematic.

[1]: stylelint#4854 (comment)
[2]: stylelint#4854 (comment)
[3]: stylelint@e93e44c
kevindew added a commit to kevindew/stylelint that referenced this issue Aug 8, 2020
The aliasing approach taken for these rule renaming presented user
experience problems [1]. To resolve these problems the preference is to
revert on the aliasing strategy and instead return to a deprecation
strategy. The first step towards this is re-instating these rules.

As per the preference of jeddy3 [2] these rules are re-instated using a copy
and paste strategy, with the expectation these will be removed in the
next major release. An approach that didn't involve copy and pasting was
previously introduced in [3] and could be looked at again if maintaining this
duplicate code proves problematic.

[1]: stylelint#4854 (comment)
[2]: stylelint#4854 (comment)
[3]: stylelint@e93e44c
@kevindew
Copy link
Contributor

kevindew commented Aug 8, 2020

I've opened #4892 to re-instate the rules as deprecations.

@jeddy3
Copy link
Member Author

jeddy3 commented Aug 9, 2020

If anyone has time, it'd be fantastic to get a second review on #4892 so that we can release 13.7.0.

The following are also in need of second reviews, but we won't delay the release further if no one has time to review them too:

kevindew added a commit to kevindew/stylelint that referenced this issue Aug 24, 2020
As discussed in issue stylelint#4854, the desired approach is to deprecate the
*-blacklist/*-requirelist/*-whitelist rules. The first step I've taken
to doing this is to make copies of all the rules. The commands used to
generate this commit were:

- find . -name '*-allowed-list' -exec sh -c 'cp -R "$1" "${1%-allowed-list}-whitelist"' _ {} \;
- find . -name '*-disallowed-list' -exec sh -c 'cp -R "$1" "${1%-disallowed-list}-blacklist"' _ {} \;
- find . -name '*-required-list' -exec sh -c 'cp -R "$1" "${1%-required-list}-requirelist"' _ {} \;
kevindew added a commit to kevindew/stylelint that referenced this issue Aug 24, 2020
The aliasing approach taken for these rule renaming presented user
experience problems [1]. To resolve these problems the preference is to
revert on the aliasing strategy and instead return to a deprecation
strategy. The first step towards this is re-instating these rules.

As per the preference of jeddy3 [2] these rules are re-instated using a copy
and paste strategy, with the expectation these will be removed in the
next major release. An approach that didn't involve copy and pasting was
previously introduced in [3] and could be looked at again if maintaining this
duplicate code proves problematic.

[1]: stylelint#4854 (comment)
[2]: stylelint#4854 (comment)
[3]: stylelint@e93e44c
jeddy3 pushed a commit that referenced this issue Aug 31, 2020
* Make copies for *-blacklist/*-requirelist/*-whitelist rules

As discussed in issue #4854, the desired approach is to deprecate the
*-blacklist/*-requirelist/*-whitelist rules. The first step I've taken
to doing this is to make copies of all the rules. The commands used to
generate this commit were:

- find . -name '*-allowed-list' -exec sh -c 'cp -R "$1" "${1%-allowed-list}-whitelist"' _ {} \;
- find . -name '*-disallowed-list' -exec sh -c 'cp -R "$1" "${1%-disallowed-list}-blacklist"' _ {} \;
- find . -name '*-required-list' -exec sh -c 'cp -R "$1" "${1%-required-list}-requirelist"' _ {} \;

* Re-instate *-blacklist/*-requirelist/*-whitelist rules

The aliasing approach taken for these rule renaming presented user
experience problems [1]. To resolve these problems the preference is to
revert on the aliasing strategy and instead return to a deprecation
strategy. The first step towards this is re-instating these rules.

As per the preference of jeddy3 [2] these rules are re-instated using a copy
and paste strategy, with the expectation these will be removed in the
next major release. An approach that didn't involve copy and pasting was
previously introduced in [3] and could be looked at again if maintaining this
duplicate code proves problematic.

[1]: #4854 (comment)
[2]: #4854 (comment)
[3]: e93e44c

* Deprecate *-blacklist/*-requirelist/*-whitelist rules

This applies deprecation warnings when these rules are used, tests to
check there is a deprecation warning and re-includes them in
documentation.

* Deprecation links point to GitHub tag

This reflects the documentation on deprecating stylelint rules [1] by
linking to the GitHub website rather than stylelint website, so that the
link can continue operating indefinitely.

As suggested in the PR [2] these have been linked to the anticipated next
release of stylelint, so these links will not be actually operational
until this tag is made.

[1]: https://github.com/stylelint/stylelint/blob/858dcd584224042654d80ce8fa8ad71f41f20808/docs/developer-guide/rules.md#deprecate-a-rule
[2]: #4892 (comment)
@jeddy3 jeddy3 added status: wip is being worked on by someone and removed status: needs discussion triage needs further discussion labels Aug 31, 2020
@jeddy3
Copy link
Member Author

jeddy3 commented Aug 31, 2020

Done 🎉

Thank you to everyone who contributed to this release!


In the past, we've been pretty timely with our releases. This one dragged out a bit; I think mainly because those of us with the permissions to put a release out lack the time to do it. We're a bottleneck.

I suggest we give more contributors access to perform releases (and the permissions they need to evolve stylelint's contributing and release processes).

@jeddy3 jeddy3 closed this as completed Aug 31, 2020
@jeddy3 jeddy3 mentioned this issue Nov 13, 2020
6 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status: wip is being worked on by someone
Development

No branches or pull requests

4 participants