Richard Eisenberg <r...@richarde.dev> writes:

>> On Jan 27, 2020, at 8:19 PM, Ben Gamari <b...@smart-cactus.org> wrote:
>> 
>> The linter does not hold up builds for merge requests but will hold up a
>> "pre-merge" validation job (e.g. a validation of an MR created by
>> @marge-bot). This ensures that a patch containing a wip/ submodule
>> reference will not be merged to master.
>
> Very interesting! Are there other such checks? I always assume that if
> an MR passes CI, then it is suitable for merging. Of course, what you
> describe makes perfect sense here -- we don't require upstream to have
> our commits during CI, but we do during merging. I'm just wondering if
> there are other such scenarios that are checked for.
>
Indeed we run a whole suite of linters in the `lint` stage of the CI
pipeline. See, for instance, [1]. These linters generally fall into a
few categories:

 * Some (e.g. the submodule and changelog linters) enforce policy that
   would otherwise be mere social convention. The former we already
   discussed. The latter checks that the string TBD doesn't appear in
   core library changelogs, ensuring that we take the necessary steps to
   finalize the changelogs before cutting a release.

 * Some (e.g. the makefile, CPP, and shellcheck linters) check for portability
   issues that we may not otherwise stumble upon in the set of platforms
   that we routinely test

 * Some (e.g. the typecheck-testsuite and lint-testsuite linters) are
   simply cheaper checks for obvious mistakes that we would otherwise 
   catch stumble upon late in the build.

Cheers,

- Ben

Attachment: signature.asc
Description: PGP signature

_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to