coq-community / manifesto

Documentation on goals of the coq-community organization, the shared contributing guide and code of conduct.
Other
68 stars 6 forks source link

CI feedback from the Coq Community Survey 2022 #141

Open Zimmi48 opened 2 years ago

Zimmi48 commented 2 years ago

We asked several questions about CI for Coq projects in the Coq Community Survey 2022. Here are the results.

cc @erikmd @CohenCyril

CI usage

The other answers were:

  1. Insufficient project maturity (somewhat like don't need it)
  2. Waste of energy (save the planet)
  3. I only have small Coq projects at this date
  4. Don't know advantages of doing so
  5. Time to set it up
  6. low priority
  7. I didn't think about it yet
  8. I'm not sure how my small projects would benefit from it
  9. Laziness :-)
  10. Just too small projects so far
  11. All of the above
  12. I didn't get around to it yet.
  13. I'm not sure how CI looks for coq, didn't think about it
  14. My latest projects have been too small to merit using CI and so I haven't yet figured out how to do it
  15. not needed for mostly exercise problems
  16. It was not necessary for my doctoral work.
  17. I don't need it for my personal projects, but my company uses it for work projects (I'm not the DevOps guy, though)
  18. lazyness
  19. I'm too lazy / busy with other things to set it up.
  20. Waste of cycles. Nightly or weekly automated build runs are more than sufficient.

CI platforms

The other answers were:

We can also see that Travis CI has not been used by a lot of newcomers:

CI tools

The other answers were:

  1. UniMath CI installs Coq from source on Ubuntu and via homebrew on MacOS
  2. can't remember
  3. I don't know, a team member set this up
  4. https://github.com/ocaml/setup-ocaml
  5. Opam
  6. Someone else set up CI
  7. ubuntu packages at https://launchpad.net/~jgross-h

The other answers were:

  1. the docker images can't cache libraries I depend on. If the library compiles slowly, my CI compiles slowly. Caching .opam fixes this problem
  2. I don't know what we did, a team member set this up
  3. I reused & adapted scripts made by a colleague
  4. Learning how to use them might pay off in the future, but it is hard to give it a try with limited time when something else is already working.
  5. at the time I chose, this was the only solution that did not rebuild Coq from scratch on each CI run
  6. I had trouble making it work together with a Haskell environment in the past

General CI feedback

  1. I think that CI support is good. I wish that the docker images were released more tightly since that is the main bottleneck in updating coq projects to a newer version of coq.

  2. I am not at all aware about the CI tools that the Coq ecosystem provides.

    In UniMath, we have somewhat struggled with setting up CI, and we would love to learn more about the available CI tools.

  3. I feel hobbled using CI because I'm not an expert in the use of opam. And opam seems quite complex to me, so I am not well motivated to become expert in opam.

  4. Honestly CI is pretty great these days with pre-built images, the template, and GitHub Actions in general.

  5. I only started using it recently and it’s insanely helpful!

  6. I love Coq :D keep on the good work !

  7. A bit of delay with the coq/ocaml most recent versions

  8. A coq/setup-coq repo is what people will look for/expect when it comes to github-actions. That repo would install coq using the tool cache at the desired version.

    Getting coq into the actions/virtual-environments images will make everyone's CI jobs faster and make it simpler for people to get started. They are pretty generous with including niche software in their base images.

  9. For plugin testing, it is necessary to combine specific OCaml and Coq versions, which the current images do not provide.

  10. I would love to see well-supported binary tarballs of Coq and ocaml and etc instead of special solutions for each platform of the day.

  11. I love it!

  12. Great work! But still a bit hard to use / understand, in particular the Nix-based setup.

  13. I have used NixOS ages ago and I'm not an expert. With my basic knowledge I find the documentation on the nix solutions hard to follow, in particular when it comes to adding dependencies and having them cached with cachix. I didn't do a lot of digging because it was not too important, but overall I would very much like to switch from our custom docker images to a nix-based solution.