Skip to content

Update book and templates with feature freeze #14456

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

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .github/ISSUE_TEMPLATE/new_lint.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
name: New lint suggestion
description: Suggest a new Clippy lint.
description: |
Suggest a new Clippy lint (currently not accepting new lints)
Check out the Clippy book for more information about the feature freeze.
labels: ["A-lint"]
body:
- type: markdown
Expand Down
4 changes: 4 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@ order to get feedback.

Delete this line and everything above before opening your PR.

Note taht we are currently not taking in new PRs that add new lints. We are in a
feature freeze. Check out the book for more information. If you open a
feature-adding pull request, its review will be delayed.

---

*Please write a short comment explaining your change (or "none" for internal only changes)*
Expand Down
4 changes: 4 additions & 0 deletions book/src/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Clippy

[### IMPORTANT NOTE FOR CONTRIBUTORS ================](development/feature_freeze.md)

----

[![License: MIT OR Apache-2.0](https://img.shields.io/crates/l/clippy.svg)](https://github.com/rust-lang/rust-clippy#license)

A collection of lints to catch common mistakes and improve your
Expand Down
1 change: 1 addition & 0 deletions book/src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
- [GitLab CI](continuous_integration/gitlab.md)
- [Travis CI](continuous_integration/travis.md)
- [Development](development/README.md)
- [IMPORTANT: FEATURE FREEZE](development/feature_freeze.md)
- [Basics](development/basics.md)
- [Adding Lints](development/adding_lints.md)
- [Defining Lints](development/defining_lints.md)
Expand Down
3 changes: 3 additions & 0 deletions book/src/development/adding_lints.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# Adding a new lint

[### IMPORTANT NOTE FOR CONTRIBUTORS ================](feature_freeze.md)


You are probably here because you want to add a new lint to Clippy. If this is
the first time you're contributing to Clippy, this document guides you through
creating an example lint from scratch.
Expand Down
50 changes: 50 additions & 0 deletions book/src/development/feature_freeze.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# IMPORTANT: FEATURE FREEZE

This is a temporary notice.

From May 9th, 2025 until the 1st of August, 2025 we will perform a feature freeze. Only bugfix PRs will be reviewed with the
exception of already open ones. Every feature-adding PR open in between those dates will be moved into a milestone
to be reviewed separately at another time.

We do this because of the long backlog of bugs that need to be addressed
in order to contiue being the state of the art linter that Clippy has become known for being.

## For contributors

If you are a contributor or are planning to become one, **please do not open a lint-adding PR**, we have lots of open bugs
of all levels of difficulty that you can address instead!

We currently have about 800 lints, each one posing a maintainability challenge that needs to account to every possible
usecase of the whole ecosystem. Bugs are natural in every software, but the Clippy team considers that Clippy needs a
refinement period.

If you open a PR at this time, we will not review it but push it into a milestone until the refinement period ends,
adding additional load into our reviewing schedules.

## I want to help, what can I do

Thanks a lot to everyone who wants to help Clippy become better software in this feature freeze period!
If you'd like to help, making a bugfix, making sure that it works, and opening a PR is a great step!

As a general metric and always taking into account your skill and knowledge level, you can use this guide:

- 🟥 [ICEs][search_ice], these are compiler errors that causes Clippy to panic and crash. Usually involves high-level debugging,
sometimes interacting directly with the upstream compiler. Difficult to fix but a great challenge that improves
a lot developer workflows!

- 🟧 [Suggestion causes bug][sugg_causes_bug], Clippy suggested code that changed logic in some silent way. Unacceptable, as this may have
disastreous consequences. Easier to fix than ICEs

- 🟨 [Suggestion causes error][sugg_causes_error], Clippy suggested code snippet that caused a compiler error when applied.
We need to make sure that Clippy doesn't suggest using a variable twice at the same time or similar
easy-to-happen occurrences.

- 🟩 [False positives][false_positive], a lint should not have fired, the easiest of them all, as this is "just" identifying the root of a
the false positive and making an exception for those cases.

Note that false negatives do not have priority unless the case is very clear, as they are a feature-request in a trench coat.

[search_ice]: https://github.com/rust-lang/rust-clippy/issues?q=sort%3Aupdated-desc+state%3Aopen+label%3A%22I-ICE%22
[sugg_causes_bug]: https://github.com/rust-lang/rust-clippy/issues?q=sort%3Aupdated-desc%20state%3Aopen%20label%3AI-suggestion-causes-bug
[sugg_causes_error]: https://github.com/rust-lang/rust-clippy/issues?q=sort%3Aupdated-desc%20state%3Aopen%20label%3AI-suggestion-causes-error%20
[false_positive]: https://github.com/rust-lang/rust-clippy/issues?q=sort%3Aupdated-desc%20state%3Aopen%20label%3AI-false-positive
Loading