Skip to content

Pedantic template files #1

Description

@fenris02

I recommend implementing the pedantic automation standards available from the outset. This promotes the development of secure, reliable code by requiring explicit exception handling rather than allowing potential issues to remain undetected.

A common example is the use of .unwrap() methods, which LLMs frequently generate without proper error handling. Instead, ensure exceptions are properly annotated and managed.

By establishing a strict foundational layer, exceptions can be introduced deliberately when code correctness is verified. This approach allows the Rust toolchain to handle the majority of validation and safety checks automatically.

If you want to use cargo +nightly fmt to take advantage of the newer automated features, this will provide a fairly basic way. If you want to continue to use +stable, then you will want to comment out (or remove) a few lines. Rename to .rustfmt.toml (gh does not allow .toml extension uploads)

rustfmt-nightly.txt

To make clippy more useful, try something like this. Rename to .clippy.toml

clippy.txt

If you are using zed or any editor that can report hints from clippy, this set of additions may simplify matters:

Cargo.txt

For toml file formatting, I use taplo. The config is very simple, but it helps to make everything consistent. Rename to .taplo.toml

taplo.txt

Last, I would create a rust-toolchain.toml to explicitly request the items you expect to see.

Maybe:

[toolchain]
channel = "stable"
components = ["clippy", "llvm-tools", "rustfmt"]
profile = "minimal"

As a PR, this would be about a 50k diff, mostly from formatting changes. The rest are very minor fixes like "carago +nightly { fix, clippy fix, ..}" but it still builds and runs without issue.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions