Skip to content
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

Setup CI for testing #95

Closed
brandonwillard opened this issue Jul 28, 2020 · 7 comments · Fixed by #96
Closed

Setup CI for testing #95

brandonwillard opened this issue Jul 28, 2020 · 7 comments · Fixed by #96

Comments

@brandonwillard
Copy link
Member

This project really needs CI. We can probably set up a GitHub Action that runs the tests without too much effort.

@ekaschalk
Copy link
Collaborator

ekaschalk commented Jul 30, 2020

What do you want to get out of it?

Typically it's jedhy that's the issue, because it's coupled with Hy's internals. Have the tests ever not been passing now that I think about it, it's been a bit for me.

@brandonwillard
Copy link
Member Author

Are you asking what I want to get out of CI/automated testing?

@ekaschalk
Copy link
Collaborator

Yes, for this project. Active development hasn't been happening for awhile so this would be forward looking. It would cover syntax, font locks, and indentation. These things pretty rarely other users contribute to.

@brandonwillard
Copy link
Member Author

At the very least, it would be nice if we could reasonably merge PRs—no matter what the changes entail—without having to check out each PR branch and run the tests locally (if us maintainers are being responsible, that is).

Furthermore, there's also the fact that each developer's local setup can easily differ in ways that Cask package management cannot account for (e.g. I run the feature/native-comp branch of Emacs), so the part of the CI process that constructs and tests the supported platforms is also very important—especially since most people definitely won't want to install multiple Emacs versions.

This is just scratching the surface of why CI is good for even small open-source projects, and, given that it's also free and relatively easy to set up, there would need to be some pretty strong disadvantages to CI for it to not be worthwhile.

Plus, it's not difficult to argue that having CI promotes both active development and general use of the package, since at least minimal functionality can be verified by a casual observer who might decide to use or develop it based on this information.

@ekaschalk
Copy link
Collaborator

Yea CI is almost always good as long as you have actual coverage.

This project has enough coverage I suppose to be useful in some PRs that have historically been received here, like font lock updates for language changes. Also I'm glad people are actively using that branch.

CI promotes both active development and general use of the package

This is true for general use projects like evil and ivy, but I have no reason to believe this for major modes. The popularity of the mode is pretty dependent upstream on Hy. I would love a reason to invest time into this like bbatsov does with cider, but that is not how Hy's development has played out.

I'm fine with adding CI, but also know I consider this repo more-or-less complete pending any new motivation from Hy.

@brandonwillard
Copy link
Member Author

Yea CI is almost always good as long as you have actual coverage.

CI can be good even if it simply verifies that the package installs properly on a given system! And what about coverage across different versions of Emacs? The coverage you're talking about doesn't cover that.

Regardless, I'm not aware of any relationships between coverage measures and CI applicability—aside from the trivial case of zero coverage—that are actively used in the development world. The most relevant consideration is almost always simply the cost/benefit trade-off of deploying and maintaining CI, and—again—in this case that's not a real deterrent.

Here are a few non-evil/ivy-sized *-mode projects that have CI (and not all appear to have large test suites/coverage):

Referencing only the last case, ox-latex-subfigure, we can get a pretty good idea of how simple it can be to set up CI: e.g. we only need to make some minor modifications to a workflow file like this.

CI promotes both active development and general use of the package

This is true for general use projects like evil and ivy, but I have no reason to believe this for major modes. The popularity of the mode is pretty dependent upstream on Hy. I would love a reason to invest time into this like bbatsov does with cider, but that is not how Hy's development has played out.

In my experience, the use and popularity of a language can also be quite correlated with how well it's supported by editors/IDEs, so you're only referring to one side of that relationship. In other words, there might be a good chance that the quality of hy-mode affects the use and popularity of Hy itself, and that alone is a good reason to automate testing.

@ekaschalk
Copy link
Collaborator

ekaschalk commented Jul 30, 2020 via email

brandonwillard added a commit to brandonwillard/hy-mode that referenced this issue Jul 30, 2020
brandonwillard added a commit to brandonwillard/hy-mode that referenced this issue Jul 30, 2020
@brandonwillard brandonwillard linked a pull request Jul 30, 2020 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants