Skip to content

enable auto-publication for css-color-5#13553

Merged
svgeesus merged 2 commits intomainfrom
autopublish-css-color-5
Feb 27, 2026
Merged

enable auto-publication for css-color-5#13553
svgeesus merged 2 commits intomainfrom
autopublish-css-color-5

Conversation

@deniak
Copy link
Member

@deniak deniak commented Feb 24, 2026

That PR adds a GitHub action to publish css-color-5 through echidna after each commit.
It relies on spec-prod to build the spec and submit it to echidna.

I already generated the token for css-color-5 and added it as a repository secret.

Also, as discussed, the will be able to disable that action if needed and re-enable it later.

@deniak deniak requested a review from svgeesus February 24, 2026 13:47
@svgeesus
Copy link
Contributor

Does this need to override with "Prepare for TR: yes" or does Echidna add that automatically?

I don't see anywhere that ../default.css is added?

Copy link
Contributor

@svgeesus svgeesus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some questions remain

Copy link
Member

@tidoust tidoust left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This approach that uses one workflow per spec seems a good one to me, be it only because it allows to only publish specs that actually got updated and need to be published (thanks to the on.push.paths setting).

Not a blocker for this one, but I note that this will become harder to maintain as the number of specs that switch to auto-publication grows. In the w3c/webcodecs repository, we use a short Node.js script that starts from a workflow template and the list of specs that are in the repository and that generates the appropriate workflow files, see:

Such a script can be used to re-create all workflow files whenever needed, which allows to, e.g., update action versions, and tweak parameters all at once. I suggest to adopt a similar approach. The Node.js script could be easily re-written as a Python script if that seems more aligned with the other build scripts.

It might be interesting to deploy Editor's Drafts to GitHub Pages using the same workflow as well. Right now, any update in the repository triggers a complete rebuild of all specs, which takes more than 8 minutes. That could also be done later on.

@tidoust
Copy link
Member

tidoust commented Feb 24, 2026

Does this need to override with "Prepare for TR: yes" or does Echidna add that automatically?

The spec-prod action takes care of that automatically.

I don't see anywhere that ../default.css is added?

The spec-prod action automatically retrieves and publishes stylesheets and images that appear to be linked from the specification. Now, it does not seem that css-color-5 links to default.css? (various specs in the repository do, but not this one, as far as I can tell).

Co-authored-by: François Daoust <fd@tidoust.net>
@svgeesus
Copy link
Contributor

Now, it does not seem that css-color-5 links to default.css? (various specs in the repository do, but not this one, as far as I can tell).

Looking at recent CSS TR publications, they don't anymore (but do have huge inline css) so I guess that gets added by bikeshed now. Well, that will save me one step from manual publication in future.

The spec-prod action automatically retrieves and publishes stylesheets and images that appear to be linked from the specification.

Could you be a little more precise? Just stylesheets and images, or other things as well? For this spec, images has images/fonts which has a woff2 font needed for the SVGs.

@deniak
Copy link
Member Author

deniak commented Feb 24, 2026

This approach that uses one workflow per spec seems a good one to me, be it only because it allows to only publish specs that actually got updated and need to be published (thanks to the on.push.paths setting).

Not a blocker for this one, but I note that this will become harder to maintain as the number of specs that switch to auto-publication grows. In the w3c/webcodecs repository, we use a short Node.js script that starts from a workflow template and the list of specs that are in the repository and that generates the appropriate workflow files, see:

Such a script can be used to re-create all workflow files whenever needed, which allows to, e.g., update action versions, and tweak parameters all at once. I suggest to adopt a similar approach. The Node.js script could be easily re-written as a Python script if that seems more aligned with the other build scripts.

That's good to know. I agree the list of workflows can quickly become hard to maintain given the number of specs in that repository.

@deniak
Copy link
Member Author

deniak commented Feb 24, 2026

The spec-prod action automatically retrieves and publishes stylesheets and images that appear to be linked from the specification.

Could you be a little more precise? Just stylesheets and images, or other things as well? For this spec, images has images/fonts which has a woff2 font needed for the SVGs.

spec-prod will fetch all the resources linked from the main document. However, in the case of css-color-5, the fonts are used by the svg files, e.g. https://www.w3.org/TR/2026/WD-css-color-5-20260113/images/CH-mixing.svg, and spec-prod will not see them so you are right, we will need to adapt the action to include the fonts files too.

@deniak
Copy link
Member Author

deniak commented Feb 26, 2026

@sidvishnoi and I worked to fix the subresources issue and spec-prod will now fetch the missing fonts as well. With this, I believe that PR is ready to be merged.

@svgeesus svgeesus merged commit f7edd35 into main Feb 27, 2026
2 checks passed
@svgeesus svgeesus deleted the autopublish-css-color-5 branch February 27, 2026 13:59
@deniak
Copy link
Member Author

deniak commented Feb 27, 2026

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants