21:00:15 <nickm> #startmeeting talking about s31 and modularization
21:00:15 <MeetBot> Meeting started Wed Mar 13 21:00:15 2019 UTC.  The chair is nickm. Information about MeetBot at http://wiki.debian.org/MeetBot.
21:00:15 <MeetBot> Useful Commands: #action #agreed #help #info #idea #link #topic.
21:00:20 <gaba> thanks nickm!
21:00:27 <nickm> Hi! Gaba asked me to run meetbot.
21:00:53 <gaba> The idea for this meeting is to check that we are all on the same page about what needs to be done with this project as well as check if we are on track.
21:01:06 <gaba> yes, meeting logs are useful for me later. thanks
21:01:19 <asn> ok. i have all things loaded.
21:01:37 <gaba> There was a meeting in Brussles where it was decided what needed to be done around refactoring.
21:01:48 <nickm> yeah
21:01:53 * catalyst trying to chase down #29201 title discrepancy
21:02:24 <gaba> mm, yes
21:02:37 <catalyst> i think the ticket number is wrong
21:02:45 <gaba> the card in the kanban (that came from burssles) talk about split up contro.c
21:02:49 <gaba> the same ticket number
21:02:51 <catalyst> #29210
21:02:59 <gaba> #29201
21:03:05 <nickm> ack. let's fix kanban and pad
21:03:37 <catalyst> done
21:03:40 <nickm> woo
21:03:41 <gaba> oh, I see
21:03:42 <gaba> thanks
21:03:51 <teor> (It would be really nice to have a board that integrated with trac. There are a lot of typos in the kanban. Which is a problem with manually re-typing stuff.)
21:03:59 <gaba> omg yes
21:04:14 * nickm would benefit from a ticketing system where no ticket's id is a permutation of any other's
21:04:29 * catalyst hopes to not have to dig into Trac guts but maybe that is inevitable
21:04:33 <teor> (Hamming distance)
21:04:56 <nickm> How far away you need to stand from pork while it's curing?
21:04:59 <nickm> ;)
21:05:01 <nickm> anyways
21:05:06 <gaba> :)
21:05:11 <catalyst> yeah i could have been responsible for the transposition because it's something i'm particularly prone to do :-/
21:05:20 <nickm> catalyst: me too though
21:05:29 <gaba> this is what we promised the sponsor:
21:05:30 <gaba> 1. Determine how to best refactor modules to make them more resilient, segregated, and automatically testabl
21:05:33 <gaba> 2. Identify which parts of the codebase are most important to refactor first.
21:05:34 <teor> Systemic issues are not anyone's fault :-)
21:05:36 <gaba> 3. Revise the system of interactions between modules to improve usability and maintainability.
21:05:39 <gaba> 4. Create and deploy plan to incorporate refactored modules.
21:05:42 <gaba> 5. Create documentation for how Tor modules work with one another with both old and new architecture.
21:05:47 <gaba> how far of we are, is that a plan that does not work, we are on trac and everything is fine? thoughts?
21:06:48 <catalyst> i maybe think those "deliverables" are better thought of as guidelines about how we want to go about this rather than discrete well-defined steps or phases
21:06:49 <nickm> so imo: we have 1 and 2 sort of in progress.  3 is also in progress
21:06:54 <nickm> yeah
21:07:27 <nickm> The deliverables were written in a time when we had a proposal and the sponsor said "um we need deliverables" so we wrote some that were sufficiently general to encompas the right thing
21:07:42 <gaba> yes
21:07:46 <nickm> as long as we do the important refactoring and document everything, we are set.
21:08:02 <gaba> ok, so we are fine with that.
21:08:03 <catalyst> is the sponsor expecting us to report things as if they were discrete phases?
21:08:30 <gaba> not really, they are expecting for us to report on what we are doing and plans.
21:08:56 <gaba> We will have to report on 2. (need to check exactly when but not soon)
21:09:31 <nickm> the plan is engineered to make sure we succeed. We should be fine
21:09:34 <catalyst> i guess we kind of already accomplished a lot of 2 in the process or making the roadmap?
21:09:41 <nickm> yes
21:09:46 <gaba> yes. The other question is, from what we are planning to do, is there anything missing?
21:10:14 <nickm> I think that the best time to answer that is in a month or two.
21:10:26 <nickm> Right now we aren't far enough into the plan to know what it is missing
21:10:28 <nickm> IMO
21:10:41 <catalyst> some of our practices stuff isn't exactly refactoring, so we might want to reword (1)
21:11:01 <catalyst> or explicitly add a deliverable about improving practices?
21:11:49 <nickm> Or declare that improving practices is part of making refactoring more viable and "sticky"
21:13:06 <gaba> ok. In two months we should have finish all the issues we have in the backlog in the roadmap for that sponsor. I can add a reminder to check again between everybody then.
21:13:13 <nickm> anyways I think we're on track; we think that "modules" and "subsystems" and "pubsub" are the right directions to move...
21:13:28 <nickm> ... and we think that the "god modules" (control, config) are a good place to start
21:13:39 <gaba> ok, it sounds good
21:13:50 <gaba> asn, teor4: do you have any thoughts about this?
21:13:58 <nickm> and that we should also look at src/core, since it's too big
21:14:09 <gaba> aha
21:14:10 <teor> What about refactors that we needed to do for other sponsors? I have done a significant amount of refactoring for Sponsor V / PrivCount.
21:14:10 <asn> makes sense to me
21:14:41 <teor> Do we want to count that under 31 or V? And if we don't count it for 31, do we at least want to mention it in our 31 reports?
21:15:03 <nickm> So, I don't know if it's kosher to decide whether to bill V or 31 based on
21:15:11 <gaba> It seems to me that we could count under s31 as we have more resources tehre now.
21:15:12 <catalyst> i think 31 as being more proactive rather than reactive
21:15:15 <nickm> whether we have more funding in one or the other. I think not...
21:15:22 <gaba> :)
21:15:28 <gaba> s31 is about refactoring
21:15:33 <gaba> what should we based it on?
21:15:43 <nickm> but I think that in general sponsor V is only paying for "make privcount happen" at this point, and not even all of the work we have left there
21:15:44 <gaba> catalyst: i see
21:15:45 <catalyst> so refactoring that's needed to accomplish some V stuff maybe belongs under V
21:15:50 <nickm> whereas refactoring does fit nicely under 31
21:16:29 <nickm> (that is to say, if V were the only funder, given the amount of cash left in that contract, I would say "minimize refactoring, kludge it together.")
21:16:50 <nickm> but they're not the only funder, so we can do the refactoring under 31, I think
21:16:51 <teor> (that would have been useful to know a bit earlier...)
21:16:52 <catalyst> maybe we can think about 31 as refactoring that we've needed to do for a while but has been too big to do as overhead for something else
21:17:01 <teor> I am thinking of a statement like: "our statistics code is a 'god module' and we have started refactoring it"
21:17:23 <nickm> hm
21:17:33 <catalyst> oh, there's a bunch of existing stats stuff?
21:18:59 <gaba> +1 to 31 as refactoring what needed to be done for a while /catalyst
21:19:00 <teor> catalyst: I'm not sure what you mean?
21:19:18 <catalyst> i hadn't realized that the stats code had become a "god module"
21:19:23 <nickm> catalyst: src/feature/stats tried to grab most of it
21:19:32 <nickm> it isn't a god module in the sense of calling everybody...
21:19:40 <teor> Well, it is called from many places. It doesn't call into many places.
21:19:55 <nickm> but it does have the problem of everybody calling it while it is not (structurally) a dependency of everything else
21:20:25 <nickm> and its design is structured so that it has to know about all the stats anything wants to record
21:20:43 <catalyst> so it has to know lots of data structures that "belong" to other code?
21:21:23 <nickm> there's a little of that. What I meant is that if there's code that does foo, then the stats code has a foo_stats, and if there's code that does bar, then the stats code has a bar_tracker
21:21:46 <nickm> teor: am I about right her?
21:21:49 <nickm> *here
21:22:32 <teor> Yeah, I think we are sometimes good at reducing the data dependency, and sometimes not. But the stats code definitely contains a mishmash of calls and concepts from other modules
21:22:49 <teor> It is also not standardised, which makes it easy to write bad or divergent stats code.
21:22:50 <nickm> maybe less a god module and more a frankenmodule
21:22:52 <nickm> but it's trouble
21:24:24 <gaba> that is all from my side about checking with you all on s31 work :)
21:24:33 <nickm> anyways, I think if we notice that something needs refactoring while we're working on something else, odds are good that we will find that it is the kind of thing we want to refactor anyway
21:24:57 <nickm> gaba: What do we need to do to ensure that we make good progress over the next month or so IYO?
21:25:00 <gaba> yes, it would makes sense to consider to include it here for the next few months
21:25:23 <gaba> nickm: if we are not missing anything from the current roadmap for next two months
21:25:35 <gaba> then we are fine. We can check again in 2 months. There is plenty of work for it.
21:26:05 <gaba> The are a few issues that should have started in March
21:26:14 <gaba> but we are still in march :)
21:26:28 <asn> i have a question wrt roadmap and me. im done with sponsor31 roadmap items for now, but i have another big one in april. and april is when the onion services funding starts. so im not sure how thats gonna balance out
21:26:31 <nickm> let's look at them. I remember one is the control.c split.  catalyst and I are not yet started on that.
21:27:05 <gaba> right asn, that one is with teor
21:27:10 <gaba> #29224
21:27:11 <asn> i think its with nick
21:27:33 <gaba> mmm, which one?
21:27:39 <asn> no its another one about hiding structures
21:27:42 <asn> i saw it before in kanban
21:27:43 <asn> let me try to find it again
21:27:52 <asn> #29209
21:28:00 <gaba> nickm: yes, the ones for march are #29210 as you mentioned and #29219 and #29220
21:28:41 <gaba> oh yes asn, that one is a big one
21:28:42 <asn> not sure if this meeting is the best place to figure this out, but im just mentioning it because it's gonna come up sooner or later, and gaba you are going to be away until april
21:29:08 <teor> I am lagging on my Sponsor V tasks, mainly because they are bigger than I thought (but leave and process changes didn't help)
21:29:09 <nickm> catalyst: we need to coordinate on getting the control.c split-up started in a way that involves minimal blocking-on-each-other
21:29:26 <nickm> teor: ack
21:29:28 <gaba> yes, let's talk later with nickm and see how we can do it or redistribute it
21:29:35 <gaba> asn*
21:29:39 <asn> ack
21:29:40 <teor> So I am happy if someone wants to do an initial design or draft of Sponsor 31 tasks, and then ask me to look at it
21:29:50 <catalyst> nickm: yeah that might be a good idea but i'd have to look more closely to see how feasible that is
21:30:14 <gaba> asn: let's chat the first week of april about it.
21:30:27 <asn> gaba: ok
21:31:22 <gaba> ok?
21:31:28 <nickm> wrt best-practices, we mainly decided to focus on the ones we can measure, like complexity metrics
21:31:33 <nickm> there are more we could do
21:31:56 <nickm> reducing type visibility is nice and incremental, since we can do that one at a time
21:34:29 <gaba> it makes sense
21:34:59 <gaba> is everybody ok with the work for this for the next 2 months ? (other than asn that we talked later)
21:35:28 <nickm> I think we have some progress here.  Is there more we should figure out before we let the sleepy people sleep and the early people have breakfast and the nickm people make dinner? :)
21:35:33 <gaba> s/talked/talk
21:35:44 <nickm> I think we'll be fine for at least a few weeks till you're back :)
21:36:07 <gaba> yes :) I just wanted to make sure we are not missing anything here but is fine
21:36:36 <gaba> thanks for waking up early or staying up late!
21:37:02 <nickm> ok. meeting done?  I'll be around, on and off, for at least 20 min
21:37:20 <asn> thanks for meeting!
21:37:21 <gaba> yep
21:37:36 <nickm> peace all
21:37:39 <nickm> #endmeeting