opam
opam copied to clipboard
GHA: add a job that test opam libs dependencies compilation
In it based on the same mechanism than opam-rt, it permits to keep them synchronised with the current API TODO
- [ ] add a release step to check CI log for failing projects
- [ ] add a mechanism to retrieve automatically opam lib rev deps
- [ ] add a mechanism to eliminate pinned packages that rely on old versions of opam
Discussion on dev meeting: We don't want to enforce failling jobs on package that we don't maintain, but the information can be used to know which maintainer/project to ping. Ideally, it would be a job that opens an issue on the good repository, or adds a comment in the PR itself. In the meanwhile, we would add 2 sets of dependencies to test:
- the one that we maintain as opam team or as maintainer (opam-publish, opam-build, etc.) that would hard fail if there in an API breakage
- the one that we don't maintain that would not make the job fail. It's up to us to go and look at the jobs, especially on releases It would also be nice to have an automatic selection of opam library rev deps from opam repo, but for that we need to add a step that eliminates package that are just incompatible (for ex ocaml-format < 2.3 soent' make sense to test).
main comment updated with TODOs
https://github.com/arozovyk/opam/pull/3
Added
- Auto reverse dependencies testing
- Error tracking (hard fail on packages we maintain, continue and report for others)
- Summary comment to the PR at the end of the run through github API, citing failing packages, with links to the failing job and the commit
I've extracted commenting in another PR (#6646) to unblock this one.
There are definitely some parts that can be improved (e.g. every project reinstall their dependencies, even if they have been installed before because a new local switch was created), but it's more than i'm personally willing to invest in that so since it's blocking other PRs i'm fine with it.
Yes, there is some caching that can be added, definitively.
Thanks!