-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Introduce pre-commit hooks #310
base: master
Are you sure you want to change the base?
Conversation
language: system | ||
files: ^pineappl\S*\/.*\.rs$ | ||
args: [] | ||
- id: check |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In eko we have cargo clippy
but not cargo check
- which one is better? will either fmt
or clippy
run check
along the way?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
They are different: cargo check
is essentially running the compiler, without generating code. cargo clippy
is statically analyzing the code (i.e. the equivalent of Pylint).
There is a non-negligible change that cargo clippy
is a superset of cargo check
, but it's also possible that they only partially overlap. But this you can search for (or even try: run cargo clippy
on something that cargo check
was flagging, and see if it's complaining - even a missing ;
or unmatched {
).
The opposite is definitely impossible: cargo clippy
may do strictly more, but certainly not strictly less.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
They are different: cargo check is essentially running the compiler, without generating code. cargo clippy is statically analyzing the code (i.e. the equivalent of Pylint).
Yes, exactly. I did not include clippy
before because it is very noisy but there is actually some ways to suppress warnings and only show errors.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well: that's certainly an option, but another one is just implementing its suggestions :P
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I agree! I will address this soon #314 😉
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like it if someone else is doing the trivial stuff for me 🙃
If it's trivial, it would take no time to you as well :P I.e. use the word trivial with a large amount of caution |
It seems trivial indeed but I had to fight with python files which do not actually contain "python codes" (which in the end is time-consuming) 😇. Btw, @cschwan, is there a reason why pineappl_cli/src/plot.py can't just be modified into |
for sure we want the Python syntax highlight, because it is almost a Python file (so I'd prefer the However, I would much prefer making this a true Python script as discussed in #249 and split the static stuff in a true Python file and then all the dynamic stuff can either be inlined (in Rust) or could then go to a |
I thought about improving the plot script, but it didn't go anywhere. You're welcome to try to improve it yourself. The only conditions for improving it are:
|
@Radonirinaunimi please don't fix clippy's warnings, this is out of scope of this PR. Also don't silence them, because at some point we really want to fix them. For the time being we should limit the changes in |
Agreed with limiting the scope of this PR to these. I will now revert the last commit. But as a side note, fixing all the clippy warnings, as was done in 9fbb246, introduces not that many changes (as opposed to what I initially expected). The issue is that doing so changes the numerical values in a few places, which might not be worrying but for some lead the tests to fail. |
This reverts commit ced2f8e.
That's the problem I feared would appear. The evolution code, for instance, is quite fragile when it comes to numerical tolerances and will lead failures in unexpected places. For the future: keep in mind that we will always want to prefer |
Thanks! That's very useful to know. |
My initial idea was to introduce pre-commit hooks to lint and format the python files, but then I stumbled upon #180 and decided to introduce some minimal hooks for Rust and all the other files.
The configuration is kept to be very minimal in order to only perform the most necessary steps before pushing commits.
Left to do:
pineappl_cli/src/plot.py