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

Lint Issue Reporting #125

Open
pythongirl325 opened this issue Apr 13, 2021 · 2 comments
Open

Lint Issue Reporting #125

pythongirl325 opened this issue Apr 13, 2021 · 2 comments
Labels
adoption barrier This makes it harder for people to use or contribute to Resyntax enhancement New feature or request

Comments

@pythongirl325
Copy link

Rust has a linting tool known as Clippy that uses an interesting strategy for keeping track of and developing new lints.

Clippy has several categories of lints, that can be enabled individually including one called "nursery". The "nursery" category is for many kinds of experimental lints that probably have mistakes in them, users can opt into this category to get potentially helpful lints at the possibility that they may be wrong or annoying. Clippy also encourages users that encounter bugs in the experimental lints to submit bug reports on their issues page, and as a result, most of the issues are about lints themselves.

Clippy's issue system has labels to keep track of the different kinds of issues with lints including "false positive" (the lint shows up when it shouldn't), "false negative" (the lint doesn't show up when it should), and "suggestion causes error" (where the suggested change is incorrect).

They also have a series of issue templates to make reporting these bugs even easier to users. Resyntax could also include a link to the "false positive" template issue creation page that the user may click on if they believe the suggestion is incorrect (as discussed on discord). Making bug reporting about suggestions very easy to users will get you much more helpful information without the need for anonymous information sharing like was suggested.

@pythongirl325 pythongirl325 changed the title Lint Testing Suggestion Lint Issue Reporting Apr 13, 2021
@jackfirth jackfirth added adoption barrier This makes it harder for people to use or contribute to Resyntax enhancement New feature or request labels Apr 15, 2021
@jackfirth
Copy link
Owner

jackfirth commented Apr 15, 2021

Putting the adoption barrier label on this because I think it's a mandatory feature before putting Resyntax in the langserver (jeapostrophe/racket-langserver#40) or in a github pull request bot.

One thing I'm wary of is configuration that lives in the tool instead of the code. I don't think Resyntax will be useful if it ships with a million rules of varying quality and asks users to pick and choose which to enable and disable. I want to put this in front of students who are using Racket for the very first time, which means a zero-configuration approach is mandatory. Therefore, I think that the distinction between "experimental" rules and "production-ready" rules should be in when and where they show up. For instance, running experimental rules only on pull requests and not when resyntax is run manually on the command line, to prevent people from creating large refactoring changes and merging them with broken changes from experimental rules included. We could also adopt some sort of gradual rollout strategy, where experimental rules start out as enabled for only 10% of users somehow.

@jackfirth
Copy link
Owner

Related: #281.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
adoption barrier This makes it harder for people to use or contribute to Resyntax enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants