16:07:30 RRSAgent has joined #did-topic 16:07:30 logging to https://www.w3.org/2021/04/08-did-topic-irc 16:08:11 Zakim has joined #did-topic 16:08:17 Meeting: DID Special Topic Call 16:08:21 scribe: manu 16:08:29 jonathan_holt: I have a few questions... 16:08:53 manu: Not many people here today, we might not have enough to have quorum. 16:09:21 jonathan_holt: I'd like to know more about how to do the CBOR stuff... I work mostly in Rust these days, saw the Docker stuff in the test suite, how do we develop to call into the CBOR tests. 16:09:24 scribe+ 16:09:46 manu: I refactored the test suite this weekend. I still don't understand what the docker stuff is about and need orie to explain 16:09:59 ... he wanted something self contained that you could run the entire test suite without having to install stuff on your local machine 16:10:04 ... but the docker thing runs the tests uite in a server 16:10:13 ... you till need to do the development as javascript nodejs 16:10:15 ... all the tests are nodejs 16:10:19 jonathan_holt: that's the challenge 16:10:39 ... we're trying to convert cbor into json which is the entire point of the transformation, we're relying on a library to make sure it's all in js and all json as a default 16:10:59 ... this idea of on demand in the test suite doc it's incomplete as far as how to.. on demand conformacne results form a remote server.. that's it 16:11:06 https://w3c.github.io/did-test-suite/#on-demand-report-results 16:11:15 manu: none of the tests do the remote server thing, it's all local development right now 16:11:30 ... the other challenge is because we doled sections out to different poeple, people deicded to test in different ways 16:11:36 ... some of the refactoring was trying to realign that stuff 16:11:44 ... markus has some opinions about how we should be testing the adm vs the serialisation 16:11:49 ... orie has strong opinions there as well 16:11:54 ... everyone is more or less on the same page there 16:12:06 ... fundamentally the people representing the ADM in nodejs as a javascript object 16:12:10 ... adn then there's a byte stream that's ar esult of that 16:12:22 ... when they produce they take the javascript data model and produce a byte stream and consumption is the opposite of that 16:12:32 ... take a cbor byte stream in and produce a javascripty abstract data model 16:12:37 ... that'st hew ay markus and charles have decided to go 16:12:54 ... orie is working on cbor tests but it is going to use a library to take a cbor serialisation off the wire and put it into the ADM to do other tests 16:12:59 ... I think we'll get to the point where everything is testable 16:13:03 ... we seem to be on a good trajectory 16:13:13 ... Ie xpect eople to continue to disagree with the way a subset of other people have decided to test the thing 16:13:18 ... that's what we have right now 16:13:19 ... it's chaotic and not perfect 16:13:32 ... I think will not result in objections of 'you didnt test x or y' 16:13:43 ... markus has done that a copule of times, said it's not acceptable thew ay we're testing, so we're going to mroe lengths to do that 16:13:47 ... a lot is to do with consumption adn production 16:13:51 ... everything else is straightforward 16:14:04 ... normative statements around consuming and producing ands ome of the did resolution stuff have required us to use different data structures to test the spec 16:14:19 ... I feel like we're using sledgehammer, we're going way overboard to make sure everything is testable, but it's goo dbecuase w're being super pedantic about it 16:14:33 jonathan_holt: if your'e relying on a library, testing the library's ability to perform those actions, not necessarily the specification 16:14:37 ... interesting 16:15:02 manu: my expectation is orie is going to choose a cbor library to convert the cbor stuff into a map which is what most cbor libraries do, then convert that into a javascript object ADM and feed that into the tests uite 16:15:12 jonathan_holt: overlap, eg. with the regular expressions in js, I did in CDDL 16:15:20 ... and the ABNF rules, which now the CDDL, carsten's library supports 16:15:37 ... I was looking to reduce some of this writing and in the ABNF rules, getting that succinct representation as a representatin of the ADM 16:15:41 ... markus point that its a syntax 16:15:46 ... are we testing the syntax of the did document? 16:15:57 ... logic in there you can't represent as branching logic in CDDL, but you can do pretty good 16:16:01 q+ 16:16:05 ... if it's a string heres' the syntax, if it's an array hre's the syntax 16:16:08 ... most are covered in CDDL 16:16:13 ... and ABNF for regular expressions is testable 16:16:24 manu: they are quadrupled osme of the tests, duplication of regexes 16:16:38 ... every single suite.. there's a suite for the major sections of the spec and in each suite its' assigned to a different developer 16:16:47 ... every developer created a utility library, which can be duplicated across suites 16:16:49 ... people have noticed that 16:16:52 ... be good to get this in a common library 16:17:00 present+ 16:17:10 ... it would be good but I don't htink necessary for us to get out of .. meaning they've done what they had to do to test the thigns they had to test 16:17:18 ... even with duplication of tthe regexes it's probably okay 16:17:22 ... it's not great but it's okay 16:17:24 ... to get us through CR 16:17:35 jonathan_holt: some of those are normative or referenced, here's the regex in the RFC, that's cool 16:17:39 ... the ABNF would be ideal 16:17:52 ... I don't think the production and consumption I'm worried about, either its a map or an object or an array, those are easy in and outs 16:17:53 present+ 16:18:00 ... where do you think the edge cases would be for the spec that we need thone in in? 16:18:01 present+ 16:18:12 manu: I don't know ifthere's really.. the edge cases are being discussed in issues on the test suite repo 16:18:27 ... the editors need to go back through and makes ure every test we have lines up with every normative stsatement, we haven't done that yet 16:18:32 ... but I believe we have close to 100% coverage 16:18:40 ... there are 5 or 6 statements in qustion right now out of 100 and something 16:18:42 ... we're close 16:18:50 ... I think there were less edge cases than we thought 16:18:58 ... but we haven't doen the due diligence to make sure we have tests for everything yet 16:19:01 ... I don't know is the short answer 16:19:09 ... I think we're good but I won't know until the editors go back through and nitpick 16:19:29 ... you might want to work with orie on the cbor stuff 16:19:36 ... I don't think there are cbor production and consumption tests yet 16:19:42 jonathan_holt: I see that, I see it's in the javascript todo 16:19:44 ... but it requires the library 16:19:54 ... I imported one but I started realising we're testing the library's ability to transform it 16:20:07 ... we can prove it, we can prove a library that's open source that produces and consumes in and out from json to cbor 16:20:08 ... okay.. 16:20:22 manu: two of those, but that's picking up another library, two independant impementations 16:20:29 jonathan_holt: the challenge is I need two two nodejs libraries to do? 16:20:32 manU: that would be the easiest way 16:20:49 ... you could actually call out to a c r rust program to the test suite, it adds complexity to the test suite, it would have to be two seaparte people to do it 16:20:53 ... I would talk with orie, I know he's got a plan 16:20:58 ... I don't think me getting involved is going to help 16:21:20 jonathan_holt: I can write a docker container as a server, you push cbor as a server, transform it to json and send it back, whatever json report you need to show, can be multiple different libraries, go, rust, nodejs 16:21:26 ... carsten's cbor cddl transformation 16:21:32 manu: check with orie, I don't think that's his mental model on the docke rstuff 16:21:36 jonathan_holt: thatw ould be the easiest way 16:21:42 ... otherwise we're limiting to one programming language 16:22:00 manu: I believe that's true right now.. the inputs and outputs to the test suite coudl be generated by anything, that's the key thing here 16:22:08 ... you can use anything to generate those things, and the tests are runa gaisnt the inputs and the outputs 16:22:15 ... you could use a native rust program to generate some did document 16:22:24 ... yout ake it and feed it into the test suite and the test suite tells you if its' a conformant did document 16:22:33 jonathan_holt: the test suite is in json, there's no consumption of cbor 16:22:35 manu: the input is bytes 16:22:40 ... for some the input is json 16:22:52 ... in the cbor case the way markus approached it is he hex encoded a string 16:23:02 ... you pull in a stream of bytes that you start with and do something with that byte buffer to conver to the adm 16:23:27 jonathan_holt: so if I hav a docker container that does it in Go, produces the cbor hexidecmial, pushes to the test suite server which uses the cbor nodejs library to transform the hexadecimal representation and test it? 16:23:41 manu: that last part I don't think .. where it pushes it to the server and does something, that's not how the test suite takes input 16:23:50 ... you literally shove it into a json file, but one of the entries is a cbor byte stream in the json document 16:23:58 ... let me try and find one of the tests 16:24:05 https://github.com/w3c/did-test-suite/tree/main/packages/did-core-test-server/suites/implementations 16:24:20 ... tha tdirectory has example did docs and a resolver example and a dereferencing example 16:24:32 ... your input for a cbor input for a did method thats encoded in cbor would look likethe did example one 16:24:53 ... but for the did document instead of being an object we're thinking changing it just to a text string, would be cbor bytes encoded as hex 16:24:57 ... it would be a bunch of hex bytes 16:25:01 .. make sense? 16:25:02 jonathan_holt: yep 16:25:05 manu: I think that's the plan 16:25:21 jonathan_holt: so in the json it'd be application/did+cbor and instead of an object it'd be a string and the string would be a hex representaiton of cbor? 16:25:23 manu: yes 16:25:28 jonathan_holt: rather than the object being a did document 16:25:40 ... right now its an object with the first key did document.. so its one level down.. it would be a string 16:25:43 ... all right 16:25:46 manu: that's my guess, chat with orie 16:25:49 jonathan_holt: easy enough 16:25:56 manu: any other questions? 16:26:07 jonathan_holt: not to put to waste any of the 1200 lines of CDDL.. 16:26:10 ... orie was interested 16:26:17 ... how to incorporate that? there is a nodejs library that does cddl 16:26:19 ... out of date 16:26:26 ... again the challenge is are we testing the library or our spec? 16:26:36 ... whether we have good coverage of the library to have assurance that it's sufficent 16:26:51 manu: to me.. yes if you want to try to employ that for cbor.. everything else already has regexes and tests 16:26:56 ... it's up to you.. chat with orie 16:27:03 ... everybody else has just used pure regex where they needed to 16:27:07 ... not as many as yo'd expect there to be 16:27:28 ... I don't think anyone is doing a full blown json schem aor cddl against the entire did doc because all of the normative statements require you to break the did doc down into pieces 16:27:33 jonathan_holt: cddl is modular like that 16:27:46 ... I did create one for the entire did doc, all the regexes for the did url syntax, but you can test individual pieces 16:27:50 https://github.com/w3c/did-test-suite/tree/main/packages/did-core-test-server/suites 16:27:50 manu: if you wanted to you could take a look at all the suites 16:28:02 ... each one of those is a different suite and in each one of those there's like a utils 16:28:08 https://github.com/w3c/did-test-suite/blob/main/packages/did-core-test-server/suites/utils.js#L14 16:28:19 ... that checks tos ee if something is valid base58 and its a regex 16:28:25 ... fi you wanted to replace that with cddl statements that would be fine 16:28:31 ... if you look at 16:28:48 https://github.com/w3c/did-test-suite/blob/main/packages/did-core-test-server/suites/did-resolution/utils.js#L30 16:28:57 ... is ascii string.. match against ar egex 16:29:01 ... that stuff is written and working 16:29:12 ... you'd have to talk with each person involved in each one of those suites and see if they're okay with converting it over 16:29:24 jonathan_holt: we have multiple different ways.. they all work in parallel and give green checkmarks.. more tests better 16:29:26 manu: yep 16:29:33 ... anything else? 16:29:39 jonathan_holt: I'm good 16:29:50 cel: I'm unsure of what I should be focussing on right now 16:29:55 manu: if you've got your tests in then that's it 16:30:09 ... the next thing we need to do is I still need to.. markus wanted me to rewrite the production tests, so I need to do that 16:30:12 ... once I do that that's everything 16:30:20 ... we will need to go through every single test to see if it lines up with the spec 16:30:25 ... fi you have your tests in cel you're done for the time being 16:30:33 ... other than if you have a did method to submit now is a good time to do that 16:30:41 ... noting that if I change the production tests it might change those implementation inputs 16:30:49 ... but shouldn't be hard to refactor it if you're just doing one or two did methods 16:30:53 ... if you're going to do ten i'd hold off.. 16:31:03 jonathan_holt: i'm curious ifyou've seen hpaths being submitted as a did method? 16:31:07 ... the state of new yorks covid pass 16:31:12 ... it's in production 16:31:22 ... their liberty pass is being deployed, the did method they used is hpass 16:31:23 ... it's IBM 16:31:25 ... not surprised 16:31:28 s/hpaths/hpass 16:31:34 ... not a conformant did method 16:31:43 https://github.com/IBM/hpass/blob/main/doc/did-spec.md 16:31:45 manu: it's in the registry and talking about digital health pass 16:32:02 jonathan_holt: I don't see it in the did spec registries 16:32:04 https://w3c.github.io/did-spec-registries/ 16:32:07 manu: it is 16:33:09 ... registries is not up to date on /TR/ 16:33:31 ... anything else? 16:33:37 ... thanks all! by 16:33:44 s/by/bye 16:34:51 rrsagent, draft minutes 16:34:51 I have made the request to generate https://www.w3.org/2021/04/08-did-topic-minutes.html manu 16:35:44 rrsagent, make logs public 16:36:27 Meeting: DID Special Topic Call (unofficial - no quorum) 16:36:36 Chair: None 16:36:42 rrsagent, make logs public 16:36:48 rrsagent, draft minutes 16:36:48 I have made the request to generate https://www.w3.org/2021/04/08-did-topic-minutes.html manu 16:39:10 present+ justin_r 16:39:15 present+ jonathan_holt 16:39:21 rrsagent, draft minutes 16:39:21 I have made the request to generate https://www.w3.org/2021/04/08-did-topic-minutes.html manu 19:02:59 Zakim has left #did-topic