gazebo-lint included lints aiming at:
- make writing code easier for Rust newcomers
- enforce certain code patterns in buck2 project
- enforce recommended patterns using gazebo library
This lint relies heavily on rust compiler internals, it is expensive to maintain, so we decided to archive it.
The linter provides various helpful hints relating to additions from the Gazebo Library.
For example, Gazebo
added Dupe
. This linter will provide hints to use dupe
instead of clone
. e.g. when doing Arc::new(x).clone()
.
Other available hints are to "Use map" when doing xs.iter().map(f).collect()
if the types line up, and reminders to derive Dupe
when appropriate.
Gazebo lint can lint any program by adding the following to lib.rs
:
#![feature(plugin)]
#![allow(deprecated)]
#![plugin(linter)]
Unfortunately the plugin
feature is deprecated, so while useful, it is likely that linter
will stop working at some point in the future.
We will look to update the linter to use the proper alternatives if applicable when that becomes an issue.
- Check the GitHub Actions are green.
- Update
CHANGELOG.md
with the changes since the last release. This link can help (update to compare against the last release). - Update the version numbers of the
Cargo.toml
file ingazebo_lint
. Bump them by 0.0.1 if there are no incompatible changes, or 0.1.0 if there are. - Run
cargo publish --allow-dirty --dry-run
, then without the--dry-run
ingazebo_lint
directory. - Create a GitHub release with
v0.X.Y
, using thegazebo_lint
version as the name.
Gazebo Linter is both MIT and Apache License, Version 2.0 licensed, as found in the LICENSE-MIT and LICENSE-APACHE files.