14:00:44 <sayan> #startmeeting hubs-devel 14:00:44 <zodbot> Meeting started Tue Oct 3 14:00:44 2017 UTC. The chair is sayan. Information about MeetBot at http://wiki.debian.org/MeetBot. 14:00:44 <zodbot> Useful Commands: #action #agreed #halp #info #idea #link #topic. 14:00:44 <zodbot> The meeting name has been set to 'hubs-devel' 14:01:05 <sayan> #topic Roll Call 14:01:10 <sayan> .hello sayanchowdhury 14:01:13 <shillman> .hello wispfox 14:01:15 <zodbot> sayan: sayanchowdhury 'Sayan Chowdhury' <sayan.chowdhury2012@gmail.com> 14:01:18 <zodbot> shillman: wispfox 'Suzanne Hillman' <wispfox@gmail.com> 14:02:36 <sayan> abompard: mizmo: meeting time 14:02:44 <mizmo> .hello duffy 14:02:47 <zodbot> mizmo: duffy 'Máirín Duffy' <fedora@linuxgrrl.com> 14:02:48 <abompard> .hello abompard 14:02:50 <zodbot> abompard: abompard 'Aurelien Bompard' <aurelien@bompard.org> 14:03:17 <sayan> #chair shillman mizmo abompard 14:03:17 <zodbot> Current chairs: abompard mizmo sayan shillman 14:04:09 <sayan> there was no meeting last week? 14:04:18 <abompard> sayan: not really 14:04:34 <sayan> ok 14:04:46 <sayan> #topic Action items from last to last week :) 14:05:02 <abompard> sayan: we talked with shaily, a potential outreachy intern 14:05:22 <sayan> great 14:05:29 <abompard> jonatoni: if you're around, it's Hubs meeting time 14:05:44 <sayan> I remember seeing the chat later when I joined at night 14:05:50 <sayan> * sayan to create the PR for the IRC work 14:05:52 <sayan> * abompard and sayan to collaborate on Wed and discuss the widgets for 14:05:54 <sayan> the outreachy proposal, and draft the outline of the proposal 14:05:56 <sayan> * abompard to create issues on the topics for MVP 14:06:30 <abompard> I can start if you want 14:06:32 <jonatoni> .hello2 14:06:33 <zodbot> jonatoni: jonatoni 'Jona Azizaj' <jonaazizaj@gmail.com> 14:06:52 <abompard> oh, there "hello2", nice. 14:07:21 <sayan> abompard: did not get you "I can start if you want " 14:07:22 <jonatoni> abompard thanks for the reminder :) 14:07:45 <abompard> sayan: I can start with my actions from last week update 14:07:59 <sayan> abompard: oh yes, 1 minute 14:08:07 <abompard> if nobody else wants to go :) 14:08:29 <sayan> So, the given action items are done. abompard wrote the outreachy proposal 14:08:31 <sayan> abompard++ 14:08:32 <zodbot> sayan: Karma for abompard changed to 5 (for the f26 release cycle): https://badges.fedoraproject.org/tags/cookie/any 14:08:46 <sayan> so moving forward 14:08:56 <sayan> #topic Status Updates 14:09:03 <sayan> abompard: you can go ahead 14:09:17 <abompard> Sure, just a foreword about the MVP issues 14:09:35 <abompard> I have pushed a pull request to move the Feed data to MongoDB 14:09:40 <abompard> that's one of the items for the MVP 14:10:09 <abompard> but I've also pushed a gigangic pull request that moves the widget UI structure to React 14:10:23 <abompard> We brievly talked about this with sayak 14:10:38 <abompard> It's a very big changeset 14:10:55 <abompard> I tried to break it down into Backend on one side, Frontend on the other 14:11:03 <abompard> but the Frontend part is still huge 14:11:33 <abompard> I think it brings a lot of critical improvements, as described in the PR, that we couldn't have any other way 14:11:55 <abompard> but I realize that it requires some good knowledge of React to understand and review 14:12:16 <abompard> so I'm willing to help and explain with anybody who wants to review it (wink wink sayan) 14:13:03 <abompard> Because I think it would be a good thing if there were more people in the team that got more experience and knowledge in React 14:13:45 <abompard> Also, note for mizmo: CSS can be a bit different in React 14:14:02 <mizmo> oh no, heh. what does react do to CSS? 14:14:02 <abompard> but the way I did it is to have separate .css files for each React component 14:14:06 <mizmo> does it use a system like SASS? 14:14:10 <abompard> so it should be pretty identical 14:14:24 <abompard> no it doesn't (even if you could) 14:14:26 <sayan> abompard: yeah, that's something I was going to ask 14:14:46 <abompard> it's just that you can have separate CSS files for each component 14:15:02 <sayan> mizmo: traditionaly react tells to embed the CSS code into each component in the js file itself 14:15:06 <abompard> and you set the classes in the JS with the "className" attribute 14:15:50 <abompard> sayan: yeah, I'm not a big fan of that, webpack allows to have a separate CSS file and require it, I think it's cleaner 14:16:00 <mizmo> that seems kind of super messy doesnt it 14:16:01 <sayan> abompard: yes, I am not big fan of that too 14:16:09 <abompard> mizmo: yeah I agree 14:16:17 <mizmo> if the css is site-wide it doesn't see it? 14:16:42 <sayan> abompard: but how do to you fix this, suppose two components has similar css then we write css for those two seperately? 14:16:43 <abompard> so what I've done is, for example for the "CobWeb" component, I have a CobWeb.css file besides it with its styles 14:17:03 <abompard> and the first div generated by the CobWeb component has the ".CobWeb" CSS class 14:17:23 <abompard> and all styles in the CobWeb.css file start with the ".CobWeb" selector 14:17:36 <abompard> so it's encapsulated, but not with dark magic ;-) 14:17:43 <sayan> abompard: haha 14:17:54 <sayan> abompard: so correct if I am wrong 14:18:16 <mizmo> doesnt that take the cascading out of CSS tho? 14:18:50 <sayan> we would have a base styles file for the common css along with fedora-bootstrap and then a component level css files? 14:19:04 <abompard> mizmo: good remark. If a component has subcomponents, the top one can be the only one with styles, and it would define the children's styles too 14:19:25 <abompard> sayan: yeah I think that's correct 14:19:31 <sayan> abompard: ok 14:20:04 <abompard> if there are widely-used styles that are re-used in many components we can factor them in a top CSS files, but honestly Bootstrap has already all of those 14:20:16 <mizmo> so theres no way to define styles outside of the component specific css? 14:20:22 <abompard> mizmo: yes 14:20:31 <abompard> mizmo: just a regular global CSS file 14:20:56 <mizmo> ohhh ok 14:21:05 <mizmo> so we dont even need to use component specific css if we dont want to 14:21:20 <abompard> mizmo: yeah most of my components have no styling 14:21:22 * mizmo isn't sure why you would want to use comonent specific css 14:21:24 <abompard> (besides bootstrap) 14:21:26 <sayan> mizmo: yea 14:21:39 <abompard> mizmo: this way you can reuse components more easliy 14:21:53 <abompard> you don't have to extract their CSS from the global CSS file 14:22:00 <abompard> which can cause side-effects 14:22:19 <mizmo> abompard: reuse the component in another app (eg !hubs?) 14:22:26 <abompard> yep 14:22:33 <mizmo> ahhhh ok that makes a lot more sense 14:22:56 <abompard> mizmo: and we could start building a collection of Fedora components, etc.. but that's another story 14:23:10 <mizmo> abompard: very very cool 14:23:11 <sayan> abompard: +1 14:23:43 <sayan> abompard: but does react loads all the css files? 14:23:57 <abompard> I think it's also easier, when you work on the CobWeb component, to have its specific CSS side-by-side, with only its definitions there, knowing that there won't be side-effects 14:24:18 <abompard> sayan: webpack can extract all those CSS files and concatenate them to generate a big CSS file 14:24:49 <abompard> sayan: that's in prod mode. In dev mode, the CSS is automatically inserted in the <head> 14:24:53 <mizmo> abompard: yep i agree, the main thing i was worried about is the stuff up the chain like the basic fonts / colors / etc that are common across components 14:24:57 <mizmo> sounds like that isnt a problem, phew 14:25:09 <abompard> mizmo: yeah there's still a master style 14:26:11 <abompard> So, I'd be happy to (try to) answer all your questions about React and how we use it in Hubs. Feel free 14:26:29 <sayan> mizmo: we can have CSS3 variables in the main css file 14:26:42 <sayan> and just use the variables in the components css 14:27:12 <abompard> I've had my head in there for the last month so I'm starting to understand it pretty decently. 14:27:25 <sayan> abompard: yes, webpack generates by default one big CSS files 14:27:39 <mizmo> i dont even quite understand what react is at a high level beyond being a JS framework. I know what jquery is. is it a competitor / replacement to jquery? 14:27:47 <mizmo> is it more like jquery ui? 14:28:16 <sayan> mizmo: react is a framework like jquery but does not work like jquery 14:28:44 <abompard> mizmo: I'd say it's sort of jquery, but it's more a structural component. It doesn't do animations or ajax by itself for example 14:29:13 <sayan> mizmo: so, react basically build on philosophy of building UI using Flux 14:29:43 <sayan> mizmo: https://facebook.github.io/flux/docs/in-depth-overview.html#structure-and-data-flow 14:29:48 * mizmo looks 14:30:37 <mizmo> and the main point of all of these frameworks essentially is to allow for easier async loading of data + easier access to commonly used js functions / libraries kind of things right 14:30:46 <saptaks> abompard sayan I am interested in contributing in hubs related to react. 14:31:14 <abompard> mizmo: it's closer to a templating engine, I'd say, but it has a system to handle state too 14:31:23 <abompard> and state changes, etc 14:31:30 <abompard> saptaks: great! 14:31:41 <saptaks> I have some experience with react and redux 14:31:49 <mizmo> ah ok 14:31:55 <abompard> saptaks: cool, that's what we'll be using 14:32:04 <mizmo> what is redux? 14:32:11 <mizmo> (sorry for the basic q's o_O) 14:32:12 <abompard> mizmo: glad you asked ;-) 14:32:22 <sayan> mizmo: so if you see that diagram, when you have an action, a signal is emitted and the overall state is changed based on which view (which is your UI) changed 14:32:48 <abompard> mizmo: redux is a library that will help you manage the state of your application 14:33:10 <abompard> so redux handles the state, and react generates the components depending on that state 14:33:29 <mizmo> ah ok 14:33:52 <abompard> and reacts components emit "actions" that will change the state in redux 14:34:04 <saptaks> abompard sayan what do we use for routing purposes? 14:34:07 <mizmo> ahhh ok, redux tracks what state you're in, react well... reacts to state changes and rerenders components based on state? hehe 14:34:11 <abompard> and this new state is passed down the tree of components that redraw what must be redrawn 14:34:43 <abompard> saptaks: currently there's only a couple pages that are using react, so we don't use a routing library 14:34:50 <sayan> saptaks: we are not using anything for routing yet 14:35:06 <sayan> most of them are independent components 14:35:06 <saptaks> abompard sayan ok 14:35:39 <sayan> mizmo: another thing is react makes the rendering faster as it does not do operation on the actual DOM, rather works on Virtual DOM 14:36:08 <mizmo> ah ok 14:36:16 <mizmo> kind of like web components 'shadow dom' ? 14:36:17 <sayan> mizmo: you may know more when you read about this terms, but in short react was build to makes things faster and keeping async things in mind 14:36:20 <sayan> mizmo: yes 14:36:35 <mizmo> ok cool i think i get it a lot better now 14:37:18 <abompard> cool :) 14:37:39 <sayan> abompard: saptaks can probably review the react PR that is open 14:37:44 <sayan> more eyes the better :) 14:38:10 <saptaks> sayan: would love to :) 14:38:14 <abompard> saptaks: if you want to check that out, yeah feel free to. But if you don't know Hubs beforehand it may be a bit abstract 14:38:54 <saptaks> abompard: I have a little idea about hubs. I had installed the project and played around with it once before 14:39:13 <abompard> saptaks: https://pagure.io/fedora-hubs/pull-request/392 14:39:18 <saptaks> abompard: but couldn't make much contributions. Really looking forward this time. 14:39:24 <sayan> abompard: I will go through the commits, and check the PR 14:39:26 <abompard> saptaks: cool! :-) 14:39:31 <abompard> sayan: cool! :-) 14:40:01 <abompard> To wrap that subject up: 14:40:25 <abompard> We can still write simple widget that generate their HTML on the backend 14:40:35 <abompard> I think that's an important feature to have 14:40:40 <abompard> but for more complex widgets 14:40:51 <abompard> I think that React can make things much simpler on the UI 14:41:11 <abompard> And the IRC widget is probably a very good candidate for that 14:41:12 <sayan> :) 14:41:22 <mizmo> +1 14:41:47 <abompard> so I'll be working with sayan in that direction 14:42:14 <sayan> I was actually thinking how to divide the work 14:42:22 <abompard> sayan: perfect 14:42:43 <sayan> abompard: do you want to write the basic framwork till the time I am reviewing the PR 14:42:58 <abompard> sayan: yep, looks good to me 14:42:58 <sayan> framwork for the IRC widget 14:43:17 <sayan> I would be done reviewing the PR by tomorrow 14:43:36 <abompard> sayan: OK, then I'll make a branch available with the structure 14:43:56 <sayan> abompard: ok sure 14:44:32 <abompard> Okaaaaay... I think I'm done with my status update :-) 14:45:05 <sayan> I don't have anything to update as I was on PTO last week 14:45:15 <sayan> mizmo: shillman: you have something to update? 14:45:28 <fm-hubs> pagure.pull-request.comment.added -- abompard commented on PR #393 on fedora-hubs https://pagure.io/fedora-hubs/pull-request/393#comment-35860 14:45:34 <mizmo> so i've been waiting on writing up some bounties for hubs development 14:45:48 <mizmo> i think now that the topic for outreachy is set, it's an ok time to work on doing this now 14:46:01 <mizmo> i didnt want to do it earlier bc i didnt want it to compete / clash with the outreachy position 14:46:06 <sayan> yes 14:46:15 <sayan> mizmo: can you set a action item for that? 14:46:21 <mizmo> because of outreachy topic involves search too ive been thinking about search design, haven't mocked anything up yet but did some initial research 14:46:36 <mizmo> sure, im going to start working on it and maybe wait to post until the outreachy application period is over 14:46:51 <mizmo> #action mizmo working on hubs devel bounties, to be posted after outreachy application period closes 14:47:03 <mizmo> #action mizmo working on search designs for outreachy project 14:47:16 <mizmo> if theres anything esle you want me or shillman to look at let us know 14:47:31 <mizmo> do we have a list of the MVP featureset documented anywhere? 14:47:45 * mizmo thinking tasks that could help MVP features would be most useful? 14:48:26 <abompard> mizmo: https://pagure.io/fedora-hubs/roadmap?status=Open&no_stones=&milestone=Production 14:48:38 <mizmo> perfect thanks :) 14:49:20 <sayan> abompard: hah thats the link I was looking for 14:49:34 <sayan> I landed on https://pagure.io/fedora-hubs/roadmap with hopes for the link :) 14:49:42 <abompard> :) 14:52:10 <sayan> moving to open floor 14:52:17 <sayan> #topic Open Floor 14:52:20 <sayan> Anything for open floor 14:52:23 <sayan> ? 14:52:32 <abompard> Maybe discuss Outreachy? 14:52:42 <abompard> jonatoni: wanna say something? 14:52:54 <sayan> yeah 14:53:18 <shillman> jonatoni|m ^^ 14:53:44 <jonatoni|m> I'm on my phone now actually but today I was trying the widget workshop 14:54:35 <jonatoni|m> And still trying to have a plan for Outreachy, I have something on my mind but I'm not really sure yet 14:55:50 <sayan> jonatoni|m: okay, then you can ping once you are online 14:56:16 <sayan> and talk here with your proposal. 14:56:32 <jonatoni|m> Will do, thanks sayan 14:57:50 <sayan> Okay before we close, if you plan to chair the hubs meeting, you can fill your names here: https://etherpad.gnome.org/p/hubs-meeting. You can find the steps to run the meeting in the README of fedora-hubs: https://pagure.io/fedora-hubs/ 14:58:11 <sayan> closing the meeting in 14:58:14 <sayan> 3 14:58:16 <sayan> 2 14:58:18 <sayan> 1 14:58:20 <sayan> #endmeeting