06:27:14 RRSAgent has joined #socialweb-test-suite 06:27:18 logging to https://www.w3.org/2023/09/13-socialweb-test-suite-irc 06:27:18 RRSAgent, do not leave 06:27:18 RRSAgent, make logs public 06:27:19 Meeting: SocialWeb Test suite discussion 06:27:19 Chair: Dmitri Zagidulin, nightpool, James Gallagher 06:27:19 Agenda: https://github.com/w3c/tpac2023-breakouts/issues/36 06:27:21 clear agenda 06:27:23 agenda+ Pick a scribe 06:27:25 agenda+ Reminders: code of conduct, health policies, recorded session policy 06:27:27 agenda+ Goal of this session 06:27:29 agenda+ Discussion 06:27:31 agenda+ Next steps / where discussion continues 06:27:41 Ian has left #socialweb-test-suite 07:03:18 mro has joined #socialweb-test-suite 07:05:34 Ian has joined #socialweb-test-suite 07:05:41 Ian has left #socialweb-test-suite 07:08:48 Ian has joined #socialweb-test-suite 07:08:51 Ian has left #socialweb-test-suite 10:04:14 mro has joined #socialweb-test-suite 10:07:00 Hi allo, are you already preparing? In 10 minutes the meeting is supposed to start, right? https://www.w3.org/events/meetings/919c2a7d-e925-4249-8a29-09001c15b48a/ 10:13:37 tantek has joined #socialweb-test-suite 10:14:06 Hi tantek, is there a way to see the presented material other than zoom? 10:15:10 eprodrom has joined #socialweb-test-suite 10:15:13 sandro_ has joined #socialweb-test-suite 10:15:18 Hello! 10:15:55 pchampin has joined #socialweb-test-suite 10:16:27 btsavage has joined #socialweb-test-suite 10:16:31 present+ 10:16:40 michielbdejong_ has joined #socialweb-test-suite 10:16:43 hi 10:16:53 present+ 10:16:58 pfefferle has joined #socialweb-test-suite 10:17:14 present+ 10:17:37 present+ 10:17:55 dmitriz has joined #socialweb-test-suite 10:17:57 RRSAgent, make minutes 10:17:59 I have made the request to generate https://www.w3.org/2023/09/13-socialweb-test-suite-minutes.html pchampin 10:18:07 present+ 10:18:39 scribe: michielbdejong_ 10:18:47 mro: are you here? 10:18:54 yes 10:19:05 :thumbsup: 10:19:09 Dimitri: welcome everyone to the test suite special topic breakout session 10:19:15 Hi eprodrom 10:19:17 we wanted to continue our series of calles 10:19:29 we started a few weeks ago, where we discussed the general challenges 10:19:43 in developing a test suite for the fediverse, specifically activity pub 10:19:50 discussing various test suite efforts 10:20:00 demos of in-progress test suites and tools 10:20:06 today let's continue with a similar pattern 10:20:06 present+ 10:20:10 give updates on tests in progress 10:20:43 any sort of demos 10:20:43 and if there's time, there will be talk about starting test suites on other protocols aside from activitypub 10:22:01 and schedule the next test suite call 10:22:01 q+ 10:22:01 any questions already? 10:22:01 ack eprodrom 10:22:01 Evan: yes, i'll do the queueing thing and add myself 10:22:01 sandro has joined #socialweb-test-suite 10:22:01 I thiknk our previous discussion was just about the AP federation protocol between implementations 10:22:01 present+ 10:22:01 yes, one very general one: what are the concrete goals and audiences for the test suites discussed? 10:22:01 i think we have two other important specifications that we may want to include test suites for 10:22:01 parsign and producing 10:22:01 and AP api (client - server) 10:22:44 s/parsign/parsing 10:22:44 https://github.com/swicg/meetings/tree/main/2023-08-11 10:22:44 Dimitri: and here's the link to the previous meeting 10:22:44 s/Dimitri/Dmitri 10:23:00 Dmitri: that's a great topic to begin with 10:23:23 focus on the AP test suite. specifically the aim is withasmuch hands-on command-line or human participation as is required 10:23:33 but the general goal is to automate the process as much as possible 10:23:41 I have made the request to generate https://www.w3.org/2023/09/13-socialweb-test-suite-minutes.html sandro 10:24:50 to be able to point the test suite to one or two live instances 10:24:50 present+ 10:24:50 and check all the musts and the must-nots and should-nots from the AP spec 10:24:50 to that end, several projects started on listing the requirements in a machine readable format 10:24:50 and publishing those to a git repo 10:24:50 on top of which, classical unit tests in javascript or python or go can be guilt 10:24:50 s/guilt/built 10:25:26 https://socialweb.coop/activitypub/behaviors/ 10:25:35 Dmitri: so one such repo of behaviours was done by Ben 10:25:40 Cool domain! 10:25:44 Are the tests supposed to be run by a independant 3rd party or by each individual self-hosted? 10:26:26 q? 10:26:26 That link is a rendered list of those behaviours, but there will be a git repo for the raw objects as well 10:27:00 q+ 10:27:00 q+ to suggest ActivityPub S2S equivalent of https://webmention.rocks/ 10:27:00 Another one was done by ... 10:27:00 Evan: before we move on, i would like to ask about the behaviours implementation 10:27:01 my main question is, is this system complete? 10:27:17 is there additional work that needs to be done on the socialweb.... behaviours list 10:27:39 Dmitri: next step is the shapes, we welcome help on that front 10:27:47 Must is complete, should should be added 10:27:52 Evan: are there mechanisms for this? 10:27:55 Dmitri: yes 10:28:33 I'll show you some of the .. 10:28:33 writing the actual unit tests in javascript 10:28:36 we decided to go with the native test runner 10:28:43 we're using json objects to wrap the test suite 10:28:47 here's an example 10:29:01 https://codeberg.org/socialweb.coop/socialweb.coop/src/branch/main/activitypub/testing/src/actor.test.mjs 10:29:21 404 10:29:28 Dmitri: those are nodejs test runners that wrap some of the behaviours 10:29:43 Dmitri: ah, it was moved, one moment 10:30:27 q+ 10:31:24 sorry, this is the public list of behaviors: https://codeberg.org/socialweb.coop/activitypub-behaviors/src/branch/main/behaviors 10:31:24 Evan: this on codeberg will be roughly the structure that you're talking about 10:31:24 Dmitri: yes, that's the idea 10:31:29 This is the open list of required behaviours. the readme describes the format 10:31:42 I see yaml. 10:31:48 in terms of an example of it being used by the test suite ... 10:31:57 that ought to provide a starting point 10:31:59 q+ 10:32:01 q? 10:32:05 ack eprodrom 10:33:00 ack btsavage 10:33:00 Ben from Meta: I'm not how to use it 10:33:00 I guess I need ssl + subdomain to run - is that described somewhere? 10:34:03 Dmitri: we use the yaml files as a source code from which we can generate JSON objects, JSON schema, 10:34:03 graph insert statements, JSON-LD 10:34:03 q+ 10:34:03 It's a general purpose syntax 10:34:03 but for the test suite we compile the yaml into JSON objects 10:34:03 and just use the attributes like described in the ... 10:34:03 is the process documented? 10:34:03 Ben: i'm not sure how to use the yaml files to test my implementation 10:34:09 Evan: let me illustrate my own interpretation 10:34:18 this behaviours repo is not a test suitee 10:34:23 s/suitee/suite 10:34:35 it is a list of requirements that a test suite would use 10:34:45 Tantek: it's a step towards creating a test suite 10:34:51 is there such a suite? 10:35:22 q+ 10:35:22 Evan: correct. because it gives a unique id to each requirement, it lets us implement multiple test suites and still compare apples to apples 10:35:39 and point to the correct way things should work according to the spec 10:35:44 Dmitri: yes, the idea is to 1) 10:35:58 allow these objects to be used in the test naming and the output 10:36:03 by_caballero has joined #socialweb-test-suite 10:36:08 but the idea is to give these stable identifiers 10:36:21 q+ to mention the dependency-encoding of the YAML files 10:36:21 and publish the outcomes of various test suites 10:36:26 so our next step in terms of that is 10:36:42 giving each of these behaviours (...) so that testers and implementers can ... 10:36:50 and this needs multiple inboxes 10:36:56 s/(...)/inboxes 10:37:05 make them their own topics or even AP actors 10:37:12 q? 10:37:16 q+ 10:37:50 q- 10:37:50 so that we can help coordinate with other testers 10:37:50 q+ 10:37:50 Dmitri: any things i've missed? 10:37:50 Tantek: i want to first comment and then make a suggestion 10:37:52 first of all thank you Dmitri, this list is key to developing a good test suite 10:38:05 it's a common pattern, step 1, extract the testable assertions into a discrete list 10:38:15 step 2 create an actual test runner 10:38:22 ack tantek 10:38:22 tantek, you wanted to suggest ActivityPub S2S equivalent of https://webmention.rocks/ 10:38:29 dmitriz: thanks! 10:38:58 Tantek: the second point was the AP S2S equivalent of webmention.rocks 10:39:08 ... some automated way to do such tests 10:39:38 ... we've seen great success that once implementations pass the test suite, it should Just Work (tm) with other implementations 10:40:01 ... speaking from a Mozilla perspective as well, also for mozilla.social we want to help this drive 10:40:07 ... and help with the goal setting 10:40:18 ... as a client of the test suite, let us know how we can help with that 10:40:32 q? 10:40:41 ack eprodrom 10:40:41 Dmitri: that link you mentioned webmention.rocks is exactly the kind of thing we're aiming for. that's our goal yes. 10:40:59 Evan: i'm going to put you on the spot Dmitri, are you building one? 10:41:15 Dmitri: yes, we are, i thought it was public 10:41:25 Dmitri: actually i'm going to put Juan on the spot for that :) 10:41:55 Juan: the two priorities are: test suite for CI, for feature branches etc, most urgent is supporting people who want to add support for something 10:42:03 ... so they can test both trunk and their branch 10:42:17 ... the other goal is buy-in from other people working on other test suites 10:42:37 ... it's almost more important we get the attention from other people doing other form factors etc 10:43:19 ... we hope for the end of the year to have semantic anchors linking with the Gherkin work and then we have the apples to apples comparison 10:43:48 this is Helge's Gherkin behaviors repository, that he demo'd during the previous testing call: https://codeberg.org/helge/fediverse-features. And I believe Helge expressed interest in collaborating with the behaviors list from the spec 10:43:50 ... how you compare architectures, p2p vs client-server, they will have different test runners, but they can agree on the requirements identifiers 10:44:00 Evan: so i can run this and see the output? 10:44:08 Juan: ideally, yes 10:44:21 ack eprodrom 10:44:21 Juan: and i was on the queue for another thing 10:44:37 ... to say the yaml files include one counter-intuitive key-value pair 10:44:53 ... they depend on each other; if you do this, then that should happen etc 10:45:05 ... so if you're comparing a P2P that does only one of the code paths of a dependency 10:45:59 ... then the idea was to have a little bit of structure to say "I'm ignoring this code path" - we were assuming preventing that people down the road would find fault with 10:46:11 q? 10:46:16 ack by_ 10:46:16 by_caballero, you wanted to mention the dependency-encoding of the YAML files 10:46:29 Ben: it occurs to me it would be extremely useful to have somthing like web platform tests 10:46:33 q+ 10:46:36 ack btsavage 10:46:39 ... is that something that we're trying to work towards? 10:46:55 Dmitri: yes and we welcome contributions but that's the goal 10:47:06 Tantek: a manual integration report would be a good start 10:47:26 ... I think it's OK to have a more modest goal of manual implementation reports 10:47:37 https://webmention.net/implementation-reports/summary/ 10:47:42 ... for webmention there is this giant table 10:48:30 ... light green is like barely passing, dark green is like 'oh yeah' 10:48:45 ... not every implementaiton needs to do every feature 10:48:45 q? 10:48:51 q+ 10:48:56 ... yellow would be 'oh only one implementation did that' 10:49:25 ack tantek 10:49:35 https://webmention.net/implementation-reports/ 10:49:44 Dmitri: is there a repo link? 10:49:47 Tantek: yes 10:49:49 https://github.com/w3c/webmention/tree/master/implementation-reports 10:50:09 ... and if that structure works for you great, if you have a better structure, also great 10:50:19 ... as much as we can help point out building blocks, I'm here for you 10:50:46 Ben: I'm looking for advice, if i was today to write unit tests, to see if Threads passes this list of behaviours 10:51:03 ... how have others done this in the past? have sample behaviours and then manually craft the unit tests? 10:51:03 q? 10:51:12 q+ 10:51:16 Dmitri: great question, the answer is going to be all of the above 10:51:43 ... even if it works between two or more servers, we're going to have to have example data, example create and subscribe messages, follow, unfollow, etc 10:51:57 ... so you're absolutely right that the behaviours themselves are not enough 10:52:09 Ben: yes, a repo of mock data would be super awesome 10:52:19 Dmitri: yes, and we would love to host that in the same repo 10:52:28 q+ 10:52:40 ... where should we host it? on the social CG github space? 10:52:49 ack btsavage 10:52:52 ... it is git so it doesn't matter that much in the end 10:53:02 ack eprodrom 10:53:07 pfefferle: you mean https://fedidevs.org/category/reference 10:53:24 Evan: yeah, i think, i believe social web coop are the only ones so far implementing a test suite with this 10:53:39 ... to answer Ben's question, the way people is do it now is just go through the spec 10:53:39 yes 10:54:00 ... ideally set up locally, but you can also set up test users on public instances and send messages from both sides 10:54:13 q+ 10:54:28 ... from your own implementation to Mastodon and back for instance. a very manual process. saying this a someone who gets test follows sometimes :) 10:54:54 ack pfef 10:55:00 Pfefferle: I just wanted to mention two projects that ... dev.org 10:55:08 s/... dev.org/https://fedidevs.org/ 10:55:16 ... is kind of a project that collects sample data 10:55:21 s|https:|https://fedidevs.org/ 10:55:35 ... how actors look, etc. you can at least use that 10:55:36 https://fedidevs.org/reference/actor/ <-- mock data! 10:55:38 https://fedidevs.org/ 10:55:50 RRSAgent, make minutes 10:55:52 I have made the request to generate https://www.w3.org/2023/09/13-socialweb-test-suite-minutes.html pchampin 10:55:58 ... and there is an nlnet project that tries to fund an AP test suite. Started by Johannes Ernst 10:56:15 ... but maybe it is a good idea to fund some of the existing projects 10:56:18 q? 10:56:18 q+ 10:56:20 q+ 10:56:22 q- 10:56:28 q+ 10:56:30 ack bsav 10:56:41 Ben: so i'm wondering if it would be useful for implementers to set up some kind of test user affordance 10:56:52 q+ to suggest a wiki page inside w3.org/wiki/SocialCG/ that at least keeps a flat list of current AP test suite sites/efforts (like we are collecting here) 10:56:53 ... so you can ask please create test user so and so 10:56:54 q+ to speak to redundancy and testing endpoint/testing mode 10:57:10 ... without needing to send out any sort of test follows 10:57:22 Dmitri: one answer is "yes, let's!" 10:57:23 s|https://fedidevs.org///fedidevs.org|https://fedidevs.org/ 10:57:34 ... another is that it's creating a small parallel spec, where we're testing the test affordance 10:57:53 ... but some instance have signup requirements and manual approval 10:57:59 I found some projects to refuse name a sample instance to create accounts at. Problem. 10:57:59 ack btsavage 10:58:35 Ben: then you have n^2 parents. but theoretically you could do just n tests if there would be an oracle perfect counterparty instance to test against 10:58:56 s/parents/combinations of implementations 10:59:21 Evan: i think the term of art is a "reference implementation" :) 10:59:26 I wrote things down in a "Federation Fairness" note with a more cultural approach. 10:59:40 Dmitri: that term has been incredibly contentious, its' such a political statement 10:59:41 q+ 10:59:42 +1 dmitriz "reference implementation" is a very contentious phrase 11:00:06 Tantek: the whole test models thing is very much about how stuff is bootstrapped 11:00:32 ... Jeremy Keith (?) have this post where they say 'you can test your replies implementation against this post' 11:00:43 ... even before there is a formal test suite 11:00:44 haha yeah, so, it IS really useful! we'll just have to name it carefully "This thing over here is not a reference implementation we swear" <- has a nice ring to it. 11:01:04 ... and people ask in chat channels people ask 'can someone send me a test follow?' it shows health of the community 11:01:23 ... let's shy away from reference implementation. but a test suite server should also be open source 11:01:37 q? 11:01:41 .. rather than calling it a reference implementation 11:01:48 ack tantek 11:01:48 tantek, you wanted to suggest a wiki page inside w3.org/wiki/SocialCG/ that at least keeps a flat list of current AP test suite sites/efforts (like we are collecting here) 11:02:01 "test suite server" <- that's a great name too, yeah! 11:02:13 Tantek: there are a lot of different efforts for test suites, some are disconnected 11:02:33 https://socialhub.activitypub.rocks/t/wiki-collected-feedback-on-interop-testing-methods-living-docs-and-specs/3538 11:02:34 ... and that's ok but i was going to suggest we add a page on the wiki, listing all test suites we know about 11:02:39 ^ Here's the current linklist on socialhub 11:02:42 q? 11:02:42 ... for others who want to start yet another one 11:02:55 ... and they can hopefully get in contact with each other 11:03:07 ... it almost sounds like a coordination channel more than an interest challenge 11:03:28 ack eprodrom 11:03:30 ... and people working on different pieces and then putting them together.. I'm hinting and signing you up for that, Evan 11:03:36 Dmitri: yes 11:03:37 https://github.com/w3c/activitypub/issues/387 11:03:57 Dmitri: there is very exhaustive collation of testing efforst 11:04:03 q? 11:04:09 ... but this wiki page could be more summarised 11:04:33 Tantek: yes, let's not divert existing conversation, but at least link to it to make itmore discoverable 11:04:43 s/itmore/it more 11:04:49 Evan: first, i created an issue to remind myself of the task of creating a testing page 11:04:58 ... and also link to any testing implementations 11:05:36 ... i think the question i wanted to ask is - we have a number of automated testing projects happening here. do we want to have an official "Social CG test suite" that is the single or primary way to put our efforts together 11:05:48 ... do we have momentum to say the CG runs and maintains a test suite? 11:06:01 I support an official test suite 11:06:02 ... and if so how do we get there 11:06:02 +1 if we have a volunteer to lead it and coordinate 11:06:06 q? 11:06:25 Juan: I was on the queue for something similar 11:06:49 ... after Johannes talked about his nlnet plan, i started a blogpost. it's not ready to share yet buty 11:06:53 s/buty/but 11:07:03 if/when we have a Social Web WG, we'd like want that as well, a Social WG test suite, which could live at a different domain (e.g. like webmention.rocks) but would still be an official effort from the group 11:07:34 s/like want/likely want 11:07:34 ... but i was thinking of a framework for working from the spec down to the apis, and Johannes was talking about the opposite direction 11:07:36 ... one of the trickier thing for the social CG is like framing it in a non-zero way 11:08:01 q+ 11:08:05 ... directing people based on if your primary goal is 100% interoperability, this might be the test suite for you 11:08:18 ... there can be a layer inbetween like architectural decision making 11:09:03 ... i keep chewing on that, that discussion about the python test runner that tests fediverse servers. it is not agnostic to client-server vs P2P 11:09:17 ... you don't want to pick between your children 11:09:48 ... all this to say that i'm thinking about that as a question to answer before we take a decision about the official CG test suite 11:09:54 Dmitri: i'll summarize 11:10:03 q? 11:10:06 q- 11:10:07 ack by_ 11:10:07 scribe+ 11:10:26 michielbdejong_: about reference implementation / opensourcetest server; 11:10:46 ... we have a similar thing, opencloud XXX 11:11:00 ... for all implementation we tell the server to do this or that 11:11:34 ... or the other way around, tell the OCM to go to the API to test 11:11:54 +1 michiel, sounds like another vote for the usefulness of an "oracle" like test server 11:12:10 q? 11:12:14 ack michiel 11:12:19 ... the two directions are possible; use of stub that just *look* like they implement the protocol 11:12:29 ack epr 11:12:31 q- 11:12:33 ... that's a way to avoid a "reference implementation" 11:12:40 scribe- 11:12:46 q? 11:12:47 Evan: i lost my thought 11:13:03 ack eprodrom 11:13:03 ... oh, my main item was to say we don't maintain the Mastodon API :) 11:13:33 ... i don't think it's necessary for us to test that but we do have AP API and ... S2S and activity streams 11:13:45 ... yes my next question is about funding 11:14:02 ... we had some discussion about two different systems where raised some cons 11:14:11 ... does it make sense for a CG to sollicit funding from other sources 11:14:12 q+ 11:14:24 ... but is there a way we can get this test suite aligned 11:14:49 opencollective.com/independent-solid-test-suite 11:15:04 q+ to speak to funding 11:15:43 scribe+ 11:15:43 michielbdejong_: for Solid, we did that in parallel, independant from the CG 11:15:47 Dmitri: that's a great topic to take to the mailing list 11:15:55 Juan: could someone commit to coordinating? 11:16:22 ... CC me on all the emails 11:16:48 ... i offerd this informally in a previous call. i am already funded for this volunteer work if coordinating testing is an activity that we want to happen 11:17:04 ... that money is specifically for coordinating volunteer efforts 11:17:15 ... not product testing, it has to be anchored in the spec 11:17:23 ... laser focused 11:17:38 ack by_c 11:17:38 by_caballero, you wanted to speak to funding 11:17:42 Ben: i am happy to try to scale up funding 11:17:50 ack btsa 11:17:55 ... to support test suite if the CG could provide us a recommended thing to fund 11:18:02 ... that would be super useful 11:18:03 q+ 11:18:06 q+ 11:18:12 Dmitri: thank you 11:18:32 ... let's take this discussion back to async 11:21:24 RRSAgent, make minutes 11:21:25 I have made the request to generate https://www.w3.org/2023/09/13-socialweb-test-suite-minutes.html pchampin 11:22:11 ack tantek 11:22:18 ack eprodrom 11:23:22 PROPOSED: create a Testing Task Force within the SocialCG with by_caballero as Task Force Lead 11:23:25 +1 to that (Testing task force) 11:23:26 +1 11:23:31 +1 11:23:33 +1 11:23:42 +1 danke! 11:23:46 +1 11:23:46 +1 11:23:50 scribe- 11:24:07 RESOLVED: create a Testing Task Force within the SocialCG with by_caballero as Task Force Lead 11:24:12 RRSAgent, make minutes 11:24:13 I have made the request to generate https://www.w3.org/2023/09/13-socialweb-test-suite-minutes.html pchampin 11:24:19 And let's celebrate the 256th day of the year today :) https://en.wikipedia.org/wiki/Programmer%27s_Day 11:24:25 lol