Automatic Publishing of W3C Technical Reports

Denis Ah-Kang

Copyright © 2021 W3C ® (MIT, ERCIM, Keio, Beihang)

Goals of automatic publishing

/TR should represent the web we want.

In order to keep it up-to-date, we need to reduce the gap with the editor's draft and faciliate the updates to /TR.

The automatic publication system: Echidna

Echidna can process a document and publish to /TR if:

Current applicability

REC trackD

Requirements...

... for CR Snapshots

Examples: issue #199 and issue #261

Set up your repo for automatic TR updates

To get started with Echidna, we recommend using the GitHub action spec-prod written by Sid Vishnoi.

spec-prod can:

Token as a repository secret (1/2)

The token provided by the team contact should be added to your repository as a repository secret.

Repository Secrets

Token as a repository secret (2/2)

New Secret
Secret added

spec-prod workflow

# .github/workflows/pr-push.yml
name: CI
on:
  pull_request: {}
  push:
    branches: [main]
jobs:
  main:
    name: Build, Validate and Deploy
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/checkout@v2
      - uses: w3c/spec-prod@v2
        with:
          W3C_ECHIDNA_TOKEN: ${{ secrets.W3C_TR_TOKEN }}
          W3C_WG_DECISION_URL: <DECISION>
        

By default, spec-prod will look for source files index.html (ReSpec) or index.bs (Bikeshed).

Customize the workflow

spec-prod offers a few options to customize the build, such as:

Example of customized workflow

# .github/workflows/echidna-publishing.yml
name: CI
on:
  push:
    branches: [main]
jobs:
  main:
    name: Build, Validate and Deploy
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/checkout@v2
      - uses: w3c/spec-prod@v2
        with:
          W3C_ECHIDNA_TOKEN: ${{ secrets.W3C_TR_TOKEN }}
          TOOLCHAIN: bikeshed
          SOURCE: foobar.bs
          W3C_NOTIFICATIONS_CC: echidna@example.org
          W3C_WG_DECISION_URL: https://lists.w3.org/Archives/Public/...
          W3C_BUILD_OVERRIDE: |
             shortname: spec-1
             status: WD
        

Other examples of workflows

More examples of configurations are listed in examples.md

Check results (1/2)

The status of the workflow can be found in the 'Actions' tab, e.g. mediacapture-record:

GitHub actions

Check results (2/2)

GitHub actions

spec-prod will check the result of the request to Echidna a few times only. If the request is still pending when the workflow completes, the report will be sent to public-tr-notifications once it's over.

Overview

General Overview

Alternatives to spec-prod

Although spec-prod is the recommended way to publish /TR document with Echidna, there are other methods described in the wiki.

Get help!

What's next?

Questions?