09:00:47 #startmeeting Sailfish OS CalDAV/CardDAV contributors meeting 11/12/2017 09:00:47 Meeting started Mon Dec 11 09:00:47 2017 UTC. The chair is chriadam_. Information about MeetBot at http://wiki.merproject.org/wiki/Meetings. 09:00:47 Useful Commands: #action #agreed #help #info #idea #link #topic. 09:01:07 The agenda can be found at #link https://sailfishos.org/wiki/CalDAV_and_CardDAV_Community_Contributions#11.2F12.2F2017_Meeting 09:01:24 Again, apologies for having to postpone this meeting last week at last minute, something came up. 09:01:39 Also, I apologise if I disconnect halfway through the meeting, if that happens please wait a couple of minutes for me to come back online. 09:02:05 My internet connection is pretty darn flaky as our ISP has been having ongoing infrastructure issues for the last month... 09:02:13 #topic Introductions 09:02:22 Please introduce yourself with #info name/nick :-) 09:02:30 #info Chris Adams, developer at Jolla 09:02:52 #info Damien Caliste, community 09:02:55 #info Leif-Jöran Olsson, community 09:03:47 abranson: are you online? 09:05:21 we'll wait another 5 mins for people in case they're late. in particular, abranson knows the OBS stuff which will be the main topic of today's meeting, I guess. 09:07:32 yes sorry - am here! 09:07:59 great! 09:08:02 #info Andrew Branson, dev @ Jolla 09:08:05 welcome everyone ;-) 09:08:14 let's start on the agenda: 09:08:20 #topic Follow-up Agenda Items From Last Meeting 09:08:43 1) I briefly investigated mer1822 and found the likely culprit, but have been busy with crypto stuff so haven't had a chance to reproduce / fix the issue 09:08:51 I will hopefully get the time to do so before christmas 09:09:11 2) I merged one of dcaliste's caldav patches, but that made 2 other ones (30 and 32) conflict / need rebase 09:09:29 I'm doing the rebase now… 09:09:36 Will be ready in one hour. 09:09:40 3) I checked dcaliste's buteo-syncfw PRs, one of them causes public API break which I'll need to grep our sources ot see if it that might cause some issue 09:09:47 dcaliste: no rush, huge thanks 09:10:16 Great to hear news on 1822 ;) 09:10:34 were there any other outstanding action items? there's an outstanding carddav PR from a community member which fixes a bug, however it doesn't have a unit test - I don't know if the community member has the time to add that one or not... 09:11:01 where were we at with the TODO stuff? IIRC the nemo plugin PR had a couple of issues but was mostly ok 09:11:03 For 3), you can skip the API break by removing the last commit. 09:11:16 I forgot to check mkcal/kcalcore PRs... 09:11:17 It's not mandatory to fix the issue. 09:11:25 dcaliste: great, that'd be my preference 09:11:36 to give me more time to check etc 09:11:52 I pushed this commit because the API is broken and will give wrong values. 09:12:03 Well not wrong, but useless ones. 09:12:24 Namely it's the nextSyncTime() call. 09:12:41 yeah, I don't disagree with your reasoning ;-) 09:13:06 but need to make sure we transition existing clients before removing that api 09:13:17 ah, the mkcal PR relies on caldav PR 32 which is being rebased 09:13:20 I'll check that one again tomorrow 09:13:50 ljo_: I haven't had time to follow TJC - is there any new issues there in particular which need attention? 09:14:50 No, it looks mostly good. Damien did a nice work. 09:14:57 great 09:15:07 ok, did I miss anything, or should we continue with the rest of the agenda? 09:15:15 Just one minute… 09:15:29 The MR!32 in Caldav is independant from mkcal MR. 09:15:56 The mKCal MR is a base for a future caldav MR that is not pushed yet. 09:16:09 It's on my disk but forgot about it. 09:16:15 aha! ok, I see 09:16:34 I will review and merge that one tonight then, unless pvuorela_ finds some issue with it (mkcal MR#2) 09:16:39 It allows to grep incidence in a time period not just before a given date. 09:17:00 MR in mKCal is adding a new API to do this. 09:17:11 makes sense, does that cover deleted items also? 09:17:37 Yes, it is adding a condition in the database SELECT. 09:17:46 great 09:18:05 currently it is doing date < before, and I have added a AND date > after. 09:18:25 So we can select the database within the same range than we are doing with the server. 09:19:37 that will greatly improve our client code. I remember adding some ugliness to the plugin to work around that limitation in mkcal. Seems like the PR is quite small after all, I should have gotten my hands dirty... 09:19:54 well, thank you very much for doing that. 09:20:09 ok, let's continue with the rest of the agenda: 09:20:16 #topic WebDAV sync discussion and next steps (mer:contrib OBS) 09:20:26 I guess we need to discuss a few main things here: 09:20:36 1) what steps to take to get it building in OBS 09:20:46 2) what steps to take to pull that into Sailfish OS images 09:21:07 3) what might be necessary for us to add in closed-source code (e.g. account settings) to make it work 09:21:28 4) what migrations might be necessary for existing c*dav accounts to add webdav sync functionality (or not do this?) 09:21:35 5) ... what did I miss? 09:21:57 Seems fine. It covers my own questioning. 09:22:05 abranson knows much more about OBS than I, so I will hand over to him here ;-) 09:22:14 ooh interesting 09:23:10 Some context: I've coded a Buteo sync plugin for WebDAV, see https://git.merproject.org/dcaliste/buteo-sync-plugin-webdav 09:23:12 dcaliste: can you outline precisely what the sync plugin implements currently, and how it's exposed? I assume it's just a buteo client sync plugin, with some semantics specified for how/when to synchronise local/remote data within some specific folder? or? 09:23:30 yes… 09:23:52 It is using the Buteo framework (direction options, conflict resolution options…) 09:24:00 well, anyone can get stuff built in obs, but to have more official projects building needs approval and creation by the IT guys 09:24:35 It is waiting for an account setting that store the local folder to sync, and another for the server path where to sync to (or from). 09:24:49 i'd previously requested a mer:core:contrib project, where we could build everything that ended up in contrib, but I think that scope was maybe too big 09:25:03 It is exactly based on the caldav sketleton. 09:25:06 so will have to talk to them about the best way to get stuff built so that people can just add the repo and try things out 09:25:28 thank you abranson. 09:25:58 so really we'd want the webdav plugin used by an account type 09:26:12 e.g. owncloud/nextcloud, which already has cal and card? 09:26:55 I've added it as a onlinesync account type, just like carddav and caldav. 09:26:58 abranson: ok. what might an ETA be on the OBS things? and can you add instructions to the sfos wiki about how to do that stuff (i.e. how to submit repo to be built as package in mer:contrib, and how add mer:contrib on device to pull those built packages) once it's done? 09:27:04 It's just a new onlinesync service. 09:27:59 yes, account side we can add it to the caldav/carddav generic onlinesync account. the account migration might be a bit of a pain but I think we can short-cut by saying "if you want webdav support, please delete and recreate your account", and just allow webdav support added in new accounts. 09:28:12 chriadam_: i think including a package in the obs build should be something sailors set up when we include a project in contrib 09:28:24 chriadam_, there is no necessity for migration. 09:28:36 At least, I think so. 09:28:59 abranson: so what is the process, if a contributor wants a project to be built in mer:contrib? 09:29:32 well, asking in irc I think, or maybe at a meeting? 09:29:38 In fact, it is adding some settings for existing account when entering the UI account page, but enable is set to false by default so the plugin is not activated. 09:30:03 dcaliste: right, migration isn't needed if we just default to disabled, I agree 09:30:44 maybe in here? should the scope of this meeting widen to general mer-contrib? 09:31:16 sure, I don't mind. But I adamantly don't want to be the person tasked with doing OBS related things, because I don't understand any of it ;-) 09:31:36 i think it would be nice if people can ask for their branches of existing mer:core projects be forked into contrib and built 09:31:40 About OBS, so the first step is to create a new project buteo-sync-plugin-webdav in git mer-contrib, so I can push there and make MRs for patches and new functionalities. 09:32:37 chriadam_: yeah don't mind doing that at all - just have to find some scheme that lbt is happy with so we can build stuff and test it, and have other users test it, as a precursor to inclusion in the real mer:core 09:32:52 dcaliste: I think abranson is saying that the OBS project in mer:contrib would have to be created by a sailor. or maybe I misunderstood? 09:32:53 tbh we could use it ourselves for testing new packages 09:33:23 abranson: I agree. some clearly defined process like: 1) it gets built in mer:contrib. 2) once it's been tested by community, we import into mer:core if we think it's good for core. 09:33:27 dcaliste: yes I can create you a new project in mer:contrib for the webdav plugin. that's a good start 09:34:08 but that first stage (how does it get built in mer:contrib? what does the community contributor have to do other than ask us to create the OBS project, and what do we have to do to go from "git repo" to "building and webhooked" etc? 09:34:17 ) needs ot be documented I think 09:34:23 chriadam_: the granularity is I think something we need to think about. if we only have one mer:contrib obs project, then people who add the repo will get everything. that might not be good for stable testing 09:34:29 I agree with your plans for OBS. So what is missing is a trigger so tag in git mer-contrib triggers rebuilds in OBS. 09:35:15 i'm wondering if we should do something like the feature branches we do internally. so we have a mer:core:contrib:feature:mer### for each feature 09:35:56 I agree that contrib should be based on features to avoid pulling all devel things. 09:35:59 i could ask for a root mer:core:contrib project on merproject obs that I can admin, then we can use webhooks to build stuff in there 09:35:59 I'm not a huge fan of feature branches, honestly, simply because it adds complexity. but I agree that it does add granularity (allowing individual contributions to be tested independently...) 09:36:30 Currently, what is simple though is to point people to the build directory of OBS, saying there are packages there for testing. 09:36:30 that independent testing is crucial, otherwise broken and old things could cause real headaches 09:37:06 abranson: hrm, fair point. but I'd prefer e.g. mer:core:contrib:feature:webdav rather than per-bug feature repos, for example 09:37:29 chriadam_: yeah, that's possible. it'd be nice to include bz in the loop though. 09:37:35 well, I guess granularity is something we can iterate on later 09:37:40 what's our current plant? 09:37:41 plan* 09:37:55 abranson: are you going to ask IT to give you a mer:contrib OBS project + admin rights? 09:38:02 then are you going to set up a webdav project? 09:38:21 do we need to create a mer-core/buteo-sync-plugin-webdav git repo, or can it build from dcaliste's git repo? 09:38:24 https://sailfishos.org/wiki/Webhooks is the instructions for personal obs builds btw. we'd be doing this, but creating a contrib project for them rather than doing it in user home project I think 09:38:38 huh I had no idea that page existed 09:39:19 yes, having a "contrib" repo also makes it more "official" 09:39:23 we can curate what goes into it 09:39:33 and we can ask users to test those packages without needing to worry too much 09:39:36 Thanks for the link. Currently, I was changing the service file by hand on OBS to trigger build from private projects. 09:39:48 chriadam_: yes. i'll talk to them about how they think it should look. I think they'll have some specific ideas in mind for the obs projects 09:40:06 indeed, I'll leave those details in your hands ;-) 09:40:32 from my side, once there is something building in OBS, I will look at adding the accounts settings code to support it in there 09:40:38 so people can already create their own git repos and obs builds. we need to create a stepping stone between those and the sailfish builds and repos 09:40:51 yes 09:40:57 and document that process 09:41:07 and advertise somehow that such a process exists 09:41:08 so a procedure for both of those transitions 09:41:20 e.g. in the sailfish os community meeting 09:41:27 i don't think I actually have sfos wiki edit rights yet. must ask someone about that... 09:41:39 ask lbt 09:41:54 we also need a process to give community members edit rights in the wiki 09:42:03 so many things to do 09:42:04 chriadam_: as a bit of a seed, would you like to use the contrib mechanism for staging for c*dav contributions, or is that too much complexity? 09:42:43 abranson: interesting idea 09:42:49 actually, that would be good 09:43:01 i'm wondering if more contributions are actually an extension of this effort 09:43:46 hrm, actually, let's put the c*dav contrib gating / testing on hold for the moment 09:43:48 concentrate on webdav 09:44:02 once we have something for that, we can look at expanding 09:44:27 but there are concrete actions which need to take place for webdav sync at least, which should provide learnings and outcomes first, I guess. 09:44:32 yep 09:44:52 after that we can add c*dav builds into the contrib obs projects 09:44:56 yes 09:44:58 that'd be great 09:45:03 what's our ETA on the OBS project? 09:45:41 if the it guys are available enough to bang out the details, i'd like to see it created this week. 09:45:45 I know everyone's super busy, but wondering if this webdav could be building in a mer:contrib feature repo before christmas 09:46:03 ok, fantastic. 09:46:18 i know they won't want to do it unless they know it's the correct approach, as there's a danger of nasty legacy if it's done wrong 09:46:32 true 09:46:41 Thanks all, that's great! I agree it should be done properly, not in haste. 09:46:48 don't let my constant wish for haste get in the way of good architecture ;-) 09:47:29 ok, so I guess we can wrap up this topic in the agenda 09:47:31 actions: 09:47:46 1) abranson to ask IT about creating an OBS repo for mer contributions and giving him admin rights 09:48:02 chriadam_: thanks for pushing it! it's very easy to get carried away with other tasks... 09:48:18 2) once that's done, abranson will create an OBS project to build dcaliste's webdav contribution 09:48:47 3) once that's done, chriadam will look at accounts settings code to allow clients to use that. need to consider how to allow externals to test that... maybe just standalone installable packages with the patches applied... 09:49:01 abranson: thank you for offering to do the OBS stuff. it's greatly appreciated. 09:49:25 and of course thanks to dcaliste for doing great work, and giving us good reasons to work out these contribution processes 09:49:42 +1 09:49:54 ok, anything else on that topic, or shall we continue with agenda? 09:50:06 To go back to your initial point list, some words about 3), as I said, it is adding a new service to existing onlinesync sync type, so the main UI for it exists already. 09:51:08 The main issue is how to setup new credentials. 09:51:19 dcaliste: yes, need to extend that one with field entries (for remote url as liek the other ones, and for local sync dir) 09:51:30 IIUC 09:51:48 Because currently the UI is checking credential on CalDAV or CardDAV actions… 09:52:19 So I can only test on server without credentials… 09:52:43 Is there a way to defined basic AUTH (login pass) wy commadline for a given account? 09:53:05 is there a possibility to ask for some closed source stuff to be opened there? i don't know what the status of the accounts stuff is there 09:53:20 https://sailfishos.org/wiki/Webhooks 09:53:22 uh 09:53:37 https://git.merproject.org/mer-core/buteo-sync-plugin-carddav/tree/master/tools/cdavtool 09:53:45 that one has the code which does the credentials checking stuff 09:54:09 Ah, great. I'll check this and adapt it to WebDAV if needed. 09:54:35 (copy paste of the code from the jolla-settings-accounts setup code. need to copy any changes made there back into j-s-a unfotrunately) 09:55:06 it's not properly separated into a reusable component for reasons which are not very good. 09:55:42 ok, let's continue: 09:55:49 #topic Any Other Business 09:56:04 There should e a separate package for DAV stuff because for calendar the importation / exportation code is also duplicated. 09:56:16 dcaliste: https://git.merproject.org/mer-core-contrib/buteo-sync-plugin-webdav 09:56:25 i made you master cos it's yours 09:56:30 there was a TJC post about "event time changes to one hour later when syncing to caldav" which I noticed 09:56:58 also the outstanding carddav PR needs a unit test but other than that LGTM 09:57:06 abranson: great thank you. 09:57:20 I don't have anything else to discuss :-) 09:57:48 chriadam_: do you plan to create a new testing CalDAV package for TJC after last MRs inclusion? 09:58:02 dcaliste: yes, after I merge those two rebased PRs 09:58:27 About the shift to one hour later on TJC, I asked the guy some logs but I didn't find the root for it. 09:58:37 actually, I just remembered I'm away tomorrow, so wednesday is the earliest I'd be able to do that 09:59:17 chriadam_: no problem. 10:00:07 thanks again to everyone for their contributions. really appreciated. 10:00:19 if nothing else, I will close the meeting! 10:00:25 chriadam_: and thank you for keeping all this in the air! 10:00:48 Daylight savings? I have seen some roundtrip problems there, but have not had any proper investigation. 10:00:52 Thank you all for keeping this alive internally also (and make it grows also). 10:00:56 up in the air is about right. this last month I've gotten very little done in this domain, no internet access makes it tricky ;-) 10:01:03 ljo_: definitely sounds DST related to me 10:01:31 well, let's see if some logs get posted, might help 10:01:38 ok, gnight everyone :-) 10:01:40 #endmeeting