GSoC 2021: Tooling Final Summary
› published on byWhat a fun summer! I was hoping I would become more a part of the Rust community this year, and I think I have. I learned how to open an MCP (Major Change Proposal), which is a process that language and implementation changes not big enough for an RFC go through. I am involved in an effort to create a new plugin lint system similar to Clippy. I made a few more contributions to Clippy, fixing old lints and adding a new one. I am happy to become more involved in Ruma and Rust and plan to finish all my works in progress.
Since I am working with more people than just my mentor, making progress seems to take longer. I am glad for the experience working with multiple people, learning how to follow directions from multiple people. You have to be able to write code in the "voice" of someone else or at least meet them halfway. I know that this is an invaluable skill that will serve me well in my career. Thank you to @jplatte and @iinuwa for all the help and encouragement!
Starting on Automation
- cargo-sort Some of the work on this happened before GSoC started but not all (I'm proud of this crate)
- nonstandard-macro-braces Lint for consistent macro brace usage
- import-renaming Lint to enforce import renaming
- disallow-types Lint to ban specified types
- fix FP Fix false positive in macro brace lint
- enabled non_exhaustive structs lint
Second Half
- module layout style Clippy now has the ability to lint on the module layout chosen
- non_exhaustive reachable lint I've been busy continuing work on this pull request
- plugin lint design I spent a few days working with a group of people designing a new linter that could load third-party lints
- plugin lint discussions Very insightful experience into the open-source design process
- enabled non_exhaustive enums lint
- enabled all the new lints This turns on all the Clippy lints that I added that were not enabled by default
Progress on Automated Checks for Ruma
- ruma/ruma#221 Has almost been closed; only one item remains
I think the work on the linter will be extremely valuable if we can get it working. The ability to write crate-specific lints will be a huge help to library writers and users. I can imagine many such lints for a complex library like Ruma. I am excited to be involved!