Don't lint every commit in an MR
Currently, every commit in an MR is linted separately. This means that a lint error anywhere -- even if fixed in a later commit -- stops CI from operating. In practical terms, it means that a contributor is forced to force-push a change when they introduce a lint error. Force-pushing is annoying when sharing an MR among a team.
To be clear, I think it's reasonable for every commit to be linted before merging, but that's perhaps an extra step that could happen during the merge process, not for every CI.
Another possible solution is to lint during pushing, so that the push itself fail if the lint does. I don't know how much this will slow down pushing.
Case in point: https://gitlab.haskell.org/ghc/ghc/-/jobs/482434, part of !4149 (closed).