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
Reverse CI integration with downstream Ferrite packages #742
Comments
and FerriteGmsh.jl and FerriteMeshParser.jl
Yes, that would be nice for all such packages that are in the Ferrite-FEM org! An alternative approach is that downstream packages can run timed (e.g. weekly) CI-runs against Ferrite#master to be "notified" about breaking changes in Ferrite.jl, see e.g. https://github.com/KnutAM/FerriteAssembly.jl/blob/main/.github/workflows/FerriteMasterCI.yml |
What do you think is missing for basic test coverage in via what we have in docs? (assuming the porous media example will be merged soon)
Usually downstream packages are still bound to some Ferrite version, e.g. 0.3 and if we bump to e.g. 0.4 then there is no direct way of testing. In this case we will likely need some special test for master vs master to co-develop the releases. |
True! If we want to use the docs for checking this, then I guess it's fine! With #517 FerriteViz would also be used in the docs, and I hope there will be a FerriteDistributed example as well :) (I think that would make sense to have in the Ferrite's docs). (I'm just realizing that this would give exactly the same issue that I was concerned with above, that docs will fail until the downstream packages include the fixes. And this would also mean that the doc should build using the main version of downstream packages, I think it runs with latest now, but haven't checked).
Going from 0.3 to 0.4, it makes sense to co-release. But we probably want to avoid having to keep even minor versions in sync? One option could be to have a release workflow, that should be run manually before releasing a new version of Ferrite, and this should run with both Ferrite#master vs downstream#main and Ferrite#master vs downstream#latest to see if there are any changes that must be addressed before releasing Ferrite? |
I am a bit concerned regarding the tight integration of FerriteViz in the docs, because we do not have a nice way to "skip failing examples" yet, which just leads to a full block in the CI. Also I have not thought about putting a FerriteDistributed example into the core docs, but in a separate CI (same with FerriteViz), fot he very same reason.
Yes, this is just about breaking changes must come in some kind of pairing.
I think this is very similar to what Fredrik and I had in mind here. :) |
Haha, great! Then I misunderstood - I thought the intention was to run on every PR :)
Good point, I don't know enough about FerriteViz/Distributed to tell if that would become a problem. In any case, it could be nice to have the docs on the same page (but that doesn't mean it has to run in the same CI of course) |
We should add some basic integration testing for packages downstream of Ferrite core to catch internal problems earlier (currently FerriteViz.jl and FerriteDistributed.jl).
References
https://discourse.julialang.org/t/github-actions-workflow-for-reverse-dependency-integration-testing/53536
https://github.com/JuliaDiff/ChainRulesCore.jl/blob/caf8692ca1bf5fabeb4afc86340eef9456da469c/.github/workflows/IntegrationTest.yml#L65
The text was updated successfully, but these errors were encountered: