Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

drafts.csswg.org published specs are weeks/months out of date with repo sources #8809

Closed
sideshowbarker opened this issue May 7, 2023 · 20 comments
Labels

Comments

@sideshowbarker
Copy link
Contributor

A large number of the CSS specs published on drafts.csswg.org are many weeks or even months out of date with their git sources — or in several cases even more than a year out of date.

The following table shows the date when each spec was last published, and compares that with the date for the most-recent commit to the git source for the spec.

Spec URL Days since spec
last published
Days since source
last changed
https://drafts.csswg.org/css-animations-2/ 66 days ago 15 days ago
https://drafts.csswg.org/css-animations-1/ 66 days ago 32 days ago
https://drafts.csswg.org/css-backgrounds-4/ 56 days ago 28 days ago
https://drafts.csswg.org/css-backgrounds-3/ 58 days ago 51 days ago
https://drafts.csswg.org/css-cascade-5/ 129 days ago 20 days ago
https://drafts.csswg.org/css-color-5/ 68 days ago 19 days ago
https://drafts.csswg.org/css-color-4/ 66 days ago 24 days ago
https://drafts.csswg.org/css-display-4/ 66 days ago 16 days ago
https://drafts.csswg.org/css-flexbox-1/ 108 days ago 50 days ago
https://drafts.csswg.org/css-font-loading-3/ 601 days ago 34 days ago
https://drafts.csswg.org/css-fonts-4/ 61 days ago 44 days ago
https://drafts.csswg.org/css-grid-2/ 243 days ago 53 days ago
https://drafts.csswg.org/css-images-4/ 61 days ago 1 days ago
https://drafts.csswg.org/css-images-3/ 124 days ago 1 days ago
https://drafts.csswg.org/css-inline-3/ 156 days ago 35 days ago
https://drafts.csswg.org/css-lists-3/ 437 days ago 53 days ago
https://drafts.csswg.org/css-overflow-3/ 65 days ago 39 days ago
https://drafts.csswg.org/css-position-3/ 65 days ago 38 days ago
https://drafts.csswg.org/css-pseudo-4/ 112 days ago 40 days ago
https://drafts.csswg.org/css-ruby-1/ 131 days ago 53 days ago
https://drafts.csswg.org/css-scroll-snap-1/ 65 days ago 16 days ago
https://drafts.csswg.org/css-sizing-3/ 65 days ago 53 days ago
https://drafts.csswg.org/css-text-4/ 65 days ago 12 days ago
https://drafts.csswg.org/css-text-3/ 83 days ago 12 days ago
https://drafts.csswg.org/css-transforms-1/ 445 days ago 30 days ago
https://drafts.csswg.org/css-transitions-2/ 66 days ago 12 days ago
https://drafts.csswg.org/css-transitions-1/ 66 days ago 54 days ago
https://drafts.csswg.org/css-values-5/ 97 days ago 30 days ago
https://drafts.csswg.org/css-values-4/ 61 days ago 2 days ago
https://drafts.csswg.org/cssom-view-1/ 143 days ago 12 days ago
https://drafts.csswg.org/cssom-1/ 201 days ago 10 days ago
https://drafts.csswg.org/mediaqueries-4/ 129 days ago 54 days ago
https://drafts.csswg.org/scroll-animations-1/ 58 days ago 1 days ago
https://drafts.csswg.org/web-animations-1/ 67 days ago 38 days ago
https://drafts.csswg.org/web-animations-2/ 67 days ago 32 days ago

It seems reasonable for the wider web-developer community and PR contributors and browser implementors and spec editors to expect that whenever a change is made to any CSS spec source in the git repo, the corresponding drafts.csswg.org spec will get automatically rebuilt and republished.

(That auto-publishing behavior is what was happening with the w3c.github.io/csswg-drafts specs. And speaking from my perspective as an MDN/BCD contributor, I can say it’s the behavior that MDN and BCD maintainers have been relying on when reviewing MDN and BCD PRs related to CSS features — and I can imagine it also being the behavior that other groups of stakeholders are similarly expecting).

@Loirooriol
Copy link
Contributor

@plinss

@plinss
Copy link
Member

plinss commented May 7, 2023

Not my issue, drafts.csswg.org is currently proxying w3c.github.io/csswg-drafts for all built specs.

Ping @tabatkins

@tabatkins
Copy link
Member

I'm confused. I just looked at the top half-dozen, and they're all exactly up-to-date. And as far as I can tell the "temporary fix" isn't relevant to this either, it just puts back the unlevelled versions (which I left broken under the assumption someone would complain if it was an issue; I'll take this as just such a complaint).

But I'm still definitely confused what precisely is supposed to be broken, and how.

@sideshowbarker
Copy link
Contributor Author

I'm confused. I just looked at the top half-dozen, and they're all exactly up-to-date.

https://drafts.csswg.org/css-animations-2/ shows “W3C First Public Working Draft, 2 March 2023”

image

And the Last-Revised HTTP header has Sat, 11 Mar 2023 06:05:07 GMT

$ curl -I https://drafts.csswg.org/css-animations-2/
HTTP/1.1 200 OK
Date: Mon, 08 May 2023 04:14:48 GMT
Server: Apache/2.4.10 (Debian)
Last-Modified: Mon, 8 May 2023 01:50:41 GMT
Last-Revised: Sat, 11 Mar 2023 06:05:07 GMT

https://github.com/w3c/csswg-drafts/commits/main/css-animations-2/Overview.bs shows more than a dozen changes have been committed to the spec source since 2 March 2023.

…and so on, down the line, for all the specs listed in the issue description.

@sideshowbarker
Copy link
Contributor Author

And as far as I can tell the "temporary fix" isn't relevant to this either, it just puts back the unlevelled versions

Yes, to be clear: That’s exactly what it puts back (and all that it puts back). It’s not intended as a fix for the problem of all the drafts.csswg.org published specs being weeks or months out of date with the repo sources.

I’m also confused by why all the drafts.csswg.org published specs are now out of date — because the w3c.github.io/csswg-drafts published specs were not. (And I’m certain that the w3c.github.io/csswg-drafts specs were not similarly out of date, for two reasons:

@plinss
Copy link
Member

plinss commented May 8, 2023

The 'Last-Revised' HTTP header is a non-standard header that the draft server uses to communicate with Shepherd's spec parser. It's not relevant here.

Those headers haven;t been updated for a while because the git->mercurial sync has been offline for a few weeks. It's not relevant at the moment either because we're not serving anything directly from the mercurial repo at the moment.

@sideshowbarker
Copy link
Contributor Author

it just puts back the unlevelled versions (which I left broken under the assumption someone would complain if it was an issue; I'll take this as just such a complaint).

See mdn/content#26613. That 52077ef change broke every single CSS spec link in every CSS article in MDN article that has a spec link — which is more than 1000 MDN articles.

@plinss
Copy link
Member

plinss commented May 8, 2023

And the git->hg sync was broken because of the github ssh key change, should be fixed now. So the 'Last-Revised' headers should be in sync shortly. Note that this has nothing to do with the content of the specs, which apparently has been in sync all along.

@sideshowbarker
Copy link
Contributor Author

Note that this has nothing to do with the content of the specs, which apparently has been in sync all along.

Given #8806, that doesn’t seem to be true.

Please look at these lines in the current source:

[Exposed=Window]
interface CSSImportRule : CSSRule {
readonly attribute USVString href;
[SameObject, PutForwards=mediaText] readonly attribute MediaList media;
[SameObject] readonly attribute CSSStyleSheet? styleSheet;
readonly attribute CSSOMString? layerName;
readonly attribute CSSOMString? supportsText;

…and then look at https://drafts.csswg.org/cssom-1/#the-cssimportrule-interface
image

The published spec is missing the layerName and supportsText attributes, which were added to the spec source last month.

@sideshowbarker
Copy link
Contributor Author

The 'Last-Revised' HTTP header is a non-standard header that the draft server uses to communicate with Shepherd's spec parser. It's not relevant here.

Those headers haven;t been updated for a while because the git->mercurial sync has been offline for a few weeks. It's not relevant at the moment either because we're not serving anything directly from the mercurial repo at the moment.

If the Last-Revised header can’t be relied on to give the right date, then that means nobody has any way to programatically determine, from the a GET/HEAD request for the spec, when the spec was last published — because for drafts.csswg.org specs, the Last-Modified header also doesn’t provide the date when the spec was last published, and never has. That’s why I had created the timestamps.json file (but which is now also gone, after the 52077ef change).

@plinss
Copy link
Member

plinss commented May 8, 2023

…and then look at https://drafts.csswg.org/cssom-1/#the-cssimportrule-interface

Not sure what you're looking at:
image

@sideshowbarker
Copy link
Contributor Author

Not sure what you're looking at:

I was looking at what I posted a screenshot of in #8809 (comment) — and which I gave the URL for. So either something’s changed in the meantime, or else it was caused by caching somewhere, because I now do also see the layerName and supportsText attributes as expected.

And I also see that https://drafts.csswg.org/css-position-4/ is no longer 404.

@plinss
Copy link
Member

plinss commented May 8, 2023

Also, the 'Last-Revised' header hasn't been served since we started proxying the github.io drafts, so not sure where you're even seeing that

@sideshowbarker
Copy link
Contributor Author

sideshowbarker commented May 8, 2023

Also, the 'Last-Revised' header hasn't been served since we started proxying the github.io drafts, so not sure where you're even seeing that

I’m still seeing it right now, just seconds ago, from running a curl request:

$ date
Mon May  8 14:07:32 JST 2023
$ curl -I https://drafts.csswg.org/css-animations-2/
HTTP/1.1 200 OK
Date: Mon, 08 May 2023 05:07:33 GMT
Server: Apache/2.4.10 (Debian)
Last-Modified: Mon, 8 May 2023 04:40:38 GMT
Last-Revised: Sat, 22 Apr 2023 03:27:36 GMT

@plinss
Copy link
Member

plinss commented May 8, 2023

And from the US:
image

You must have a caching proxy inline somewhere.

@plinss
Copy link
Member

plinss commented May 8, 2023

Or... your DNS is way out of date and somehow you're seeing the old server directly and not the new proxy

@sideshowbarker
Copy link
Contributor Author

You must have a caching proxy inline somewhere.
Or... your DNS is way out of date and somehow you're seeing the old server directly and not the new proxy

OK, thanks much — I’m not aware of any relevant caching proxy anywhere, so I guess the only thing it could be is my DNS being out of date. I wasn’t aware there was an old server vs the new proxy, but I’m guessing if there’s an old server that’s not up to date, then the behavior I’m seeing is because I’ve still been getting responses from that old server.

I’ll see what I can do about troubleshooting my DNS — but in the meantime, I guess I should go ahead and close this, since it seeming clear now that has to just be a local problem.

@sideshowbarker
Copy link
Contributor Author

OK, for the record here, it seems I had been getting routed to 173.230.149.95 (which I assume must be the old server) but now I’m finally getting consistently routed to 45.79.94.155 (which I assume must be the correct server, the new proxy).

I have no idea how I “fixed” it — all I did was to run a few tools like dig, traceroute, and mtr.

I hope it was in fact just some weird local issue, and not something caused by some broader network problem that other people (e.g., other people in Japan where I’m connecting from) might also run into. Because if they did run into it, it likely wouldn’t be obvious to them that they were seeing stale content.

Would it be possible to shut down the 173.230.149.95 server so that anybody else who might be still getting routed to it now would see hard 404s rather than stale content?

@tabatkins
Copy link
Member

it just puts back the unlevelled versions (which I left broken under the assumption someone would complain if it was an issue; I'll take this as just such a complaint).

Ah actually mea culpa; I'd left those files ungenerated because I'd assumed that the drafts server was still doing the redirecting that it used to, and we didn't need them here. (That is, I thought only https://w3c.github.io/csswg-drafts/css-backgrounds/ would 404, but https://drafts.csswg.org/css-backgrounds/ would be fine.) Seems like it's not, so we do indeed need to continue generating and serving the redirects ourselves. Fixing now.

@tabatkins
Copy link
Member

Fixed by 70fe674

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants