-
-
Notifications
You must be signed in to change notification settings - Fork 59
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
Meta: Add makem.sh, et al for linting and CI #662
base: master
Are you sure you want to change the base?
Conversation
Thank you, I really appreciate this. I know I can use help catching silly mistakes like that one you saw, but I've never really had patience for linters. In my very limited experience it seems like it's very hard to write one that doesn't mostly give false positives. For example, here I think that only the thing about I guess if you commit to a particular linter you gradually learn how to warp your code so that is both correct and also satisfies the linter, so that you don't have to wade through so much output, right? (Although here I'm not sure how I'd get rid of the incorrect complaints about Please note that I don't mean to criticize your linter specifically, as this has always been my experience with them and basically the only linter-like things I find myself sticking with are compiler warnings, like I'll definitely think about merging this, after maybe trying it a bit myself. I do use the byte-compiler, |
Oh, you're definitely right about linters being noisy and sometimes impractical to satisfy. This is certainly the case here, especially when testing on multiple Emacs versions. It's often impossible to get it to lint cleanly on several versions at once. I will point out, though, that Instead of You can also edit the Of course, you might also try adding Regarding the Anyway, the bottom line for me is that these linters help me catch certain kinds of bugs before they reach users (especially bugs regarding supporting multiple versions of Emacs and Org), and therefore before they file a bug report about it. :) But like any automated tool, the results have to be interpreted with a grain of salt. |
Oh this adds so much code. @alphapapa Could you please turn this into a reusable GitHub action, similar to purcell/setup-emacs@master? I think tarsius also maintains such a reusable action which does linting and which does not duplicate large scripts across repositories. This makes it easier to keep the linter maintained and up to date. I would find a linter setup useful, which I could easily add to many projects by only adding the CI workflows yaml. |
I don't know, maybe. It's always been my intention for The idea is for the package maintainer to be in control, not upstream package maintainers, nor the maintainer of some YAML file (though I greatly appreciate Steve's maintenance of the Emacs setup action, which However, when used on GitHub Actions, Of course it would reduce the number of lines added to package repos, but another purpose of So, I'm not opposed to offering a way to run The bottom line, to me, is that it Just Works, so it's not as if it needs to be "maintained," so there's no reason not to add it. (Or if having it in a project root directory seems messy, that will be addressed by alphapapa/makem.sh#40.) |
Sure. I understand your points. It would just be my preference to not include or even edit any scripts, while I would use some action prepared by the upstream maintainer, in this case by you or Steve. If there is interest I may try to prepare such an action and contribute it to your repository. Regarding breakage I don't worry much. I think GitHub actions have some versioning mechanism too. Configuration could be done via yaml and environment variables, but ideally it would just work. ;) |
I have my local package-lint-flymake installed in Emacs for direct feedback and I don't need makem.sh for that. Also I don't keep multiple Emacs versions around locally, usually just the current one. Therefore CI for such extended linting adds quite some value, even if it runs only after pushing as a secondary assurance. |
FWIW, |
Hi Omar,
I saw 0d89add and thought that this might help prevent minor oversights like that in the future. Feel free to reject this PR if it's not your style, I'm just presenting it for your consideration. Embark is so useful, that if makem.sh can be helpful to the project, I'd be glad.
Anyway, even if this isn't merged, you might find some of these lint warnings helpful, especially on older Emacs/Org versions, e.g. https://github.com/alphapapa/embark/actions/runs/6203814262/job/16844997873#step:6:157