2018 Edition End of Week Post (2018-08-04)

What does it mean for rustfmt to release 1.0 ?

Will executing rustfmt 1.0 and afterwards executing rustfmt 1.0.1 or 1.1 on my code change the formatting ?

I mean, I use rustfmt every day, and been doing so for a long time already, but it still feels like it will take a long time till I can rely exclusively on rustfmt for formatting because almost every single time I use it I end up having to do many manual changes.

For example, it doesn't really work on macros: Rust Playground

Calling cargo fmt --all can succeed, but subsequently calling cargo fmt --all -- --check can report an error saying that formatting is incorrect (even though one just reformatted the whole project with cargo fmt --all!). Etc.

Don't get me wrong, rustfmt is really really nice, but it just overall feels to me to be beta quality at best.

I expect a 1.0 release to be able to 1) format rust code, and 2) be able to check that rust code is properly formatted. The tool doesn't really do either automatically yet, and I don't see it doing it any time soon (its a hard problem).

How many rust-lang projects are using rustfmt? Are we dogfooding it in rust-lang/rust ? servo ? how many rust-lang-nursery crates are using it to automatically format all code, and to check that all code is automatically formatted on CI?

Because if it doesn't work for rust-lang/rust, nor servo, nor the rust-lang-nursery crates. Why should it work for end users?

And it is not only that it doesn't work, it is getting a lot better but formatting some of the rust-lang-nursery crates with rustfmt does currently still break their build: https://github.com/rust-lang-nursery/rustfmt/blob/master/.travis.yml#L36

That is, your code compiles and passes all tests, rustfmt it, and it doesn't compile anymore and/or tests start to fail.

2 Likes