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

Continuous integration #10

Closed
mschubert opened this issue Nov 17, 2021 · 6 comments
Closed

Continuous integration #10

mschubert opened this issue Nov 17, 2021 · 6 comments

Comments

@mschubert
Copy link

Are you interested in a PR to set up Github CI for the build?

@rcedgar
Copy link
Owner

rcedgar commented Nov 17, 2021

Never used CI, looking at the docs I guess I'm a bit skeptical, looks like one more thing I would have to learn and I don't see any benefit it would bring to this project. By all means educate me if I'm missing something.

@mschubert
Copy link
Author

Happy to explain!

The idea is to make sure that muscle can be built from the source that is available in this repository, on a range of standard platforms.1 Trying to build the last release, there were a couple of (minor) issues that it could have easily warned you about:

These are minor issues, but they are something every package for a (e.g.) Linux distribution has to repeatedly solve if it is broken in this repository. It makes sense to follow a set of standard practices to ensure compiling the software works with the standard tool set (e.g. gcc, clang) on a broad range of OS's.

What I'm suggesting is to send you a Pull Request that contains a Github Actions file to build muscle on some standard OS's every time you push to the repository.

You would not need to learn anything new, because I would provide the file (and it's straightforward to read). The workflow would alert you if the build does not work for some reason, e.g. the reasons listed above. If, for some reason, you decide you do not want this or it causes you trouble, you can simply delete the file again.

And of course it would reduce the likelihood that package maintainers each need to apply their separate patches to the build system.


1 This could also include running tests for your software to ensure it is working correctly (and prevent regressions where a feature is accidentally broken)

@joelb123
Copy link

I agree with what Michael said, and I think we should simply start pull requests to you so that you can see how easy it can be to collaborate on something. CI testing and packaging enables you to be more productive by automating the tedious stuff while ensuring that contributions from the community don't break your code.

As an example, on Muscle v4 I found that native compilation on gcc-11 with program-guided optimization gave more than a factor of 2 improvement in performance over pre-compiled binaries on my platform. I've been reluctant to give those simple makefile changes because the CI infrastructure isn't there for you to easily test them.

@rcedgar
Copy link
Owner

rcedgar commented Dec 11, 2021

Sorry for long delay, thanks for the explanation -- this sounds like a good thing to try if you guys can set up the github actions @joelb123 @mschubert

@rcedgar
Copy link
Owner

rcedgar commented Dec 23, 2021

I tried to set up workflows for building, please see PR #17. I'll wait a couple of weeks for comments before merging.

@rcedgar
Copy link
Owner

rcedgar commented Jan 15, 2022

Implemented in v5.1.

@rcedgar rcedgar closed this as completed Jan 15, 2022
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

No branches or pull requests

3 participants