KhronosGroup / SPIRV-Registry

SPIR-V specs
113 stars 76 forks source link

Automatically generate HTML specs and publish them via Github Pages #270

Open kpet opened 3 months ago

kpet commented 3 months ago

The HTML files for the various extensions currently in the repository were generated with various versions of asciidoc or asciidoctor and we do not currently check that the HTML files in the repository match the corresponding asciidoc source.

Following the introduction of an official toolchain in https://github.com/KhronosGroup/SPIRV-Registry/pull/247, we should add automation to guarantee that:

I think the following sequence of steps should get us there:

No longer doing:

kpet commented 3 months ago

2024/08/14 teleconference: consensus in the group to skip automatic checking of the HTML files as a step and transition directly to automatically publishing HTML specs via Github Pages and remove HTML files from the repo.

bashbaug commented 3 months ago

In case it helps other vendors updating their extension specs: One of the differences I noticed updating the Intel specs was that text in 'single quotes' is rendered as italics using asciidoc, but not always using asciidoctor. I couldn't figure out how to make the single quote method work reliably, and it's not documented in the asciidoctor docs, so I ended up switching everything to use _underscores_ for italics instead.

wooyoungqcom commented 1 month ago

SPV_EXT_mesh_shader.asciidoc seems broken. Quite a few tables are not correctly rendered when opened.

Tobski commented 1 month ago

I've just raised https://github.com/KhronosGroup/SPIRV-Registry/pull/290 for EXT and AMD extensions

wooyoungqcom commented 1 month ago

Thanks so much, Tobias I browsed the generated html files, they all look OK, now.

I tried generating them myself, and they were OK. The only complaint I got from asciidoctor that I used was

WARNING: SPV_EXT_physical_storage_buffer.asciidoc: line 112: id assigned to anchor already in use: VariablePointer

Tobski commented 1 month ago

Thanks so much, Tobias I browsed the generated html files, they all look OK, now.

I tried generating them myself, and they were OK. The only complaint I got from asciidoctor that I used was

WARNING: SPV_EXT_physical_storage_buffer.asciidoc: line 112: id assigned to anchor already in use: VariablePointer

Ah, that's a bit of a weird one, seems someone expected this to be read as plain text. Not sure how I missed it though! Thanks - I've pushed a fix now.

bashbaug commented 2 weeks ago

I noticed a few issues we may want to address after merging the changes to deploy to GitHub pages:

  1. A bunch of extensions (but not all) include a "last modified date" towards the top of the file that gets populated based on the asciidoctor {docdate} attribute. Because we "touch" all of the files before building, this means that the "last modified date" is actually the "last build date". Do we want to "fix" this?
  2. Our Makefile is currently only building the extension specifications and is not building the nonsemantic extended instruction sets. If we want to migrate our HTML specifications entirely to GitHub pages we'll want to enable the nonsemantic extended instruction sets, also.