-
Notifications
You must be signed in to change notification settings - Fork 3.1k
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
Include more metadata in wptreport JSON #10511
Comments
I'd like to see the UA string, too? |
See also #10026. |
The UA string couldn't be trusted for the version number, as Safari's is frozen, but sure, if it's already known then including it seems fine. |
What do you think about a vendor-defined build identifier?
The arguments passed to the WPT CLI may be overly specific to our current needs. They may include a lot of irrelevant information ( What do you think about distilling the relevant information down into runner-agnostic properties? That would include environment variables and command-line arguments for both the browser process and the WebDriver server process, though there might be more. This would omit the timeout multiplier. This is certainly relevant, so we could track that separately (if only to avoid asking folks to perse UNIX-style commands to get at the data). I'm wondering, though, if we want to support variation there. Might it be better to promote uniformity by requiring reporters to use the default timeout values? The WPT server configuration is another source of variation between test executions. Unlike the WPT CLI, I'm not aware of anyone who attempts to maintain their own server. Then again, it's not clear if any of that configuration is relevant for reproducibility. It's possible that a given test might pass when served from port 8000 not port 8001, but that doesn't seem likely enough to warrant inclusion in the report. |
We will need the channel information for presentation, so putting it a single vendor-defined build identifier would require parsing it out again. Similarly, for the command line args I was thinking that's useful debug information, not for wpt.fyi to parse information from. Any information we know we can make use of makes more sense to extract out into separate fields. Other than the packaging of the information, is there anything extra to include that's not been mentioned? @jgraham, are there other more verbose output formats we could steal some ideas from? |
Other than being potentially more stable over time, I agree that my suggested additions won't be of particular use to the wpt.fyi website. For this generic test results format, I'm interested in promoting reproducibility. |
I guess the various config dicts might also make sense to include, if we're to maximize debugability and reproducibility. |
We could include both the driver and browser paths, and maybe derive stable vs. experimental from that, but I suspect that won't be different on Windows Insider Preview. |
So, in wptrunner implementation terms there are a few things to consider:
More generally I think we should not try to stuff lots of debugging information into these fields. For the use case of debugging public runs, a fuller log should be available. For reproduction of private runs we have already lost if people are allowed to use whatever test runner they like. So lots of detail about wptrunner-specific configuration options and so on doesn't make much sense to me. I would suggest the following:
I think recording all the prefs passed in may be too much (it's at least hard to do in wptrunner). For chunk information in particular I'm very happy to extend the mozlog API to explicitly support chunk/totalChunks/repetition fields on [1] https://searchfox.org/mozilla-central/source/testing/mozbase/mozlog/mozlog/structuredlog.py#286 |
I agree with @jgraham 's proposed list of extra fields, at least as starters. In terms of the priorities, git commit, browser & OS versions are the most important. I'd like to have them in the report before the result receiver launches, since they will affect whether runners need to include extra fields in the requests when uploading new results. I'll take a stab at adding them to the JSON report. @foolip , WDYT? Meanwhile, @jgraham could you look into the other fields when you have some time? They are not as urgent. |
The browser information is a blocker that we need to address before relying on that in the results receiver of wpt.fyi. I'm proposing:
|
@Hexcles, that set of information SGTM, I'll go ahead and assign this issue to you for the initial batch. I do think that it would be a good idea to include the verbatim string from which some of which this information is derived, i.e., the unprocessed Nit: osx → macos |
run_info includes OS and browser info. This is the first stab at #10511 .
run_info includes OS and browser info. This is the first stab at #10511 .
Awesome, with #10811 merged, https://taskcluster-artifacts.net/H11pXovsRiyOOgBcxbDHow/0/public/results/wpt_report.json now begins like this: {
"run_info": {
"bits": 64,
"debug": false,
"processor": "x86_64",
"os": "linux",
"version": "Ubuntu 16.04",
"product": "chrome",
"os_version": "16.04",
"linux_distro": "Ubuntu",
"has_sandbox": true
},
"time_start": 1525648962173,
"time_end": 1525650923418,
"results": ...
} Looks like we have most of the information mentioned in this issue already. @Hexcles, was it deliberate that the timestamps are not inside run_info? And do you think it would be an improvement to format the dates as strings with timezone, to make it unambiguous to any reader, and harder to get it wrong for the producer? I also wonder what |
@foolip Given it just uses the pre-existing
So, uh, it's whatever |
@foolip Yes, the timestamps were intentionally put outside of The |
@Hexcles if not all information will make sense in And will the |
@foolip filed https://bugzilla.mozilla.org/show_bug.cgi?id=1459651 for the lack of documentation of any of the fields in run_info, FWIW. |
@Hexcles I know that you would prefer to hold off on documenting the data structure for now, but given that |
@jugglinmike yes I will. Status update: I think the last piece of crucial information missing in wptreport is the revision (we don't have #10452 yet so there'll be no "experimental" field for now). |
Thanks, Robert! |
Yeah I think we've covered the basics. If there's anything else we'd like to add we can open new issues. |
This came up in Design Doc: WPT Results Receiver with @jgraham and @Hexcles.
The format is currently:
Add something like a
metadata
field at the top level, another object with something like:wpt run
command line (which would include sharding commands)wpt run
was invoked and datetime when run finished. (duration can be computed)@jugglinmike, anything else you'd like to put in there?
The text was updated successfully, but these errors were encountered: