14:11:12 #startmeeting hubs-devel 14:11:12 Meeting started Tue Aug 8 14:11:12 2017 UTC. The chair is abompard. Information about MeetBot at http://wiki.debian.org/MeetBot. 14:11:12 Useful Commands: #action #agreed #halp #info #idea #link #topic. 14:11:12 The meeting name has been set to 'hubs-devel' 14:11:19 abompard: but you are open to create topics 14:11:46 #topic Roll Call 14:11:49 .hello wispfox 14:11:50 shillman: wispfox 'Suzanne Hillman' 14:11:53 .hello abompard 14:11:57 abompard: abompard 'Aurelien Bompard' 14:12:02 .hello sayanchowdhury 14:12:03 sayan: sayanchowdhury 'Sayan Chowdhury' 14:12:06 #chair shillman 14:12:06 Current chairs: abompard shillman 14:12:09 .hello sayaksarkar 14:12:11 sayak: sayaksarkar 'Sayak Sarkar' 14:12:12 .chair sayan 14:12:14 sayan is seated in a chair with a nice view of a placid lake, unsuspecting that another chair is about to be slammed into them. 14:12:37 .chair sayak 14:12:37 sayak is seated in a chair with a nice view of a placid lake, unsuspecting that another chair is about to be slammed into them. 14:12:42 *blink* 14:12:46 abompard: #chair 14:12:48 this is cool 14:12:51 I'm having fun 14:12:55 #chair sayan 14:12:55 Current chairs: abompard sayan shillman 14:12:58 #chair sayak 14:12:58 Current chairs: abompard sayak sayan shillman 14:13:04 I never knew this thingy, this is so funny 14:13:25 I feel like Steeve Ballmer 14:13:31 haha 14:14:14 Everybody has a chair? 14:14:36 yes 14:14:40 cool. 14:14:43 Let's go to... 14:14:50 #topic Status Updates 14:15:09 Who wants to start? 14:15:15 sayan maybe? 14:15:15 I can go 14:15:18 thanks 14:16:23 So, last week after abompard help with the blunder typo that I did I created the backend for the rest of the steps 14:16:44 I am still waiting on mizmo for the modal UI, so that I can write rest of the javascript 14:17:01 Yesterday, I started working back on the storage of the logs 14:17:29 Sayan it is in thr patternlab repo if you build locally you can get the basic modal templates 14:18:01 mizmo: ok I will do that, with the same colors like in the mockup 14:18:18 I created using the bootstrap but the modal renders broken 14:18:42 by bootstrap I mean from the bootstrap documentation 14:19:11 sayan: remember we're using bootstrap v4 alpha 14:19:26 that's what fedora-bootstrap is based on 14:19:34 it's not 100% compatible 14:19:43 for storage of logs abompard and I decided that we use mongodb for storing of logs 14:19:57 abompard: yes, I refer to v4 docs 14:20:08 I will check with the patternlab, it would be better 14:20:32 and redis for storing the access tokens 14:20:51 I still need to see how we can create/manage multiple users 14:21:43 meaning as soon as a user creates account, we start receving data using the person access token 14:22:02 that's from my side 14:22:28 sayan: I think tokens should be stored in the PGSql db too, unless they are easy to get from matrix again, because Redis has no crash protection 14:22:51 abompard: sorry to not mention that 14:23:03 Yeah tokens would be stored in postgres too 14:23:07 ok cool :) 14:23:23 Alright, shillman do you wanna go? 14:23:32 I will use redis just for communicating between the two applications 14:24:01 Sure. I'm not doing a lot right now for Hubs, but I am working on my talk on the UX I did for FLOCK. 14:24:14 cool 14:24:22 I'm not yet sure how much background to offer people for Hubs. 14:24:41 It 14:24:47 's complicated! :) 14:24:51 sayan, mizmo: do you guys know? 14:25:01 or have an opinion 14:25:51 background as in? 14:26:18 As in... before I go into the UX process we used, how much do people need to know about how Hubs works? Will people already know anything? 14:26:37 shillman: you can cover the ideology 14:27:53 So... a sentence or two about what Hubs is for? 14:28:36 shillman: yes, you refer to mizmo's talk on flock update 14:28:43 s/talk/blogpost/ 14:28:46 ok 14:28:50 shillman: 1 slide should be enough 14:28:57 you need to set the context 14:29:07 *nodnod* What I figured, but wanted to check. 14:29:42 good, thanks sayan. 14:29:43 thanks. :) 14:30:05 anything else shillman? 14:30:09 Nope. :) 14:30:13 cool ! 14:30:23 sayak: wanna go now? 14:30:29 abompard, sure 14:30:57 I was going through the widgets this week to try and understand where and how to port them to React 14:31:17 However, to say the truth I am still quite unsure about how to go about that. 14:31:24 I checked Halp for the same 14:31:57 but it seems that even Halp uses a very small portion of the JS script in react to create the view. 14:32:40 * abompard has an opinion on porting the widgets to react, but will wait after the status report 14:32:51 ok 14:32:56 looking through the templates for the other widgets it seems that they are pretty straightforward html templates 14:33:43 however, it doesn't much sense in adding react code to it because the templates are quite atomic by themselves and don't have much complex UI logic anywhere 14:34:04 so I am pretty unsure at the moment on how to proceed 14:34:06 thoughts? 14:34:11 yep :-) 14:34:30 So, I agree with you that most widgets are very simple 14:34:48 and I think it's a good thing to make it easy for people to write simple widgets 14:35:05 there's one area where React would be very useful though 14:35:16 it's the plugin *loading* system 14:35:25 the code that wraps loading of the plugins 14:35:34 make them movable in edit mode 14:35:36 and all that 14:35:47 aah 14:36:00 There again it's not very interactive code, but I think it would be useful to have react there for a reason: 14:36:07 abompard: yes, we probably don't move all the widgets then 14:36:12 that would be the top of the widget hierarchy 14:36:26 but move the ones whose data gets updated 14:36:27 so that's were we could set react-specific component like the IntlProvider 14:36:35 that handles translation 14:36:53 yes, that's also where we could attach the eventsource 14:36:57 and trigger reloading 14:37:16 we could also have a store there 14:37:17 makes sense 14:37:18 like Reflux 14:37:37 I think that having react at the base of the widgets hierarchy would be pretty useful 14:38:38 (I think we currently don't need a store, by the way, because widgets are kinda independant with regards to data, but still it's useful to be able to do it if that changes) 14:39:21 abompard: that what I wanted to say we can have them move to react widgets 14:39:26 by the way, in what I said above : s/plugin/widgets 14:40:01 so the we can update the store, and the changes is handled 14:40:07 sayan: well, I think having simple "HTML + 1 view" widgets without react is still useful 14:40:36 ah, so the current situation is: if the store changes, the widget is entirely reloaded 14:40:37 BUT 14:40:45 some widgets can opt-out of that 14:41:05 and subscribe to the eventsource and reload only what they need 14:41:10 the halp widget does that for example 14:42:13 anyway if we go for a full-blown store like Redux, IIRC it's event-based 14:42:36 so it's still the same mechanism 14:42:41 doesn't redux also follow the same flux principles? 14:43:01 * sayak thinks I need to get more proficient with Python to understand the entire project's workflow 14:43:04 simple widgets will have a very generic React wrapper that handle getting the data from the backend, and will susbscrie to the events 14:43:23 Yeah Redux is a Flux implementation 14:43:40 Big label "If I understood correctly" on everything I said 14:43:44 i just read the doc... ;-) 14:43:59 abompard: that what I was telling, having a generic React wrapper 14:44:28 sayan: Oh OK, but this code would be in the widget loader system, right, not in every widget? 14:44:45 abompard: yeah 14:44:49 * abompard thinks we're having the same idea actually ;-) 14:44:57 not every widget 14:46:04 OK, so : page loads, it loads a React widget loader, pass it or let it get the widget lists, and the loader loads each widget. If it's not native, it wraps it in a react component that will subscribe to events, make it movable in edit mode, etc 14:46:49 Hey ! Let's discuss that later, OK? I just realized we're still in the meeting :-) 14:46:55 Yeah 14:46:57 :) 14:46:59 Sure 14:47:09 where exactly is the widget loader system written? 14:47:10 but this was a needed discussion 14:47:15 base.py? 14:47:31 sayak: I'd say somewhere in static/client/app/core 14:47:45 sayak: if you are looking to learn more abompard wrote a very good tutorial https://docs.pagure.org/fedora-hubs-widget-workshop/index.html 14:48:02 oh yeah, feel free to test my tutorial :-D 14:48:21 abompard, sayak looks interesting 14:48:33 sayak talks to himself :) 14:48:43 heheheh 14:48:45 yeah sayak, you look interesting. 14:49:03 abompard: I read it last night, can you add cache invalidation for a single widget? 14:49:14 sayan: yes 14:49:28 ok so I got my todo for the week, let me create a new widget to play around a bit more 14:49:37 sayak: yeah 14:49:44 great 14:49:48 sayan, abompard any suggestions on any useful widget ideas? 14:50:05 Try the tutorial, it will give you an idea 14:50:21 awesome! :D 14:50:23 I think the example used is pretty useful itself 14:50:39 (at least for Fedora packagers) 14:51:03 sayak: there are a couple of widgets to make 14:51:11 My dream is to implement the whole Package Review Process in a widget :-) 14:51:37 also i'll probably do a refresher on my Python skills, haven't worked with Python in a long long time. 14:51:41 sayan, yup? 14:51:56 abompard: can you help me with the slides too? I am not able to type much because of the thumb pain :( 14:52:08 sayan: Oh sure 14:52:13 abompard, that's an ambitious dream! :D 14:52:35 sayak: not that much actually. It's doable. 14:52:51 sayak: you'll see when you've done the tutorial ;-) 14:53:10 abompard, will go through it tonight then! :) 14:53:15 sayak: yes, once you are done with the tutorial, you can either build a widget from the issues or work on the react thing we talked 14:53:15 cool :) 14:53:27 And feel free to ask! 14:53:34 sayan, sounds good! 14:53:43 abompard, I'll for sure! :) 14:54:16 I think it's a good thing that you did not just go ahead and convert widgets to React. Always make sure that you see the point in what you code :-) 14:55:02 OK, anything else? 14:55:26 #topic Open Floor 14:55:31 nothing from my side 14:56:32 OK, have a good day, folks! 14:56:37 #endmeeting