coq-community / docker-coq-action

GitHub Action using Docker-Coq [maintainers=@erikmd,@Zimmi48]
MIT License
12 stars 4 forks source link

Support https://hub.docker.com/u/mathcomp and custom images #7

Closed erikmd closed 4 years ago

erikmd commented 4 years ago

Recap of a discussion with @Zimmi48:

Zimmi48 commented 4 years ago

I expected that custom_image would do the job of supporting the math-comp images, and that it would precisely be the example that would be documented.

erikmd commented 4 years ago

Hi @Zimmi48, indeed that would be a simpler solution and I'd also be fine with it.

I was just thinking about the following advantage of specifying an intermediate configuration (i.e., no custom_image set but a mathcomp_version value set):

it will be easier to specify that a given development depends on coq_version ∈ {8.11, dev} and mathcomp_version ∈ {1.10.0, dev} rather than writing:

custom_image ∈ {
mathcomp/mathcomp:1.10.0-coq-8.11,
mathcomp/mathcomp:1.10.0-coq-dev,
mathcomp/mathcomp-dev:coq-8.11,
mathcomp/mathcomp-dev:coq-dev}

WDYT?

erikmd commented 4 years ago

I was thinking of this extra layer also because I believe @ejgallego had suggested once in the ssreflect mailing list to simplify the syntax of the mathcomp images (: vs. -) to be able to do more easily a "build matrix" specification...

Anyway, if you think this is not really necessary, we'll be able to implement this extra "layer" of mathcomp_version later on just as well if we want, to keep the code of the action simpler for now.

Zimmi48 commented 4 years ago

I'm fine with both solutions. But what to give was an example if not Math-Comp?

erikmd commented 4 years ago

I'm fine with both solutions. But what to give as an example if not Math-Comp?

Indeed...

on the one hand, the "build matrix" feature is convenient to test the "product" of several configurations in a concise way;

but on the other hand, sometimes we wouldn't want to take "the exact product" of all coq / mathcomp versions (e.g. two different mathcomp versions don't necessarily support the same coq versions, and we may also want to remove some configurations by hand to have a more lightweight CI), and finally changing the ocaml_version in this context will be a no-op as math-comp images will ultimately have only one switch, cf. https://github.com/coq-community/docker-coq/issues/4#issue-588093947

so all in all, even if both solutions are interesting, let's stick to the mere custom_image solution for the time being, with mathcomp as a documentation example ((and if later on we get some feature request for a mathcomp_version property, we'll be able to reconsider this choice anyway))