14:00:44 #startmeeting hubs-devel 14:00:44 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 Useful Commands: #action #agreed #halp #info #idea #link #topic. 14:00:44 The meeting name has been set to 'hubs-devel' 14:01:05 #topic Roll Call 14:01:10 .hello sayanchowdhury 14:01:13 .hello wispfox 14:01:15 sayan: sayanchowdhury 'Sayan Chowdhury' 14:01:18 shillman: wispfox 'Suzanne Hillman' 14:02:36 abompard: mizmo: meeting time 14:02:44 .hello duffy 14:02:47 mizmo: duffy 'Máirín Duffy' 14:02:48 .hello abompard 14:02:50 abompard: abompard 'Aurelien Bompard' 14:03:17 #chair shillman mizmo abompard 14:03:17 Current chairs: abompard mizmo sayan shillman 14:04:09 there was no meeting last week? 14:04:18 sayan: not really 14:04:34 ok 14:04:46 #topic Action items from last to last week :) 14:05:02 sayan: we talked with shaily, a potential outreachy intern 14:05:22 great 14:05:29 jonatoni: if you're around, it's Hubs meeting time 14:05:44 I remember seeing the chat later when I joined at night 14:05:50 * sayan to create the PR for the IRC work 14:05:52 * abompard and sayan to collaborate on Wed and discuss the widgets for 14:05:54 the outreachy proposal, and draft the outline of the proposal 14:05:56 * abompard to create issues on the topics for MVP 14:06:30 I can start if you want 14:06:32 .hello2 14:06:33 jonatoni: jonatoni 'Jona Azizaj' 14:06:52 oh, there "hello2", nice. 14:07:21 abompard: did not get you "I can start if you want " 14:07:22 abompard thanks for the reminder :) 14:07:45 sayan: I can start with my actions from last week update 14:07:59 abompard: oh yes, 1 minute 14:08:07 if nobody else wants to go :) 14:08:29 So, the given action items are done. abompard wrote the outreachy proposal 14:08:31 abompard++ 14:08:32 sayan: Karma for abompard changed to 5 (for the f26 release cycle): https://badges.fedoraproject.org/tags/cookie/any 14:08:46 so moving forward 14:08:56 #topic Status Updates 14:09:03 abompard: you can go ahead 14:09:17 Sure, just a foreword about the MVP issues 14:09:35 I have pushed a pull request to move the Feed data to MongoDB 14:09:40 that's one of the items for the MVP 14:10:09 but I've also pushed a gigangic pull request that moves the widget UI structure to React 14:10:23 We brievly talked about this with sayak 14:10:38 It's a very big changeset 14:10:55 I tried to break it down into Backend on one side, Frontend on the other 14:11:03 but the Frontend part is still huge 14:11:33 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 but I realize that it requires some good knowledge of React to understand and review 14:12:16 so I'm willing to help and explain with anybody who wants to review it (wink wink sayan) 14:13:03 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 Also, note for mizmo: CSS can be a bit different in React 14:14:02 oh no, heh. what does react do to CSS? 14:14:02 but the way I did it is to have separate .css files for each React component 14:14:06 does it use a system like SASS? 14:14:10 so it should be pretty identical 14:14:24 no it doesn't (even if you could) 14:14:26 abompard: yeah, that's something I was going to ask 14:14:46 it's just that you can have separate CSS files for each component 14:15:02 mizmo: traditionaly react tells to embed the CSS code into each component in the js file itself 14:15:06 and you set the classes in the JS with the "className" attribute 14:15:50 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 that seems kind of super messy doesnt it 14:16:01 abompard: yes, I am not big fan of that too 14:16:09 mizmo: yeah I agree 14:16:17 if the css is site-wide it doesn't see it? 14:16:42 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 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 and the first div generated by the CobWeb component has the ".CobWeb" CSS class 14:17:23 and all styles in the CobWeb.css file start with the ".CobWeb" selector 14:17:36 so it's encapsulated, but not with dark magic ;-) 14:17:43 abompard: haha 14:17:54 abompard: so correct if I am wrong 14:18:16 doesnt that take the cascading out of CSS tho? 14:18:50 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 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 sayan: yeah I think that's correct 14:19:31 abompard: ok 14:20:04 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 so theres no way to define styles outside of the component specific css? 14:20:22 mizmo: yes 14:20:31 mizmo: just a regular global CSS file 14:20:56 ohhh ok 14:21:05 so we dont even need to use component specific css if we dont want to 14:21:20 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 (besides bootstrap) 14:21:26 mizmo: yea 14:21:39 mizmo: this way you can reuse components more easliy 14:21:53 you don't have to extract their CSS from the global CSS file 14:22:00 which can cause side-effects 14:22:19 abompard: reuse the component in another app (eg !hubs?) 14:22:26 yep 14:22:33 ahhhh ok that makes a lot more sense 14:22:56 mizmo: and we could start building a collection of Fedora components, etc.. but that's another story 14:23:10 abompard: very very cool 14:23:11 abompard: +1 14:23:43 abompard: but does react loads all the css files? 14:23:57 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 sayan: webpack can extract all those CSS files and concatenate them to generate a big CSS file 14:24:49 sayan: that's in prod mode. In dev mode, the CSS is automatically inserted in the 14:24:53 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 sounds like that isnt a problem, phew 14:25:09 mizmo: yeah there's still a master style 14:26:11 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 mizmo: we can have CSS3 variables in the main css file 14:26:42 and just use the variables in the components css 14:27:12 I've had my head in there for the last month so I'm starting to understand it pretty decently. 14:27:25 abompard: yes, webpack generates by default one big CSS files 14:27:39 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 is it more like jquery ui? 14:28:16 mizmo: react is a framework like jquery but does not work like jquery 14:28:44 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 mizmo: so, react basically build on philosophy of building UI using Flux 14:29:43 mizmo: https://facebook.github.io/flux/docs/in-depth-overview.html#structure-and-data-flow 14:29:48 * mizmo looks 14:30:37 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 abompard sayan I am interested in contributing in hubs related to react. 14:31:14 mizmo: it's closer to a templating engine, I'd say, but it has a system to handle state too 14:31:23 and state changes, etc 14:31:30 saptaks: great! 14:31:41 I have some experience with react and redux 14:31:49 ah ok 14:31:55 saptaks: cool, that's what we'll be using 14:32:04 what is redux? 14:32:11 (sorry for the basic q's o_O) 14:32:12 mizmo: glad you asked ;-) 14:32:22 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 mizmo: redux is a library that will help you manage the state of your application 14:33:10 so redux handles the state, and react generates the components depending on that state 14:33:29 ah ok 14:33:52 and reacts components emit "actions" that will change the state in redux 14:34:04 abompard sayan what do we use for routing purposes? 14:34:07 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 and this new state is passed down the tree of components that redraw what must be redrawn 14:34:43 saptaks: currently there's only a couple pages that are using react, so we don't use a routing library 14:34:50 saptaks: we are not using anything for routing yet 14:35:06 most of them are independent components 14:35:06 abompard sayan ok 14:35:39 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 ah ok 14:36:16 kind of like web components 'shadow dom' ? 14:36:17 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 mizmo: yes 14:36:35 ok cool i think i get it a lot better now 14:37:18 cool :) 14:37:39 abompard: saptaks can probably review the react PR that is open 14:37:44 more eyes the better :) 14:38:10 sayan: would love to :) 14:38:14 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 abompard: I have a little idea about hubs. I had installed the project and played around with it once before 14:39:13 saptaks: https://pagure.io/fedora-hubs/pull-request/392 14:39:18 abompard: but couldn't make much contributions. Really looking forward this time. 14:39:24 abompard: I will go through the commits, and check the PR 14:39:26 saptaks: cool! :-) 14:39:31 sayan: cool! :-) 14:40:01 To wrap that subject up: 14:40:25 We can still write simple widget that generate their HTML on the backend 14:40:35 I think that's an important feature to have 14:40:40 but for more complex widgets 14:40:51 I think that React can make things much simpler on the UI 14:41:11 And the IRC widget is probably a very good candidate for that 14:41:12 :) 14:41:22 +1 14:41:47 so I'll be working with sayan in that direction 14:42:14 I was actually thinking how to divide the work 14:42:22 sayan: perfect 14:42:43 abompard: do you want to write the basic framwork till the time I am reviewing the PR 14:42:58 sayan: yep, looks good to me 14:42:58 framwork for the IRC widget 14:43:17 I would be done reviewing the PR by tomorrow 14:43:36 sayan: OK, then I'll make a branch available with the structure 14:43:56 abompard: ok sure 14:44:32 Okaaaaay... I think I'm done with my status update :-) 14:45:05 I don't have anything to update as I was on PTO last week 14:45:15 mizmo: shillman: you have something to update? 14:45:28 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 so i've been waiting on writing up some bounties for hubs development 14:45:48 i think now that the topic for outreachy is set, it's an ok time to work on doing this now 14:46:01 i didnt want to do it earlier bc i didnt want it to compete / clash with the outreachy position 14:46:06 yes 14:46:15 mizmo: can you set a action item for that? 14:46:21 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 sure, im going to start working on it and maybe wait to post until the outreachy application period is over 14:46:51 #action mizmo working on hubs devel bounties, to be posted after outreachy application period closes 14:47:03 #action mizmo working on search designs for outreachy project 14:47:16 if theres anything esle you want me or shillman to look at let us know 14:47:31 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 mizmo: https://pagure.io/fedora-hubs/roadmap?status=Open&no_stones=&milestone=Production 14:48:38 perfect thanks :) 14:49:20 abompard: hah thats the link I was looking for 14:49:34 I landed on https://pagure.io/fedora-hubs/roadmap with hopes for the link :) 14:49:42 :) 14:52:10 moving to open floor 14:52:17 #topic Open Floor 14:52:20 Anything for open floor 14:52:23 ? 14:52:32 Maybe discuss Outreachy? 14:52:42 jonatoni: wanna say something? 14:52:54 yeah 14:53:18 jonatoni|m ^^ 14:53:44 I'm on my phone now actually but today I was trying the widget workshop 14:54:35 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 jonatoni|m: okay, then you can ping once you are online 14:56:16 and talk here with your proposal. 14:56:32 Will do, thanks sayan 14:57:50 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 closing the meeting in 14:58:14 3 14:58:16 2 14:58:18 1 14:58:20 #endmeeting