Closed trinitronx closed 2 years ago
This is great! Thanks for doing this up.
Ping @mrtazz
Yes please ccept the PR :-)
It seems the hook will currently not work as documented when run from pre-commit run -a
because no file is then passed to checkmake. If I edit the config to
- repo: https://github.com/trinitronx/checkmake/
rev: 0.2.2
hooks:
- id: checkmake
files: Makefile
then that mode also works. Maybe this is something you'd want to document or maybe there's a smart way to handle this on the hook side?
thanks for taking the time to contribute!
[...SNIP...] because no file is then passed to checkmake
@renefritze: Sorry for the belated reply (too many GitHub notifications were cluttering my inbox for years).
Yes, this was fixed in a12e9a0 and 2d14c7a which also slightly depended on #70 being merged as well for multiple files support (which the -a
/ --all-files
flag would pass).
I noticed that you were using the "0.2.2
" pre-release testing tag in my fork, which was prior to both of those changes I mentioned above. This tag in my forked repo was meant mostly for my own internal testing, as well as anyone who wanted to alpha/beta test these changes prior to my pull requests being merged upstream (here on this repo). You may have realized this by now, but if you used the 0.2.3
or later tags from my fork, it probably would have worked. However, now in 2024, everything seems to be working well using the official 0.2.2
tag on this repo (mrtazz/checkmake@0.2.2).
Also, many thanks to @colindean for pushing the rest of the needed changes for Makefile
.make
file extension support, and the checkmake
hook support upstream to this repo, pre-commit
, and pre-commit/identify
projects! :shipit: :package: :rocket:
Coordinating changes across so many repos is a no small feat of Open Source collaboration, and is greatly appreciated! Thanks! :pray:
For more details, see:
I've revisited using this hook again in 2024, and it appears that all the necessary bits across all these projects are now merged and released! :rocket:
After a pre-commit gc
, pre-commit clean
, and pre-commit autoupdate
for an old project, everything works well using this official repo's 0.2.2
tag!
:tada: :champagne: Thanks @mrtazz!
Checklist
Not all of these might apply to your change but the more you are able to check the easier it will be to get your contribution merged.
[x] CI passes See the included GitHub Actions workflow on my fork here. It is expected to fail on this repo until tag
0.2.2
exists (see notes below).[x] Description of proposed change: Makes this repo a fully-fledged
pre-commit
hook.Now that Go modules are integrated into new versions of GoLang, the simplest path forward for getting this
pre-commit
hook working again is to include it in this repo.pre-commit
hooks withlanguage: golang
are designed to be included along with the go module's github repo project.Problem that was introduced by new GoLang versions: Lucas-C/pre-commit-hooks-go#2 As noted in #19,
go get ./...
, and nowgo install ./...
commands are based on certain assumptions. With newer versions of GoLang and now go modules, there are further assumptions thatgo.mod
andpackage
strings match the repo name, and this does not work for a wrapper repo that tries to include this one because it usespackage main
. Thus, the original pre-commit hook in #19 is now broken. I tried a few hack-ish methods of wrapping or including this repo as a go module underadditional_dependencies
. However, those methods were messy and did not work.[x] Documentation (README, docs/, man pages) is updated
NOTE: This depends on an immutable git tag or sha to be committed to this repo, because
pre-commit
requires anyrev
specified to be immutable. The included.pre-commit-config.yaml
specifies0.2.2
, under the assumption that this tag will exist after this Pull Request is merged.repos:
[x] Existing issue is referenced if there is one:
[x] Unit tests for the proposed change
NOTE: As noted above, this depends on an immutable git tag
0.2.2
being created on this repo after this Pull Request is merged. I've run the included GitHub Actions workflow on my fork here, by creating a fork-only local tag:0.2.2
. It's passing there, but is expected to fail here until that tag exists.EDIT: Additionally, I've pushed up another PR #70, which fixes the use case for running against multiple
Makefile
/*.mk
/*.make
file patterns. I've enabled this feature in commits 2d14c7a and a12e9a0. Without merging #70, thepre-commit
run will return nonzero exit status and print the usage text forcheckmake
. This is because previous to #70, it did not support passing multiple filenames on the command line.