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

☂️ process: define a lint proposal process #3011

Closed
4 tasks done
pq opened this issue Oct 7, 2021 · 9 comments
Closed
4 tasks done

☂️ process: define a lint proposal process #3011

pq opened this issue Oct 7, 2021 · 9 comments
Assignees
Labels
area-meta P3 A lower priority bug or feature request type-process type-task

Comments

@pq
Copy link
Member

pq commented Oct 7, 2021

Tracking issue for a light-weight process that brings lint requests that are (intentionally) loose and open-ended to actionable proposals.

Goals

The process should be

  • lightweight
  • open
  • formal but not litigious

encourage feedback from

  • the community
  • platform / language / analyzer teams

and help measure buy-in from

  • "canonical" lint owners
  • 1P/ Google3 customers
  • flutter

Ultimately the goal is to introduce exactly as much process as would benefit taking a lint rule idea to something that might be implemented and widely adopted.


Tasks

@pq
Copy link
Member Author

pq commented Oct 7, 2021

/cc @parlough @a14n @asashour @incendial @duttaoindril for any feedback

@parlough
Copy link
Member

parlough commented Oct 7, 2021

I like the new proposal template. I'm curious if it would worth adding to the discussion check list a note around the feasibility and functionality of potential quick fixes. Any lint where a quick fix is feasible and makes sense in most(preferably all) situations is often more valuable in my eyes.

@pq
Copy link
Member Author

pq commented Oct 7, 2021

potential quick fixes

💯

I forgot to add this but it's a great discussion point. Feel free to add something? (Or I can later...)

Thanks a million @parlough!

@incendial
Copy link

incendial commented Oct 7, 2021

The template looks great, but maybe it's worth adding some examples of good existing proposals to let the author better understand the requirements for each block?

While working on custom lints we came up to a separate proposal for a rule change. It helps better identify such proposals and prioritise them better (usually, suggestions to change requires less effort, than creating a new rule). Have you thought about a proposal for a rule change or it's a rare case?

As for statuses, from my perspective, it's very helpful to have in progress status, which will indicate that an accepted rule is being implemented and there is no need for additional pinging, for example.

As for kinds, if I'm not mistaken, there are only 3 severity types available (info, warning, error). What do you think about providing the ability to choose one of them? Additionally, there can be other type for exceptional cases.

@pq
Copy link
Member Author

pq commented Oct 7, 2021

The template looks great, but maybe it's worth adding some examples of good existing proposals to let the user better understand the requirements for each block?

Absolutely! I'll back-fill #3008 and we can start with that (and add more as they get written).

While working on custom lints we came up to a separate proposal for a rule change. It helps better identify such proposals and prioritise them better (usually, suggestions to change requires less effort, than creating a new rule). Have you thought about a proposal for a rule change or it's a rare case?

Good point. For us lint changes are actually potentially a lot of work. In particular if an existing lint is changed to flag code that it did not before it can actually prevent us from rolling the Dart SDK into Flutter and our internal repo. (This is why we have a false negative label -- which could just as well be read as "proceed with caution".) See for example #2609.

As for statuses, from my perspective, it's very helpful to have in progress status, which will indicate that an accepted rule is being implemented and there is no need for additional pinging, for example.

Great point. Added.

As for kinds, if I'm not mistaken, there are only 3 severity types available (info, warning, error). What do think about providing the ability to choose one of them? Additionally, there can be other type for exceptional cases.

Actually severities are fixed for lints but you're right that there are only a fixed number of kinds (error, style, and pub?) so maybe a chooser is better. Having said that we've discussed changing kinds to be more like tags (#1020) and every time it comes up I'm reminded how nice it would be...

Thanks so much for your generous feedback. Please keep it coming!

@a14n
Copy link
Contributor

a14n commented Oct 8, 2021

Nothing to add on my side. The template seems good to me. 👍

@incendial
Copy link

Thanks so much for your generous feedback. Please keep it coming!

Thanks for mentioning, I was surprised, to be honest 😄

Having said that we've discussed changing kinds to be more like tags (#1020) and every time it comes up I'm reminded how nice it would be...

I really like the idea of tags too!

Do you plan to deprecate the lint request template or it's for a different purpose? Right now it's kinda confusing to see both lint request and lint proposal available.

@parlough
Copy link
Member

parlough commented Oct 8, 2021

I think both have their own role, with many users not feeling comfortable completing an entire proposal, or not being able to own that work. The descriptions could be modified slightly to expand on their differences though.

@pq
Copy link
Member Author

pq commented Oct 8, 2021

I think both have their own role, with many users not feeling comfortable completing an entire proposal, or not being able to own that work.

Exactly my thinking.

The descriptions could be modified slightly to expand on their differences though.

💯

@pq pq added the P3 A lower priority bug or feature request label Nov 14, 2022
@pq pq closed this as completed Jul 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-meta P3 A lower priority bug or feature request type-process type-task
Projects
None yet
Development

No branches or pull requests

4 participants