KhronosGroup / DockerContainers

Docker container specifications which package dependencies for building Khronos documentation and software
Apache License 2.0
7 stars 10 forks source link

Missing python module pyparsing #23

Closed gfxstrand closed 1 year ago

gfxstrand commented 1 year ago

Tried to build the Vulkan spec today and got

Traceback (most recent call last):
  File "/vulkan/scripts/genvk.py", line 19, in <module>
    from docgenerator import DocGeneratorOptions, DocOutputGenerator
  File "/vulkan/scripts/docgenerator.py", line 10, in <module>
    from parse_dependency import dependencyLanguage
  File "/vulkan/scripts/parse_dependency.py", line 15, in <module>
    from pyparsing import (
ModuleNotFoundError: No module named 'pyparsing'
oddhack commented 1 year ago

I assume this is regarding the asciidoctor-spec container? If so, are you using the current version (the one whose SHA is in .gitlab-ci.yml)? There are some weird Docker caching issues at play both inside and outside of CI and referring by SHA is the only reliable way I've found to get the right version of the container image.

If you are using that image, how are you invoking the build resulting in this error? I don't have any trouble building using it.

MarijnS95 commented 1 year ago

Related: #22

gfxstrand commented 1 year ago

It appears my issue is that I was using the vulkan-docs-base image which hasn't been updated in dockerhub since pyparsing was added as a dependency. The asciidoctor-spec image in dockerhub is fine and I've switched to that now. Since the dockerhub image has been busted for a bit and I'm the first to complain, maybe it's not being used by anyone anymore? Either way, feel free to close this if you want.

MarijnS95 commented 1 year ago

Is vulkan-docs-base perhaps not sourcing asciidoctor-spec correctly? The former image builds on top of the latter.

MarijnS95 commented 1 year ago

Note that we have had a bit of a versioning mess while trying to work out the best way to label images in this repo, and I don't think (but haven't double-checked) that all the erroneous tags were revoked, or if that's even possible (EDIT: looks like that happened, there are no .latest tags on dockerhub).

gfxstrand commented 1 year ago

It looks like it is sourcing asciidoctor-spec properly but the dockerhub image hasn't been updated properly. I don't know who's in charge of making sure all the images get updated when the source dockerfiles change.

MarijnS95 commented 1 year ago

@jekstrand I cleaned up the inner workings of that so that pushing all containers is just a ./build-all.sh push away, which I think is what @oddhack runs.

IIRC it might have also been @oddhack to request keeping ./build-one.sh ... push to publish individual images, perhaps it was missed that way?

oddhack commented 1 year ago

vulkan-docs* are not being updated any more. They are no longer used in the recent Vulkan repos as you noticed and I don't want to be on the hook for keeping them updated and working indefinitely - the current spec repo identifies the asciidoctor-spec image as the one to use and refers only to that.

I do not know how to deprecate a Docker image, if that's even possible in a way which is visible to people using it. If there's a way we should probably do that.

oddhack commented 1 year ago

Regarding how the images get updated, when there's a need I generate and push a new one by hand, then update the SHA256 in the CI scripts to pull that specific one.