09:01:08 #startmeeting CalDAV/CardDAV Contributor Meeting 09:01:08 Meeting started Mon Nov 7 09:01:08 2016 UTC. The chair is chriadam. Information about MeetBot at http://wiki.merproject.org/wiki/Meetings. 09:01:08 Useful Commands: #action #agreed #help #info #idea #link #topic. 09:01:16 #topic Introductions 09:01:34 Please introduce yourself, with #info Name / who you are :-) 09:01:45 #info Chris Adams, sailor working on sync domain amongst other things 09:03:21 #info Damien Caliste, community, trying to help when I can and learn new things 09:03:57 #info tadzik, community member 09:04:26 #info Bea Lam, sailor also working in sync domain sometimes, hi :) 09:04:45 will wait another 5 mins for folks to join, then we'll start on agenda :-) 09:05:29 #info Kimmo Lindholm, just following OOI 09:08:32 ok, thanks everyone, let's get started :-) 09:08:41 #topic Follow-up from last meeting 09:09:02 1) we have unit tests for the CardDAV plugin's server-response handling 09:09:19 2) we have unit tests for the CalDAV plugin's server-response handling 09:09:45 3) we now have test servers up and running within the Mer infra (e.g. http://8.1.tst.merproject.org/) 09:10:12 Big thanks to dr_gogeta86 and dcaliste as well as lbt and larstiq for their great work on the above items 09:10:38 #info David Greaves - mer guy and sailor (and late) 09:10:55 jlo_ agreed to help with triaging CalDAV and CardDAV issues on TJC, so looking forward to the influx of bug reports on mer bugzilla soon ;-) 09:11:07 hi lbt :-) 09:11:15 #topic Test servers in Mer infra - current status 09:11:36 chriadam: 8.1 is not the only available server 09:11:45 ah, missed the "e.g." 09:11:46 right 09:12:13 indeed, there should be several different versions of owncloud and also cozy 09:12:27 if you wish to help out with manual testing against these services please let me know 09:12:44 if you want to add more services, please play with it locally: clone https://git.merproject.org/dr_gogeta86/caldav-test-farm and "docker-compose up" 09:12:51 Instructions for adding new services are: https://sailfishos.org/wiki/CalDAV_and_CardDAV_Community_Contributions#Adding_A_New_Service 09:13:19 you can do that locally, and test with your own device, and then create a merge request on the git.merproject.org :-) 09:13:34 Going forward, we need to work on "provisioning" (e.g., restart services, with certain calendars + events pre-installed in the database), volunteers to investigate? 09:13:53 Other future steps include exposing a "reset to original provisioning state" button or REST API, but that's longer term goal. 09:14:00 For now, would be good if someone could help write scripts to do the cleanup+provisioning - which brings us to the next topic... 09:14:30 (but before I go there: larstiq/lbt: any comments on the server? aside from "please don't mess with it if you haven't spoken to me yet") 09:14:39 It can be possible to write something from NotebookSyncAgent::sendLocalChanges(). 09:15:10 I've did that in a test to send calendar data to a Radicale server from a read response. 09:15:18 chriadam: I'd say talk to us before starting any projects to make sure the approach is agreeable 09:15:25 It's quite simple, but it's compiled, not a script. 09:16:07 lbt: yep, makes sense - although people can try stuff on their own local docker env, and create an MR for something they think is worthwhile -- we can then review and give feedback / accept / reject based on our requirements etc 09:16:14 I'd assume ^ 09:16:56 dcaliste: this is a provisioning thing? cool - actually that's a really nice idea - let's discuss that in the next topic 09:16:56 yep - it's mainly if they're considering something new - eg any web UI or stuff 09:17:11 lbt: makes sense :-) 09:17:11 thanks 09:17:22 #topic Script to clean the server content via curl PROPFIND+DELETE 09:17:37 So this is part of "provisioning" topic - although the opposite here - resetting back to default 09:18:24 as dcaliste mentioned, perhaps we could have some "predefined" code which could be triggered to do the reset or some specific provisioning 09:18:39 #info William, community newbie. Sorry, I'm late. 09:18:39 dcaliste: any idea how to selectively trigger the appropriate provisioning code? env var, or ? 09:18:47 hi William_ :-) 09:19:04 Hi ... sorry to be late ... 09:19:17 dr_gogeta86: Hi :-) 09:19:21 Currently, I don't know, I'll play with the docker env when I have time. 09:19:31 dcaliste: yep, makes sense. 09:19:40 radicale is coming ... 09:20:01 The NotebookSyncAgent::sendLocalChanges() stuff can be used to add, modify or delete. 09:20:02 concurrently, it'd be good if someone could investigate a bash-script to do the same thing (e.g. PROPFIND+DELETE to delete everything, or PROPFIND+PUT to provision) 09:20:29 do we have any volunteers to investigate creating such a script? If not, I volunteer to do so. 09:21:14 will wait 15 seconds for another volunteer else I'll take that one :-) 09:21:43 chriadam, better destroy the env in order to achive clean room 09:21:50 pls trackdown this https://github.com/nextcloud/calendar/issues/63 09:22:32 dr_gogeta86: I agree, but until we can expose such a "switch" via REST API or web ui, I think we should try to unblock ourselves for manual testing as much as possible - and a "reset to clean state" script would go a long way toward that, I think 09:23:22 saw that webcal calendars one... let's cover that at the end of the meeting as that's a new topic 09:23:37 #action chriadam to investigate PROPFIND+DELETE script to reset server state 09:23:54 #action dcaliste to investigate "compiled" provisioning options via sendLocalChanges() code 09:24:12 #topic Manual testing - volunteers? 09:24:13 https://francescou.github.io/docker-compose-ui/api.html 09:24:23 just tailor it ... and you are done 09:24:26 Until I've written that propfind script, probably can't have manual testing starting yet, I guess 09:24:44 dr_gogeta86: ooh, interesting! lbt, thoughts? 09:25:03 needs securing ... 09:25:06 urgh 09:25:10 ok, longer-term thing then 09:25:13 and mer infra access limitations 09:25:23 maybe, for manual testing, a HowTo should be added (if not yet) to the wiki. 09:25:28 ok 09:25:33 my fault dcaliste 09:25:33 dcaliste: good point, I will do that 09:25:52 #action chriadam to add some notes about manual testing with the new Mer test instances, to the wiki 09:25:53 (back - doorbell) 09:26:33 ok, next topic: 09:26:40 #topic Any Volunteers For MER#1625 ? https://bugs.merproject.org/show_bug.cgi?id=1625 09:26:40 Mer bug 1625 in buteo-sync-plugin-caldav "CalDAV sync can fail due to attempted PUT to read-only shared calendar" [Task,New] 09:26:45 chriadam: thoughts : authentication :) 09:26:45 actually, dcaliste already has a PR for this 09:27:03 #1625 status: corrected, merge request available for review, https://git.merproject.org/mer-core/buteo-sync-plugin-caldav/merge_requests/8 09:27:04 lbt: indeed. let's leave that docker api stuff for later, and not schedule it for now. 09:27:10 +1 09:27:28 I've added a commit to ignore 403 answers. 09:27:39 And another one to rollback on 403 errors. 09:28:01 dcaliste: one thing is: how can we test this one? is there a way to add a read-only collection to the server, simply? 09:28:32 Well, for Radicale, I just tuned the access settings locally to test… 09:29:06 makes sense. maybe this possibility (of doing it programmatically as part of provisioning for a specific manual test) is something we can look at later on 09:29:16 Indeed, I even force 403 answers for specific UID from Radical, just to test ! 09:29:21 I will add a note about that to the bug report, but it shouldn't block us from getting that PR merged IMO 09:29:44 dcaliste, just open an issue on mer git with all your conf and i'll add it to docker compose 09:30:06 thanks! 09:30:09 next topic: 09:30:15 #topic Any Volunteers For MER#1689 ? https://bugs.merproject.org/show_bug.cgi?id=1689 09:30:15 Mer bug 1689 in buteo-sync-plugin-caldav "CalDAV plugin can raise CredentialsNeedUpdate notification due to Captive Portal" [Task,New] 09:30:15 dr_gogeta86: ok, I'll do this at the end of the week. 09:30:56 This is related to captive-portals. I don't have time to look into this one at the moment, unfortunately. Are there any volunteers for that? It's a bit tricky, as you'll need access to the wifi gateway which requires captive portal login 09:31:13 chriadam, just create a proxy with captive portal 09:31:15 :-D 09:31:19 there are many 09:31:33 dr_gogeta86: aha, good suggestion! thanks! 09:31:48 does that work with cookies after captive portal login? 09:31:58 dr_gogeta86: I'm dumb on network infrastructure, may you give some link ? 09:32:24 The harder part for me would be to reproduce the conditions of the captive portal. 09:32:30 not sure how QNetworkAccessManager's default cookie jar works with respect to proxies 09:32:39 After the correction, will look like for bug #1625. 09:32:39 Mer bug 1625 in buteo-sync-plugin-caldav "CalDAV sync can fail due to attempted PUT to read-only shared calendar" [Task,New] https://bugs.merproject.org/show_bug.cgi?id=1625 09:32:39 kimmoli, usually is the default gw who switch something at l2/l3 09:32:55 kimmoli, sometims 09:32:57 *sometimes 09:33:43 we tested that with maira, webview cookies needed to be stolen to a common jar. 09:33:56 cheap and dirty ... if you can't reach ipv4.jolla.com ... shutup! 09:34:03 This one is probably lower priority issue, but of course good if someone can investigate. but if no volunteers, no problem, can leave in backlog and we will try again next meeting. 09:34:12 chriadam, can involve hw 09:34:30 dr_gogeta86: unless that host happens to be down for whatever reason... and unnecessary traffic etc... but yes that would be one possible workaround 09:34:37 but is this the time to tackle all wpa-enterprise issues 09:34:56 i know we are talking about a service ... 09:35:09 wpa-enterprise as a topic is more broad, we should collect the requirements for that one more cohesively 09:35:09 called *DAV 09:35:18 not part of this meeting I think 09:35:33 but is something coming from other fronts 09:35:50 let's move on. of course if someone wants to take this task in the meantime they'r emore than welcome :-) 09:35:54 #topic Any Volunteers For MER#1569 ? https://bugs.merproject.org/show_bug.cgi?id=1569 09:35:54 Mer bug 1569 in buteo-sync-plugin-caldav "CalDAV sync plugin doesn't handle shared event occurrences correctly" [Task,New] 09:36:30 This one is where a parent series is in one calendar (A), and it has an exception occurrence which is in calendar A but also shared to calendar B 09:36:50 in this case, we handle it wrongly, since when we attempt to sync calendar B, we find an exception occurrence with no "parent" series event 09:36:59 * lbt wonders whether the bugs should require a test-case and acceptance criteria? 09:37:15 chriadam: "exception occurence" is something like, "every week except this week"? 09:37:30 I need to read documentation about shared calendar to understand the issue properly. After that I can investigate. 09:37:39 If noone else volunteer. 09:37:44 larstiq: not necessarily, it's just a particular instance of the series with some information different. e.g., some weekly series event is 6pm, but one instance is 7pm 09:37:44 *no one 09:38:04 chriadam: right 09:38:22 dcaliste: that would be great! no rush, this is an old bug and we need to get it right, because lots of opportunity for conflicts/lost updates if we do it wrong ;-) 09:38:37 #action dcaliste to investigate MER#1569 09:38:38 thanks 09:38:41 ok, moving on: 09:38:42 I understand and I agree. 09:38:52 #topic Any Volunteers For MER#1568 ? https://bugs.merproject.org/show_bug.cgi?id=1568 09:38:52 Mer bug 1568 in nemo-qml-plugin-calendar "Allow import of VERSION:1.0 vCalendar files" [Task,New] 09:39:05 This is somewhat related to MER#1623 which dcaliste previously investigated 09:39:22 I will volunteer to take this one, if no one else wants to volunteer :-) 09:39:53 Yes, the correction imho should be in reader.cpp to add a fallback to vcalendar parser in case ical parser report issues. 09:40:16 dcaliste: great, makes sense, thanks 09:40:27 ok, waiting 10 seconds for volunteers else I will take this one 09:40:35 As you prefer Chriadam, you or me, depends if you want to concentrate on something else. 09:41:07 dcaliste: I don't mind taking this one, you took the shared occurrence one :-) 09:41:19 #action chriadam to investigate MER#1568 09:41:27 ok, fine with me, thanks. 09:41:32 #topic Any Volunteers To Te MER#1647 ? https://bugs.merproject.org/show_bug.cgi?id=1647 09:41:32 Mer bug 1647 in buteo-sync-plugin-caldav "CalDAV sync fails due to UID specified outside of VEVENT definition" [Task,New] 09:41:36 actually William_ has updated this one 09:41:50 and once I have merged dcaliste's caldav unit testing PR, William_ can make his PR 09:41:51 Yes, this should be fixed 09:41:54 since he has a unit test for this case 09:42:01 exactly 09:42:14 thanks for doing that William_, I will ping you once I've merged that unit test one - should be tomorrow. 09:42:24 great! 09:43:11 William_: please feel free to look through the backlog at: https://bugs.merproject.org/buglist.cgi?quicksearch=caldav or https://bugs.merproject.org/buglist.cgi?quicksearch=carddav if you want to investigate something 09:43:16 new 09:43:20 ok, moving on: 09:43:26 #topic Any Other Business? 09:43:35 that was the last topic I had in the agenda 09:43:55 I know that there was an issue with WebCal (Apple-specific extension to CalDAV to allow subscriptions) 09:44:10 chriadam: testing in general? 09:44:14 #1646 status: got material to reproduce the bug locally, thanks to Benjamin sending the raw server response to me, still under investigation 09:44:41 great! 09:45:03 lbt: I haven't yet had time to really start testing against the instances in the Mer infra yet 09:45:14 I'm hoping to get a chance this week 09:45:33 oh, I forgot to mention: 09:45:54 elfio has started writing a bash script to perform a simple "smoke test" / system test 09:46:01 chriadam: I was thinking about making the test suites public 09:46:14 lbt: ah, the manual test cases? 09:46:16 and a way to extend them - eg to cover #1568 etc 09:46:19 yes 09:46:32 lbt: good point - I will have to speak to jwalden about that 09:46:33 and making sure that bugs like those mentioned actually get tests too 09:46:56 eg what's the acceptance criteria for a patch to solve #1569 09:47:06 long term, I'm hoping that elfio's script can form the basis for these sorts of test cases going forward (i.e. where it cannot be unit tested, but requires system test style testing) 09:47:33 lbt: that's a very good questoin 09:47:39 * lbt thinks about fuzzing a calendar :) 09:48:16 we should try to codify our "definition of done" with respect to this work. I don't want to reduce our agility (or raise the bar for contributions too high) but definitely we want fixes to include unit tests or system tests where possible. 09:48:54 About TJC triaging, I've added comments in some questions tagged with 'calDAV' to ask users their log when possible. Most of the recent questions 09:48:55 are related to bug #1646 IMHO but not sure. 09:48:55 I'd be OK if a patch can't be accepted until there's a test 09:48:56 Mer bug 1646 in buteo-sync-plugin-caldav "CalDAV sync fails due to annually-recurring event" [Task,New] https://bugs.merproject.org/show_bug.cgi?id=1646 09:49:10 but it's ok to split the task to allow someone else to do the test bit 09:49:37 lbt: some leeway is needed for hard to test things 09:49:41 I will come up with a set of "manual tests" which must pass (or be modified if they enforce incorrec tbehaviour) for changes to be accepted. but that will take some time for me to formulate properly. in the meantime I think we should just do what testing seems appropriate. 09:49:46 larstiq: true 09:50:12 #action chriadam to formulate a set of manual-test-cases to be used as acceptance-tests 09:50:16 chriadam: yes - this is more about saying we need to do it - and also allows contribution in this area 09:50:29 I can' tgive an ETA on when I'll finish that. and yes, contributions would definitely be appreciated 09:50:30 it can allow non-coders to get in on it 09:50:43 hopefully elfio's work there will also greatly help, long term, in automating these manual tests 09:51:08 but yes, if non-programmers can help with the definition (and performing!) a series of manual tests, that would be greatly appreciated. 09:51:14 something to discuss more fully next time I think... 09:51:20 next meeting* 09:51:23 chriadam, that's good step, having a set of tests to be always checked at each MR. 09:51:45 oh, that reminds me: is 0900 UTC still good for everyone, or does DST make that a bad time now? 09:52:09 That particular time is still fine with me. 09:52:17 good for me 09:52:59 wfm if my calendar reminder goes off :) 09:53:09 if you aren't at this meeting because this time is bad for you, please email me :-D 09:53:21 if you're reading this from the meeting log :-) 09:54:12 otherwise let's plan to have next meeting on Monday 5th December at 0900 UTC (hopefully that doesn't clash with Sailfish OS Community meeting? I will double check and send email to mailing list anyway) 09:54:22 ok, anything else to cover? 09:54:25 May I mention these two TJC issues ? 09:54:41 - https://together.jolla.com/question/150401/zombie-appointments-return-from-the-undead/, related to Google sync and sociald 09:54:41 - https://together.jolla.com/question/142197/caldav-calendars-get-lost-when-the-sync-server-isnt-available/ 09:54:56 we definitely need to address the second one 09:55:08 that one was raised during a community webinar recently also 09:55:14 I forgot to create a MER# about that 09:55:17 chriadam, should I create MER bug for them so we can discuss them next meeting ? 09:55:23 dcaliste: yes please 09:55:26 let me check the first one 09:56:12 maybe topic for next time: does mer bz need anything changing to help this kind of work? 09:56:46 lbt: for me, mer bz is fine as-is. dcaliste do you disagree? 09:57:00 dcaliste: I think I fixed that zombie event issue 09:57:03 with commit... 09:57:23 good - no desire to tinker with working things :) 09:57:26 its fine with me, tagging is enough to follow what happen on bz. 09:57:54 https://git.merproject.org/mer-core/buteo-sync-plugin-caldav/commit/57396878ee5c202abc70f8686202ec017e56cc2b 09:58:13 but more investigation/testing may be required. 09:59:00 and https://git.merproject.org/mer-core/buteo-sync-plugins-social/commit/e3e1715090e1cd1741cb70d9ae8535f3690764da 09:59:04 for sociald/google 09:59:42 I will check that TJC thread tomorrow 09:59:45 and comment on it 09:59:56 thanks for pointing out 09:59:58 chriadam: ok, thanks for zombie issue. 10:00:05 *for the 10:00:15 ok, if there's nothing else, will end the meeting in 5... 10:00:25 4... 10:00:32 3... 10:00:41 2... 10:00:46 1... 10:00:49 #endmeeting