jtojnar / nixpkgs-hammering

Beat your package expressions into a shape
MIT License
245 stars 14 forks source link

Incoperate statix? #124

Open Mic92 opened 2 years ago

Mic92 commented 2 years ago

@NerdyPepper build this handy tool. I looks like nice extension to the already existing checks in nixpkgs-hammering. Thoughts?

jtojnar commented 2 years ago

Sounds reasonable. Maybe we can do it the other way round since statix has two of the things I want to implement here:

On the other hand, n-h seems to have more detailed error descriptions.

Unfortunately, I currently don't have the capacity to work on this. Any help welcome, thought.

On Fri, 29 Oct 2021, 16:08 Jörg Thalheim, @.***> wrote:

@nerdypepper https://github.com/nerdypepper build this handy tool https://github.com/NerdyPepper/statix. I looks like nice extension to the already existing checks in nixpkgs-hammering. Thoughts?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/jtojnar/nixpkgs-hammering/issues/124, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFMEY5K6Y5MB7UGN22YRUTUJK2GNANCNFSM5G7NPNVA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

oppiliappan commented 2 years ago

On the other hand, n-h seems to have more detailed error descriptions.

Yeah, statix currently does not describe/explain issues at all. I do have "offline explanation" on the roadmap though. I see n-h also has a bunch of tests, statix does not have any tests at the moment.

so that we do not need both Rust and Python in the closure

I am not too familiar with nixpkgs-hammering's codebase, how many checks depend on python? Are they trivial enough to translate to Rust?

I'd definitely like to see unison in developer tools around Nix, my end goal is to have all of this reside in rnix-lsp, or atleast integrate with it.

jtojnar commented 2 years ago

The most of the checks are written in Nix so the Python basically just constructs Nix code, runs nix-instantiate and the compiled rust binaries, and then joins the result JSONs and formats them.

Should be pretty easy to port to rust https://github.com/jtojnar/nixpkgs-hammering/blob/a24b5537fab53dec6dc638576bff19606ad4a33b/tools/nixpkgs-hammer

Mic92 commented 2 years ago

There is already some rust here anyway: https://github.com/jtojnar/nixpkgs-hammering/tree/a24b5537fab53dec6dc638576bff19606ad4a33b/rust-checks/src

jtojnar commented 2 years ago

Yeah, currently the checks are compiled into programs which output JSON results when run and are executed by the Python program. I want to have Rust do everything so it is easier to package in Nixpkgs.