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

Manifest path trie RFC #40

Merged
merged 2 commits into from
Jan 30, 2020

Conversation

gsnedders
Copy link
Member

@gsnedders gsnedders commented Jan 21, 2020

@jgraham
Copy link
Contributor

jgraham commented Jan 21, 2020

If we have performance numbers for this adding them to the RFC would help make the case for accepting this change.

The details section could mention more clearly the benefits other than file size e.g. the ability to support partial updates.

Copy link
Member

@foolip foolip left a comment

Choose a reason for hiding this comment

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

Yay!


The proposal here is two-fold:

Firstly, replace the items objects with a series of nested objects forming a trie of path segments. This makes it much quicker to iterate through only specific directories, which is often enough done in a test-debug cycle.
Copy link
Member

Choose a reason for hiding this comment

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

Grammar around “done”

@gsnedders
Copy link
Member Author

If we have performance numbers for this adding them to the RFC would help make the case for accepting this change.

This RFC itself makes little difference to performance; the big gain is it makes include/exclude much easier to reimplement without iterating through all tests. The only significant change here is it reduces serialization cost, which is primarily apparent when a small number of tests are modified.

The details section could mention more clearly the benefits other than file size e.g. the ability to support partial updates.

This isn't actually any different than before, and I don't think it's changed the implementation complexity of that (reftest-simplification did that).

@gsnedders
Copy link
Member Author

In the case of no substantive disagreement the RFC is considered accepted after 1 week.

@foolip foolip merged commit 7105768 into web-platform-tests:master Jan 30, 2020
@gsnedders gsnedders deleted the manifest-path-trie branch January 30, 2020 16:03
gsnedders added a commit to web-platform-tests/wpt that referenced this pull request Jan 31, 2020
@tabatkins
Copy link

So yay, I wasn't aware of this change, which caused all of Bikeshed's WPT data to become incorrect and so the entire <wpt> feature to be broken.

I can monitor this repo if necessary, but I wasn't even aware that it existed - it's not, to my knowledge, linked from the README in the main /wpt repo.

Somewhat annoyed that Bikeshed, a known major consumer of the manifest data, wasn't notified of a major change to the manifest format.

@Hexcles
Copy link
Member

Hexcles commented Feb 8, 2020

@tabatkins we're terribly sorry. This really should not have happened. I'm not sure why Bikeshed didn't cross anyone's mind... Especially when I filed web-platform-tests/wpt.fyi#1777 (I even said "all features that rely on /api/manifest are off by default", sigh...)

We are taking steps to prevent this from happening. In addition to the making the RFC repo more prominent from the main WPT repo and including the version number in the response headers of wpt.fyi/api/manifest, I have another idea: #43

@jgraham
Copy link
Contributor

jgraham commented Feb 10, 2020

So first of all, apologies for breaking bikeshed; that was obviously unintentional. I had no idea that it was using the manifest, and to be honest didn't even remember that wpt.fyi was providing a public API here.

So clearly one thing that would have improved the situation would be having more consumers pay attention to the RFC repo. But I honestly doubt linking it in the README — though certainly a good idea — is going to make much difference. The RFC process was for example announced on the mailing list, and rather extensively discussed on IRC. It seems unlikely someone who missed all of that would notice a link buried in an already extensive README.

Even if you knew about the RFC repo, it technically doesn't cover wpt.fyi endpoints, and so it would be reasonable to assume that as a consumer of those endpoints changes in the RFC repo don't apply to you.

So in addition to the question about how to make people more aware of RFCs, I think we need to have a clear understanding of what stability guarantees are supposed to be offered by wpt.fyi endpoints, and ensure that there's some mechanism to get notified of changes there. It seems possible that the expectations around stability of the manifest format (largely: that it isn't) are incompatible with the kind of guarantees that wpt.fyi might want to make in general, so perhaps we should only make the raw manifest available on a URL that's explicitly marked unstable, and make other data from the manifest available in a stable format.

@tabatkins
Copy link

Apologies accepted, it was a minor hiccup overall and quickly fixed.

The RFC process was for example announced on the mailing list,

I just did a search thru my email for "wpt rfc" and didn't see any relevant hits. When/where did this discussion happen?

and rather extensively discussed on IRC.

w3.org#testing? That channel is extremely noisy with BitBot announcements; if I catch any discussion at all I consider myself lucky. Right now, my 30' vertical-oriented screen shows messages in that room up to 2am this morning (~11 hours ago)

It seems unlikely someone who missed all of that would notice a link buried in an already extensive README.

Strong disagree. There's a nice list of links already in the README with explanations of why you might want to visit each one; having one linking to /rfcs/ and explaining that breaking changes get announced/discussed there would have been caught by me, at least.

@tabatkins
Copy link

(That said, I wouldn't mind a more dedicated mailing list for this kind of thing.)

moz-v2v-gh pushed a commit to mozilla/gecko-dev that referenced this pull request Feb 11, 2020
…, a=testonly

Automatic update from web-platform-tests
Major new manifest version (v8): path trie edition

This essentially implements web-platform-tests/rfcs#40.
--

wpt-commits: 31c0f5efba38b7d1d7f45ac449bcbc892e8771ce
wpt-pr: 16537
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified-and-comments-removed that referenced this pull request Feb 12, 2020
…, a=testonly

Automatic update from web-platform-tests
Major new manifest version (v8): path trie edition

This essentially implements web-platform-tests/rfcs#40.
--

wpt-commits: 31c0f5efba38b7d1d7f45ac449bcbc892e8771ce
wpt-pr: 16537

UltraBlame original commit: a35a8d5c00bdfb36d38d996eae17921ad8495154
gecko-dev-updater pushed a commit to marco-c/gecko-dev-comments-removed that referenced this pull request Feb 12, 2020
…, a=testonly

Automatic update from web-platform-tests
Major new manifest version (v8): path trie edition

This essentially implements web-platform-tests/rfcs#40.
--

wpt-commits: 31c0f5efba38b7d1d7f45ac449bcbc892e8771ce
wpt-pr: 16537

UltraBlame original commit: a35a8d5c00bdfb36d38d996eae17921ad8495154
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified that referenced this pull request Feb 12, 2020
…, a=testonly

Automatic update from web-platform-tests
Major new manifest version (v8): path trie edition

This essentially implements web-platform-tests/rfcs#40.
--

wpt-commits: 31c0f5efba38b7d1d7f45ac449bcbc892e8771ce
wpt-pr: 16537

UltraBlame original commit: a35a8d5c00bdfb36d38d996eae17921ad8495154
xeonchen pushed a commit to xeonchen/gecko that referenced this pull request Feb 12, 2020
…, a=testonly

Automatic update from web-platform-tests
Major new manifest version (v8): path trie edition

This essentially implements web-platform-tests/rfcs#40.
--

wpt-commits: 31c0f5efba38b7d1d7f45ac449bcbc892e8771ce
wpt-pr: 16537
@foolip
Copy link
Member

foolip commented Feb 13, 2020

The list where this was discussed is public-test-infra: https://lists.w3.org/Archives/Public/public-test-infra/2019JanMar/0002.html

However, I'm not surprised that not everyone who could be affected by changes to WPT are on that list. Anyway, looks like things got sorted pretty quickly here, and web-platform-tests/wpt#21682 updated the README.

@tabatkins
Copy link

Yup, I wasn't subscribed to that; I am now.

And yeah, the README change is good; I consider my issue dealt with. Thanks, all!

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.

5 participants