-
Notifications
You must be signed in to change notification settings - Fork 74
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
Add a stage to lint documentation errors #105
Conversation
fd1281d
to
765c2a6
Compare
Rebased over #108 to get the CI working. |
CI is failing... |
Thanks; bad rebase. Should be fixed now. |
This failed on the first two packages I tried it on, e.g.
How are you testing it? I'm using I think we should be using the same code to generate the Dockerfile installation lines for the lint stages as for the main build stages. Is |
I've rebased and changed the approach slightly. The logic for installing Opam dependencies of the project is now properly shared with Tested to be working on Alcotest, Irmin and OCurrent in |
I've deployed it... let's see what happens! |
Odoc is just a binary, and is installed that way in the duniverse_build.ml (install_bin). @craigfe, why is the doc target disabled in the duniverse build? The intention is very much to build docs there, so that the stage can be further extended in the future to a deployment/staging branch for visual inspection. |
@avsm: I'm keen for that feature too, but it's not clear to me why it should apply only to Duniverse projects. Shouldn't Opam builds get a deployment/staging branch for their docs too? That's why I proposed taking it out of |
But you've taken out the feature without adding it anywhere else for them. Remember that right now, duniverse builds are distinct from opam builds. I'm happy to refactor it when we add the staging support, but right now I'd like to ensure that it stays building correctly with duniverse projects. |
For me,
https://ci.ocamllabs.io:8100/job/2020-04-21/184252-docker-build-be7e04 |
Right, that'll fail because the duniverse build is different from the opam build. The doc linting step is trying to copy all the opam files, and to pin them, and then run depexts, and then install them, etc. The duniverse build doesn't install opam deps, and uses the locally vendored copies instead with a single dune build. There's a material difference in how the opam and the duniverse builds work. I think in the interests of pushing this PR forward, it should leave them distinct, and we can work on converging them in a next step. |
Linting steps are now disabled for Duniverse projects, and I've reverted the change to not build docs during the build stages of Duniverse project. The current solution uses a bind to conditionally execute linting according to the results of the analysis step. |
2acddb5
to
6658187
Compare
This resolves #94.
This stage follows the same structure as the existing
lint
step, but shares some logic with the Opam build steps in order to install the appropriate dependencies before building the documentation.