15:02:42 #startmeeting Tor Browser Weekly Meeting 2024-02-12 15:02:42 Meeting started Mon Feb 12 15:02:42 2024 UTC. The chair is PieroV. Information about MeetBot at http://wiki.debian.org/MeetBot. 15:02:42 Useful Commands: #action #agreed #help #info #idea #link #topic. 15:02:53 pad: https://pad.riseup.net/p/tor-tbb-keep 15:05:36 o/ 15:05:43 o/ 15:05:45 o/ 15:05:49 this was one of the weeks we are supposed to break down our work by % for time tracking was it? by meeting or "on scheduled work or... "reviews"? 15:05:51 sorry had an unexpected amount of obligations this morning 15:06:00 o/ 15:06:04 richard: do you want to take it from here? I've started the bot, but I'm still updating my pad section 15:06:06 oh hey richard ! 15:06:41 dan_b: yeah, please track your %'s spent on ${tasks}, depending on what your tasks are 15:07:14 may be useful to spit by development/feature work, reviews, meetings+communications, bugs/unexpected maintenance, and release prep 15:07:18 split by* 15:09:03 (and again the purpose here is accurately estimate how much 'free' time we have as a team for development and feature work) 15:10:20 back 15:11:13 Speaking of release preparation, this week is release week 15:11:20 Well, not really release, but release preparation week 15:11:22 so this week we have a scheduled rebase to 115.10 iirc 15:11:25 yes! 15:11:27 .8 15:11:36 I've been trying continuous rebase on alpha 15:11:46 (as a concept, with some manual effort, not automatic yet) 15:11:56 So, the alpha rebases should arrive pretty soon 15:12:08 And the stable rebases usually are trivial 15:13:23 i'll plan on release prep'ing Mullvad Browser 13.0.10 tomorrow once it's rebased to build overnigh 15:13:46 wfm 15:14:47 PieroV: could you give a overview of what we (you me boklm) chatted about w/ regard to a potential long-term strategy re major ESR rebases 15:15:15 Yes, I also added to today's discussion points :) 15:15:25 well excellent 15:15:47 i'll hand it over to discussion points then as i have no other announcements or discussion points 15:16:14 So, I would like to have a "continuous rebase" pipeline (possibly linked to tests) for the current ESR 15:16:41 But I wondered if it's possible to actually make something to rebase on top of mozilla/release more often 15:17:51 And to get started with that, I wondered if we can reach 128 by rebasing version by version, instead of rebasing all at once when 128 reaches nightly 15:18:18 And especially, if there's a smart way to detect the exact commits that conflict while doing so 15:19:14 Long story short, I didn't succeed so far to find a good strategy to achieve this 15:20:46 However, I did have some free hours in a train and in a bus, and I've started rebasing version by version 15:20:56 Onto the FIREFOX_MAJOR_0_RELEASE tag 15:21:30 In around 5-6 hours I went back to 115's fork point and rebased up to 120 15:21:48 Some majors were very easy, whereas some other versions are harder 15:22:20 But so far it seems to me that the range-diff and diff-of-diffs were much easier to understand when you go version by version 15:22:30 Compared to a 13-version big skip 15:22:40 PieroV: yes this makes sense 15:23:01 And those 5-6 hours included some failed experiments (maybe 7 hours, at most) 15:23:18 It makes less than 1 hour and a half on average, which could be split during the year 15:23:29 Well, with two caveats 15:23:33 how much time do you reckon it took per-version? did you experience a lot of variability between versions in terms of difficulty to resolve conflicts? 15:23:39 The first one is that I didn't build 15:23:48 I've just rebased and self-reviewed the rebases 15:24:17 But once we have some CI mechanisms they could take care of building (+ linting) 15:24:24 PieroV: seems like better test coverage for Tor Browser's patches might tie into this? 15:24:32 Jeremy_Rand_36C3[m]: definitely 15:24:38 I have so many ideas about this 15:25:03 But one of the ideas it that we could run incremental builds whenever we change something on the rebase branches 15:25:12 And then run tests 15:25:40 The second caveat is that I dropped two patches (well, one and a half) 15:25:54 One is the change to make HTTP onion forms look like HTTPS 15:26:08 It's a small one, but it would've required me to at least build 15:26:17 PieroV: yeah this sounds like an area that would be a nontrivial initial workload, but would yield a massive payoff medium to long term 15:26:19 that patch tends to need frequent updating iirc 15:26:41 Actually it's in the onion service security expectations 15:26:49 So, I didn't drop the whole patch, only that part 15:26:56 Which is kinda small 15:27:12 I'm sure in a few hours we can re-implement it 15:27:35 (and longer-term see what stuff Moz already accepted behind the pref to make onion treated as HTTPS) 15:27:58 The second patch I had to (half) drop is the custom switch 15:28:22 Moz did a big refactor there, and I'm not sure on how the button looks like after that change 15:28:52 But it's quite self-contained, and probably easy to fix 15:29:15 Apart from that, I noted to myself that we'll need a few changes in prefs, for example (but not that many) 15:29:24 In general, I've kept a log of all the conflicts 15:29:34 Which can help to reverse-engineer the time I took to deal with each version 15:29:59 Because I divided it by version (this should partially answer one of richard's questions) 15:30:18 well 15:30:25 The log itself is a 420-line markdown file 15:30:40 With the 80-columns margin respected and many empty lines 15:31:03 given how little relative time it took to get that much progress, maybe this is something we should start doing as part of the monthly rebase process 15:31:24 after esr128-based brwosers are released 15:31:40 So, tomorrow we'll get the tags for Firefox 123 15:31:55 I've done this during some dead times I had on my own 15:32:18 But if I can start working on that after the installer, I could try what following beta tags is like 15:32:47 Because it might be that some "continuous rebases" might succeed automatically 15:33:04 I was thinking of beta tags because they're an easy enough way to split the codebase 15:34:21 As for the continuous 15:34:29 rebase experiment I've done last wek 15:34:46 I think the easiest implementation would let the bot do all the cherry-picks 15:35:12 Because I've tried also the git-cherry command, but didn't work very well for in our codebase 15:35:48 how do you mean? 15:35:59 let the bot do all the cherry-picks 15:36:13 Yes, I was thinking to the next steps already :) 15:36:37 Rebasing tor-browser on top of the updated base-browser branch, and shuffle patches around 15:37:34 I will have to look if someone invented some strategy to resolve conflicts when you know the final result already 15:38:17 (one of my attempts was cherry-picking and stopping at the first conflict, and then start rebasing, since cherry-pick is much cheaper than rebasing 180 commits every time) 15:38:40 But generally speaking, I got conflicts earlier (which is expected, but I somehow hoped that git would do some magic for me) 15:40:49 Also, I was thinking that the bot should somehow checked if you force-pushed to its working branch before doing anything 15:41:00 (e.g., if you solved conflicts manually) 15:41:19 And this is the scenario in which I expect it to break if you start also cherry-picking commits it didn't cherry pick yet 15:44:01 so long term, i would love to spread out the major esr release work more thinly, across more people over more time 15:44:41 That would make sense, especially if we can somehow automate the majority of it 15:44:43 in the past that hasn't really been an option due to all the other things we had to squish into the same time-frame 15:44:49 indeed^ 15:45:12 we also need a similar examination of what would need to happen for firefox-android 15:45:32 As Jeremy said, once we're on par (more or less) with Moz, it might become much easier 15:45:40 yeah it sounds like improving the automation here would open up some good possibilities 15:45:47 Right, I haven't worked on Firefox Android yet 15:45:49 especially testing 15:45:52 >:[ 15:45:56 But we'll need a better patchset first 15:46:02 yeah agreed^ 15:46:14 Not sure I've said that by voice to richard and boklm at FOSDEM or to everybody 15:46:44 But I think this year we might avoid the traditional strategy on Android 15:46:56 And instead try to analyze and split what the patches do first 15:47:19 And just re-implement htem 15:47:26 The risk is to lose some of them 15:47:42 But this is a concern also for the desktop rebase spread in major versions 15:47:59 It's easier to review, but maybe errors could accumulate over a much higher number of rebases 15:49:09 PieroV: yes. And it sounds like better test coverage would decrease that risk too 15:49:49 Yep. On the other hand, RR is hard 15:49:59 And we don't want too much stress on the team 15:50:16 But not actually releasing might be enough not to create too much stress 15:50:44 Even though eventually we could also spread audits all over the year 15:51:05 Right, as I said, this sounds like a nontrivial effort up-front but a big payoff in terms of effort long-term 15:51:34 Anyway, I've seen dan also has a point for today? 15:51:46 (sorry this took so much time, I've noticed only now) 15:51:53 :) 15:51:53 lol no worries 15:51:58 alright dan you got 6 mins 15:52:14 just wondering if ppl wanted to discuss the tor-expert-bundle .aar ification in real time quickly? 15:52:34 I've added a few comments to the MR 15:52:40 yes me too^ 15:52:47 proposals so far from comments include: tor-expert-bundle for android dropping the .tar.gz and only doing a .aar and making a new project that consumes it and then produces the .aaar 15:52:49 Long story short, my biggest concern is that maybe we don't want to do it in the expert bundle 15:53:17 Yep, I don't know if we actually have consumers on Android 15:53:23 I think the majority of consumers are on Windows 15:53:30 i'm pretty sure projects like tor-android-service spit out two files so i can prolly make tor-expert-bundle do a .tar.gz AND a seperate .aar? 15:53:31 And I know someone on macOS 15:53:42 (alternatively the 'tor expert bundle' project could output a .aar for android rather then the current .tar.gz) 15:53:48 dan_b: you can create a directory instead of a file 15:53:52 Like the firefox project 15:53:54 gotcha 15:53:56 And maybe also the browser project 15:53:58 all the desktops skus are consumed by ricochet-refresh :) 15:54:06 At that point you can output both the tarball and the aar 15:54:30 But for aars a Gradle/Maven repo would be best 15:54:44 ok that seems the least commital approach. do both, seperatly, in tor-expert-bundle for now, and we can cut down on one later if need be 15:54:47 But I think we should include micah in the conversation for that when he has some time 15:55:08 wfm 15:55:11 👍 15:55:15 thanks for your time! 😄 15:55:39 We are close to the hour, can I call the bot? :) 15:55:49 do it! 15:55:49 yeah nothing on my end today 15:56:13 Thanks for handling the bot today PieroV ! 15:56:18 :) 15:56:19 Okay, thanks everyone! 15:56:22 #endmeeting