Files
2026-10-15 09:50:58 +00:00

1480 lines
63 KiB
JSON
Executable File

{
"schema_version": 1,
"note_id": "NtgNJ-Y-Qxy5sMGMjngukw",
"title": "Dominik Kapusta's Personal Meeting Room 2026-10-06 15:12(GMT+6:00)",
"meeting_date": "2026-10-06",
"source_url": "https://us01mynotes.zoom.us/NtgNJ-Y-Qxy5sMGMjngukw",
"transcript": [
{
"time": "15:12:26",
"speaker": "Alex Martemyanov",
"text": "Yeah, no problem."
},
{
"time": "15:12:29",
"speaker": "Dominik Kapusta",
"text": "Райт. Хауинг?"
},
{
"time": "15:12:34",
"speaker": "Alex Martemyanov",
"text": "I think I'm doing pretty good."
},
{
"time": "15:12:37",
"speaker": "Dominik Kapusta",
"text": "Майс?"
},
{
"time": "15:12:41",
"speaker": "Alex Martemyanov",
"text": "And I'm just doing a lot of stuff. Uh, recently… So, uh… Mainly, mainly, mainly what data priority is saying, the CPM. And, uh, release maintenance this week. to Liberace. It's gone. But I'm trying to go through the crashes that we have at least."
},
{
"time": "15:13:10",
"speaker": "Alex Martemyanov",
"text": "Identified several web kits, probably related to macOS 27 update."
},
{
"time": "15:13:15",
"speaker": "Dominik Kapusta",
"text": "Угу?"
},
{
"time": "15:13:16",
"speaker": "Alex Martemyanov",
"text": "And, uh, trying to investigate deeper. For the top priority, the CPM crash, we started receiving the data, the attribution data and fixes results and well, surprise, surprise. Nothing helps. And the attribution data shows like regular normal initialization flow failure. Uh, and uh… nothing. So, yeah, we are…"
},
{
"time": "15:13:48",
"speaker": "Dominik Kapusta",
"text": "Даже? Салют, Фикс Ди Донт Хэлп?"
},
{
"time": "15:13:53",
"speaker": "Alex Martemyanov",
"text": "The fact that this didn't help, uh, the fix… I mean, the… the… Uh, the fixed, uh… The one that, uh, was released, that put to the release, it's not active yet. Uh, the… background process crash one. But… Probably… probably it's not the case, actually, because the pixel data does not identify the ground terminations. So… Well, it is the kind of… Lab reproduced issue. But it's probably not the case that users are experiencing and the cases. Actually, it is mitigated by WebKit itself after we release its navigation cycle, so it was only a prelude standard. special conditions that we are not… they are not proof, basically, so probably I'm gonna revert the fix."
},
{
"time": "15:14:58",
"speaker": "Dominik Kapusta",
"text": "Окей?"
},
{
"time": "15:15:01",
"speaker": "Alex Martemyanov",
"text": "And, uh… Yeah, there is some… Mmm… So, one fix, uh, was about the tab management, and, uh… It didn't show up as a…"
},
{
"time": "15:15:18",
"speaker": "Dominik Kapusta",
"text": "Угу?"
},
{
"time": "15:15:22",
"speaker": "Alex Martemyanov",
"text": "Something actually affecting a lot of users, and those cases were probably some single ones, if they were… Uh, at all. I mean, it's not the… Thousands that we are receiving. And, uh… At least we've, uh, leaned… Cleaned up this piece. And, uh… know the conditions. Uh, there is one hypothesis that I'm working on about the WebKit initialization race condition that was fixed. Uh, in macOS 27, but we are still receiving the reports from macOS 27, but there is… there is not a strong…"
},
{
"time": "15:16:11",
"speaker": "Dominik Kapusta",
"text": "Ооо?"
},
{
"time": "15:16:15",
"speaker": "Alex Martemyanov",
"text": "Uh, proof. that the fix… It was actually released in macOS 27.0. Uh, so, I… Started. I found out the… Well, actually, I've… Mainly with the help of codecs, but we managed to find the relation between macOS versions and. matching webkit releases. So I'm gonna publish it to Apple Documentation and talk about it in the Apple Weekly today."
},
{
"time": "15:16:52",
"speaker": "Dominik Kapusta",
"text": "Угу? Угу?"
},
{
"time": "15:16:56",
"speaker": "Alex Martemyanov",
"text": "Hopefully it could help somebody else in the investigation, in getting fit issues. Uh, the relationship between macOS versions and WebKit releases, so we could… so we could know exactly which bug was fixed where, because there is a fix in our web extensions system, and for sure it was there, uh…"
},
{
"time": "15:17:08",
"speaker": "Dominik Kapusta",
"text": "Оу. Окей? Оу, найс?"
},
{
"time": "15:17:19",
"speaker": "Alex Martemyanov",
"text": "before Mac OS 27. But, I still didn't finish this research and, have no, you know, proof that the fix. that the issue is affecting us, but it could. And it looks like a very good candidate, uh, to fix it, and, uh, if it's… If, uh, if it's proved, uh, it means the actual issue is found, and, uh… It's gonna be fixed."
},
{
"time": "15:17:48",
"speaker": "Dominik Kapusta",
"text": "Найс. Гай."
},
{
"time": "15:17:49",
"speaker": "Alex Martemyanov",
"text": "But if not, I will… I'll keep the research, probably send an update to the project, maybe a bit more time. Thank you. And keep trying to. To find the issue… maybe we'll have another iteration of some… Excel data attribution. Uh, especially having the most cases in this, like, normal workflow. So basically, we're not receiving the, uh, the response to the init event, and everything seems fine. No crashes, no… leakages, no…"
},
{
"time": "15:18:28",
"speaker": "Dominik Kapusta",
"text": "Та?"
},
{
"time": "15:18:29",
"speaker": "Alex Martemyanov",
"text": "Reloads, just regular launch, regular load, and… Silence. Those are, in most cases. Uh, but at least, uh, like, no data is still a data. Yeah, at least other cases are mostly filtered out. So, uh, another iteration is going on. Uh, yeah, I am investigating the crashes. that we have in Sentry. In scope of… Reduce maintenance. Um…"
},
{
"time": "15:19:04",
"speaker": "Dominik Kapusta",
"text": "Гм?"
},
{
"time": "15:19:06",
"speaker": "Alex Martemyanov",
"text": "So luckily everything else. Seems… and a good… And… And, uh, yeah. made some more efforts to. keep the VS Code migration project going. Um, so yeah, you've seen that, and, uh, I actually opened the draft PR, uh, that already works in VS Code, and, uh, yeah, I'm… I actually work in this branch and these changes and it just works. You just open the project file, and it loads, and indexes, and builds, and debugging in there, and yeah, it's… it's working fast, and, uh, there is version manager and everything else, so compared to Xcode, it's, like, really… step forward."
},
{
"time": "15:19:53",
"speaker": "Dominik Kapusta",
"text": "Найс?"
},
{
"time": "15:19:58",
"speaker": "Alex Martemyanov",
"text": "Especially having all these bugs in Xcode 27. I tried using it, it's unusable, basically. compared to Xcode 26. Its window blinks, it hangs."
},
{
"time": "15:20:10",
"speaker": "Dominik Kapusta",
"text": "Интенько?"
},
{
"time": "15:20:10",
"speaker": "Alex Martemyanov",
"text": "If you try to render some diffs for… A bit larger files, it just hangs, as usual."
},
{
"time": "15:20:16",
"speaker": "Dominik Kapusta",
"text": "Угу?"
},
{
"time": "15:20:17",
"speaker": "Alex Martemyanov",
"text": "I didn't crash yet, but anyways, I don't find it really usable product."
},
{
"time": "15:20:21",
"speaker": "Dominik Kapusta",
"text": "Интростинг?"
},
{
"time": "15:20:24",
"speaker": "Alex Martemyanov",
"text": "So hopefully it could. It could be a good product to show the commitment. And yeah, I made some measurements. Of course, I, uh… I understand it includes all these extra build steps like VPN and, DBP targets. And, uh, several extra steps that XcodeBuild includes and VS Code does not. But… Compared to the… Regular testing builds that we are… it's like… Those who don't use DBP or VPN are using it, like, twice speed up."
},
{
"time": "15:21:07",
"speaker": "Dominik Kapusta",
"text": "Yeah, yeah, yeah. Um… Dots. Cool. Overall, that's cool. I'm also wondering… If we could use it. For AI agents in the cloud, for instance, like to speed them up. Uh, when it comes to… when it comes to, like, debugging issues, you know, like, I don't know, fixing crashes, things like that. We're… we don't do it at all right now, but just…"
},
{
"time": "15:21:31",
"speaker": "Alex Martemyanov",
"text": "And…"
},
{
"time": "15:21:41",
"speaker": "Dominik Kapusta",
"text": "just thinking about possible future users of this. Of course, Xcode build is the default build system, and so on and so on, but… If we can speed up a build. drastically by using Swift Package Manager essentially, right?"
},
{
"time": "15:22:06",
"speaker": "Alex Martemyanov",
"text": "Well, it's the next step. I already started another work 3D from this, from VS Code main migration, so there is some corners."
},
{
"time": "15:22:14",
"speaker": "Dominik Kapusta",
"text": "Mm-hmm."
},
{
"time": "15:22:17",
"speaker": "Alex Martemyanov",
"text": "present. First of all, there is the files cleanup. Files by target cleanup is not complete yet. I just made it work by moving the files that are not included in the main browser target, but there is still some work to move. To the right places, to… make the shared packages used by several targets. It's like a… And… ideal picture that we'd like to see in the future, I think. But it's even blocking this stage. And the next stage is the tests. So first of all, the tests are not migrated at this step. It's only the main app. And, uh… but the next step is already made, uh, about the unit tests. So basically, those should not be tied to the app. Because we are supposed to be unit testing and not integration testing, so the app delegate was cut, the, uh, dependencies were moved away, and, uh, all these tab loading, uh."
},
{
"time": "15:23:11",
"speaker": "Dominik Kapusta",
"text": "Yeah, of course, of course."
},
{
"time": "15:23:21",
"speaker": "Alex Martemyanov",
"text": "There were many dependencies. added to the tab since the last screen up. It was made to unit tests, and, uh, they added some complexities. But, uh, so currently, at my next work three, uh."
},
{
"time": "15:23:28",
"speaker": "Dominik Kapusta",
"text": "Mm-hmm."
},
{
"time": "15:23:36",
"speaker": "Alex Martemyanov",
"text": "Unit tests are working under Swift build and Swift test. Integration tests are not touched yet, and they are kind of broken from if you run from VS Code, but they are still run from the Xcode target as before. Uh, so that's the state, so it's just, uh, the… Beginning of our… Clean up project, I'd say, and. I think it's worth doing it and. Just to keep, um… To keep the technical debt cleaned up. So yeah, I'm not sure yet about the integration tests, but uh… If… If it works out… Again, in the perfect world, there should be a delegate mock. in the test that's required. And there should be a window mocks in the test that are testing integration inside a window. And supposedly nothing should stop us from using Swift testing in the integration test as well."
},
{
"time": "15:24:40",
"speaker": "Dominik Kapusta",
"text": "Mm-hmm."
},
{
"time": "15:24:49",
"speaker": "Alex Martemyanov",
"text": "But of course, it would be much more work to handle all of that."
},
{
"time": "15:24:56",
"speaker": "Dominik Kapusta",
"text": "Mm-hmm."
},
{
"time": "15:24:57",
"speaker": "Alex Martemyanov",
"text": "But, uh, yeah, uh, speaking of, uh, the general speed up. I'm not sure if it would be the real case here, unless we want to… move further and, migrate the unit tests to Swift, to Swift tests. Essentially making them parallelized. Uh, if they don't depend on the main thread, because most of them do at the moment."
},
{
"time": "15:25:24",
"speaker": "Dominik Kapusta",
"text": "Mm-hmm."
},
{
"time": "15:25:32",
"speaker": "Alex Martemyanov",
"text": "But if, uh, if you just build the whole build with the DPP and VPN targets and so on, it's just… Essentially the same amount of work. Maybe there is a speed up, like… 2 to 5 seconds, but it's not, uh…"
},
{
"time": "15:25:48",
"speaker": "Dominik Kapusta",
"text": "Mm-hmm."
},
{
"time": "15:25:49",
"speaker": "Alex Martemyanov",
"text": "It's not very acceptable."
},
{
"time": "15:25:51",
"speaker": "Dominik Kapusta",
"text": "You know. um… All right, that sounds… that all sounds good. There's one thing that I wanted to bring your attention to, which is, uh… how you're running this work, uh, these days, and what happened on the Apple Weekly recently, and that proposal that you had, uh, that was… mentioned in the Apple Weekly and then quickly closed. Uh… Let me bring it back. Code initialized, code data model, those… Yeah, okay, it's essentially a no-op, because Xcode 27, uh… handle that. Uh…"
},
{
"time": "15:26:52",
"speaker": "Alex Martemyanov",
"text": "Yeah, so generally, I think it was a pretty good discussion happening there, yeah."
},
{
"time": "15:26:57",
"speaker": "Dominik Kapusta",
"text": "Mm-hmm."
},
{
"time": "15:27:01",
"speaker": "Alex Martemyanov",
"text": "So we… had a small talk with Sam and Bartek, basically, in the tech design, and so general agreement was that, yeah, it's worth doing, maybe, at some point, but we have a really good validation of. The migration is working and nothing breaks. So that would include testing on all the supported operating systems and migration prompt. I have some of the major browser releases, but… Again, I think it was doable, and maybe it's actually worth doing at some point, and maybe there is still some migration issues that we may experience from the older browser versions that we. Okay. As I remember, there's, uh, not… not much related to actual database migration, and it was mostly relying on the Core Data native migration system that."
},
{
"time": "15:28:10",
"speaker": "Dominik Kapusta",
"text": "Hmm, yeah."
},
{
"time": "15:28:11",
"speaker": "Alex Martemyanov",
"text": "It was only recently updated to some smart… migration techniques. In the recent, uh… I'll go to service assigning. So, uh, I won't tell it's, like, 100% closed, but yeah."
},
{
"time": "15:28:28",
"speaker": "Dominik Kapusta",
"text": "Mm-hmm."
},
{
"time": "15:28:30",
"speaker": "Alex Martemyanov",
"text": "using good judgment that it just works, and, uh, Expo 27 supports it, uh, building without problems, uh, just requiring a minor cleanup of the fact."
},
{
"time": "15:28:33",
"speaker": "Dominik Kapusta",
"text": "Hmm. Mm-hmm."
},
{
"time": "15:28:41",
"speaker": "Alex Martemyanov",
"text": "used to compile it in runtime, towards just letting it live as it is, along with the files that are not currently moved to shared packages and so on. So just to…"
},
{
"time": "15:28:52",
"speaker": "Dominik Kapusta",
"text": "Mm-hmm."
},
{
"time": "15:28:54",
"speaker": "Alex Martemyanov",
"text": "So just to reduce the amount of attention of other team members and my attention as well."
},
{
"time": "15:29:01",
"speaker": "Dominik Kapusta",
"text": "Mm-hmm. Yeah."
},
{
"time": "15:29:02",
"speaker": "Alex Martemyanov",
"text": "in order to keep getting things done and not getting things perfect."
},
{
"time": "15:29:12",
"speaker": "Dominik Kapusta",
"text": "Fine. One thing that I wanted to raise here is… You're doing this… Some people… could say for yourself, essentially. Because, uh, we aren't really… that much upset with Xcode, and people are just using Xcode and not trying to find, uh… alternatives. Uh, probably not as much. As they would… Be interested in it. Before Xcode MCP? Uh, but now, when… when agents can use Xcode MCP, it's probably not that much of a deal-breaker, uh, to have to continue using, uh, Xcode. And, uh… It seems to me, which can be seen also in some comments from the team, that. that people are not on board with… not… I mean, they are not as excited about it as you are, and they are asking questions, and one of them was from Juan on your project. Uh, ask last week, where he outlined a few… Doubts? And…"
},
{
"time": "15:30:33",
"speaker": "Alex Martemyanov",
"text": "Yeah, and basically, I answered that question recently. Provide… updating the description, and uh… providing the benefits, and uh… metrics of, the build times."
},
{
"time": "15:30:49",
"speaker": "Dominik Kapusta",
"text": "Okay, that's good, but… Well, are you aware that… No one gets a notification about that. So, if Juan asked a question and you put some… Additional description in the task."
},
{
"time": "15:31:14",
"speaker": "Alex Martemyanov",
"text": "No, I mean, I did done sorts, didn't I?"
},
{
"time": "15:31:20",
"speaker": "Dominik Kapusta",
"text": "I, I can't see your comment."
},
{
"time": "15:31:23",
"speaker": "Alex Martemyanov",
"text": "Mmm…"
},
{
"time": "15:31:24",
"speaker": "Dominik Kapusta",
"text": "Well, you mentioned updated the description, adding the benefits of the project, that's fine, but it's…"
},
{
"time": "15:31:24",
"speaker": "Alex Martemyanov",
"text": "Here's the findings."
},
{
"time": "15:31:32",
"speaker": "Dominik Kapusta",
"text": "Uh… how to say that? It could have been done more, uh… I mean, it's not clear that you're addressing Juan's doubt here. You could… you could have, as well, just ping Juan and say… and write, like. here you are, here's how things look like. You… you could steal, like, other command below your command, and uh… And ping one and mention that the benefits are now in the description. You can say I mentioned that in my previous comment, but maybe that wasn't too clear, so please have a look. Just to be sure that…"
},
{
"time": "15:32:15",
"speaker": "Alex Martemyanov",
"text": "Mm-hmm. Oh, yeah."
},
{
"time": "15:32:20",
"speaker": "Dominik Kapusta",
"text": "That they got the message, because you're doing a good job, but it may be misunderstood or not understood by some people on the team."
},
{
"time": "15:32:33",
"speaker": "Alex Martemyanov",
"text": "Yeah, probably let me just use this Asana answer feature. Under the comments, and…"
},
{
"time": "15:32:40",
"speaker": "Dominik Kapusta",
"text": "Yeah, that makes sense."
},
{
"time": "15:32:41",
"speaker": "Alex Martemyanov",
"text": "Mention the… the update."
},
{
"time": "15:32:44",
"speaker": "Dominik Kapusta",
"text": "Yeah, okay. Um… no. But also, it is something that… The team is overall uncertain about when it comes to… Complexity of your changes? And we may be in a sort of a bubble, the two of us, because I've reviewed a lot of your code, and I'm used to big changes, and I'm just reviewing them, and I understand what is changing most of the time. And if I see a, like, that pull request recently, which had 8,000 lines of code added, 17,000 removed, I didn't freak out, because I saw that the localizable strings. file, so that's all good, and you've verified with me that it's just… deleting some strings that were never used, so that's… that's good. But… the rest of the team… Maybe just not… maybe, like, more sensitive overall, and, um… And it's important to… To keep them calm, essentially, to…"
},
{
"time": "15:33:55",
"speaker": "Alex Martemyanov",
"text": "And maybe should I, uh, have another… another talk during today's Apple Weekly? And, uh, go through the steps that were already completed and, uh, the ones that… remaining… Uh, kind of justifying the, uh, the path forward, and for those who are kind of hesitant or don't want to switch to… give an explanation of what is changing and the changes, not not as big as it."
},
{
"time": "15:34:30",
"speaker": "Dominik Kapusta",
"text": "Yeah."
},
{
"time": "15:34:30",
"speaker": "Alex Martemyanov",
"text": "May… as it may sound."
},
{
"time": "15:34:32",
"speaker": "Dominik Kapusta",
"text": "Yeah. I think this… I think this is a good idea. Essentially… Making your work… more… approachable… by the rest of the team. So. If you have the time. to prepare some short talk about this on… for today's Apple Weekly, that's great. Um, but… But… Ideally. Ideally, make it so that… It shows a clear improvement. For those, also for those that… aren't looking to switch from Xcode to VS Code. Is there? Any improvement? Actually, I think there is, right?"
},
{
"time": "15:35:31",
"speaker": "Alex Martemyanov",
"text": "Yes, so, yeah, basically edited to the… to the project benefits and section. So, basically, there is a fixed list of the tasks completed."
},
{
"time": "15:35:36",
"speaker": "Dominik Kapusta",
"text": "Yeah, in that table, right? Mmhm."
},
{
"time": "15:35:42",
"speaker": "Alex Martemyanov",
"text": "Like the code separation and clean up overall."
},
{
"time": "15:35:46",
"speaker": "Dominik Kapusta",
"text": "Mm-hmm. No."
},
{
"time": "15:35:49",
"speaker": "Alex Martemyanov",
"text": "Moving to… Six packages, unifying the compile flags, dropping storyboards, and…"
},
{
"time": "15:35:55",
"speaker": "Dominik Kapusta",
"text": "Mmhm."
},
{
"time": "15:36:00",
"speaker": "Alex Martemyanov",
"text": "Moving to the UI test instead of the sandbox test tool. Dropping dead files and unifying asset access and core database models access after the discussion."
},
{
"time": "15:36:07",
"speaker": "Dominik Kapusta",
"text": "I don't know."
},
{
"time": "15:36:16",
"speaker": "Alex Martemyanov",
"text": "Um, they're localizable, clean up, and, uh, so basically nothing changed in that, but, uh, they are now. targeted to a bundle, which is, like, again, the unifying of the codebase, and maybe give a short glimpse about the tests and the further cleanup that remains."
},
{
"time": "15:36:24",
"speaker": "Dominik Kapusta",
"text": "Yeah. Mmhm."
},
{
"time": "15:36:35",
"speaker": "Alex Martemyanov",
"text": "after the project is dropped in. Again, there is, uh… Um, so we… Essentially, we eliminate the, uh, project file merge conflicts, because, uh, if we use SPM targets, they are just… Placed into the folder and match the target."
},
{
"time": "15:37:02",
"speaker": "Dominik Kapusta",
"text": "Mm-hmm."
},
{
"time": "15:37:03",
"speaker": "Alex Martemyanov",
"text": "What else? The dependency structure. Like, for some routing for… for storyboards and related crash reports when the app is removed. And… So, basically, those are little… Steps. that are improving this sequentially. And, uh… Probably should not be highlighted as a, like, hundred percent CS code migration required for everybody in the in this room."
},
{
"time": "15:37:35",
"speaker": "Dominik Kapusta",
"text": "Mmhm."
},
{
"time": "15:37:35",
"speaker": "Alex Martemyanov",
"text": "But general improvements that also bring the VS Code compatibility and as basically adding another build target and another workspace file that should not be. Uh, wouldn't… won't be required to manage manually, because it just works."
},
{
"time": "15:37:58",
"speaker": "Dominik Kapusta",
"text": "Yeah, um… Yeah, yeah, that would be… that would be good, um… There's one… more thing that… Many people on the team would be interested. in I believe and that is the iOS app."
},
{
"time": "15:38:25",
"speaker": "Alex Martemyanov",
"text": "Somebody needs to volunteer, I guess. Well, I was, uh, thinking… I was considering to…"
},
{
"time": "15:38:27",
"speaker": "Dominik Kapusta",
"text": "Yeah."
},
{
"time": "15:38:33",
"speaker": "Alex Martemyanov",
"text": "to take the iOS app after this project is complete, finished, and done, and closed. Uh, so I have, like, some time slots to… to make some iOS, uh… Impact. And the first thing to do about it is the navigation framework migration, of course, which was discussed, and I think it's being discussed, but nobody really. And he's approaching to it. Another thought I did have is the… the further Swift packages separation, because currently we have around 1,700 code files in the main target, and it takes really long to index and to build. And… Actually parallelizing it and separating the responsibilities is… May sound like a good idea. Of course, not as a single step, and not at this point in time. But maybe some some things could be moved out and unified again between iOS and macOS code base."
},
{
"time": "15:39:50",
"speaker": "Dominik Kapusta",
"text": "Mm-hmm. Mm."
},
{
"time": "15:39:50",
"speaker": "Alex Martemyanov",
"text": "For example, UI components, like we have a lot of shared components. A lot of third. Mmm… Components in the design system, and we have a lot of. macOS unique components that can be moved to some package, for example, the buttons. address field as a separate package that could be like tested and so on and so on. Uh… no. So. I don't have a roadmap for it or a concrete plan."
},
{
"time": "15:40:27",
"speaker": "Dominik Kapusta",
"text": "No."
},
{
"time": "15:40:27",
"speaker": "Alex Martemyanov",
"text": "I don't know, but… Probably it would be a good AR maintenance project. As well. Just worth, uh…"
},
{
"time": "15:40:36",
"speaker": "Dominik Kapusta",
"text": "Mmhm."
},
{
"time": "15:40:39",
"speaker": "Alex Martemyanov",
"text": "reaching at some point."
},
{
"time": "15:40:41",
"speaker": "Dominik Kapusta",
"text": "Mm-hmm."
},
{
"time": "15:40:43",
"speaker": "Alex Martemyanov",
"text": "Certainly, certainly not, not today."
},
{
"time": "15:40:46",
"speaker": "Dominik Kapusta",
"text": "Yeah, yeah, um."
},
{
"time": "15:40:52",
"speaker": "Alex Martemyanov",
"text": "Yeah, maybe it's worth mentioning further. Improvement roadmap that just to give. people some thoughts about to to think about the perspectives. So… I'm not really into the iOS code base and can't say I understand how it works in a whole."
},
{
"time": "15:41:14",
"speaker": "Dominik Kapusta",
"text": "Hmm. Sure. I agree. I mean, I understand that."
},
{
"time": "15:41:20",
"speaker": "Alex Martemyanov",
"text": "So…"
},
{
"time": "15:41:24",
"speaker": "Dominik Kapusta",
"text": "I understand that for sure."
},
{
"time": "15:41:26",
"speaker": "Alex Martemyanov",
"text": "So, probably it's more of a iOS-dealized responsibility, I'd say, but yeah, I'm kinda open to help or to guide, to make some parity if there is anybody to…"
},
{
"time": "15:41:31",
"speaker": "Dominik Kapusta",
"text": "Mm-hmm. Mmhm."
},
{
"time": "15:41:40",
"speaker": "Alex Martemyanov",
"text": "To work on it."
},
{
"time": "15:41:42",
"speaker": "Dominik Kapusta",
"text": "Yeah. Yeah, yeah. Uh, yeah, sure. I'm, I'm, you know, I'm trying to…"
},
{
"time": "15:41:43",
"speaker": "Alex Martemyanov",
"text": "But not something on my plate yet."
},
{
"time": "15:41:49",
"speaker": "Dominik Kapusta",
"text": "Trying to make it easier to find… to ensure that the team is okay with this work, because as some of the people mentioned. Didn't. The consequences of mistakes during refactoring can be… can be very severe. Uh… I understand that we've dropped, uh… we've dropped the idea of… of initializing core data models in… in the code, which was probably the biggest, uh… the thing that started everything, really, the entire discussion, because otherwise… otherwise you're just refactoring the code. Uh, but that was… A big thing. So… So, where were we? Um… Just let me just understand it better. Quickly share this."
},
{
"time": "15:43:02",
"speaker": "Alex Martemyanov",
"text": "Okay."
},
{
"time": "15:43:04",
"speaker": "Dominik Kapusta",
"text": "So, in this table, we have, like, clean build, for instance. Xcode Main is what we have currently in Main, right?"
},
{
"time": "15:43:13",
"speaker": "Alex Martemyanov",
"text": "Yep."
},
{
"time": "15:43:14",
"speaker": "Dominik Kapusta",
"text": "And Xcode SPM, what is that exactly?"
},
{
"time": "15:43:17",
"speaker": "Alex Martemyanov",
"text": "It's basically the migration that's happening in this branch. So we're moving the main app code to an SPM package."
},
{
"time": "15:43:24",
"speaker": "Dominik Kapusta",
"text": "Mm-hmm. Mmhm."
},
{
"time": "15:43:31",
"speaker": "Alex Martemyanov",
"text": "And, uh, the three columns. after the main branch is basically V. This is basically the new approach where we use the main target as an SPM package."
},
{
"time": "15:43:41",
"speaker": "Dominik Kapusta",
"text": "Mm-hmm. Mm-hmm, mm-hmm, m."
},
{
"time": "15:43:47",
"speaker": "Alex Martemyanov",
"text": "So yeah, I highlighted it in the comment before that…"
},
{
"time": "15:43:47",
"speaker": "Dominik Kapusta",
"text": "Oh."
},
{
"time": "15:43:54",
"speaker": "Alex Martemyanov",
"text": "Well, the main targets in SPM. Technology migrated to USPM."
},
{
"time": "15:44:08",
"speaker": "Dominik Kapusta",
"text": "So I think, um… I think we should be realistically looking at this column. Maybe also this column, but it would be great to have Xcode build. Starts for main as well. Maybe there are… Closer to this. As well. Could you… could you get them for, like, Xcode build for main? What I'm getting at is… VS Code, realistically, I don't believe people on the Apple team will switch to VS Code. So they will stay with Xcode. But Xcode build is something that agents use. So if you make agents 20% faster to build the app. That's a significant improvement, and that's something that people should… Uh… understand, and should be aware of, that your work is making. Xcode build, 20% faster. This is also CI. I understand. And that… In my opinion, that should be the main selling point of your work."
},
{
"time": "15:45:15",
"speaker": "Alex Martemyanov",
"text": "Mmhm. It's maybe not 100% accurate compared to the main branch. Because I suppose it would be the same for the main branch Xcode."
},
{
"time": "15:45:30",
"speaker": "Dominik Kapusta",
"text": "I see, okay."
},
{
"time": "15:45:31",
"speaker": "Alex Martemyanov",
"text": "So it's just comparing to the to the main branch. And, yeah, I probably should run just a comparison for the…"
},
{
"time": "15:45:38",
"speaker": "Dominik Kapusta",
"text": "Yeah. Okay."
},
{
"time": "15:45:38",
"speaker": "Alex Martemyanov",
"text": "Uh, main branch, and it's called… Mm-hmm. SPM… Xcode build on the main branch, yeah."
},
{
"time": "15:45:49",
"speaker": "Dominik Kapusta",
"text": "Mm-hmm. Um… All right, because then we essentially rebuild no changes, rebuild code change in main module. This is for some reason slower."
},
{
"time": "15:46:03",
"speaker": "Alex Martemyanov",
"text": "Yeah. There is, so generally, export build, performs, this package resolution thing that is main slowdown during the everyday development, and that's why I."
},
{
"time": "15:46:12",
"speaker": "Dominik Kapusta",
"text": "Mmhm. I see."
},
{
"time": "15:46:17",
"speaker": "Alex Martemyanov",
"text": "did not really consider, uh, using it in VS Code, like a build system, because it's… essentially, it slows down compared to the main Xcode IDE, and does not give any… any speedups."
},
{
"time": "15:46:21",
"speaker": "Dominik Kapusta",
"text": "Hmm. Mmhm."
},
{
"time": "15:46:33",
"speaker": "Alex Martemyanov",
"text": "But, yeah, here we can see that this extra steps is giving extra ten. maybe six to ten seconds compared to the main Xcode that does not perform this package resolution every time you rebuild it."
},
{
"time": "15:46:48",
"speaker": "Dominik Kapusta",
"text": "I see. Okay."
},
{
"time": "15:46:49",
"speaker": "Alex Martemyanov",
"text": "And the VS code speed up is mainly because of the target difference that does not include this VPN and GBP. Yeah, so it's not some code change that causes it. It's not magic."
},
{
"time": "15:46:58",
"speaker": "Dominik Kapusta",
"text": "Mm-hmm. Oh, yeah. Okay. Okay. I see. Right."
},
{
"time": "15:47:04",
"speaker": "Alex Martemyanov",
"text": "I'm just making another target for local builds of the main browser UI, and nothing else."
},
{
"time": "15:47:14",
"speaker": "Dominik Kapusta",
"text": "All right. All right. Right, um… Okay. In this case… I'm… I'm unsure if… if this… It's worth, uh. Pursuing, unless the people on the team… would be interested in trying out VS Code. yeah, I… I realize it's harsh, but just wanted to tell you how I feel about it, and I… and how I believe. people will feel about it. I'm."
},
{
"time": "15:48:02",
"speaker": "Alex Martemyanov",
"text": "You mean the SPM migration of the main target?"
},
{
"time": "15:48:05",
"speaker": "Dominik Kapusta",
"text": "No. If it's… Because a lot of work that you've done for this is great to have overall, like all the cleanups, separating files by target, I like this very much, and it's great to have someone. Especially someone like you work on this and do this. Right. But then… There may be some, um… There is… there is this, like, infliction point at some… somewhere in this project where… The changes are not as… As easy ingestible, easily ingestible by everyone, and where they would be essentially… Questioning. Why are we doing them? So… Uh… so, um…"
},
{
"time": "15:49:11",
"speaker": "Alex Martemyanov",
"text": "So, generally, the changes to… Move the files. Hmm, from… project file to… project to the ESPM folder, and the events mostly staying in the same place, and uh… accessible from there. So, just continuing the work of, uh… moving the files to SPM targets that were started, so… We're a while already. And basically, the VS Code step, the… I mean, the VS Code compatibility step itself, it's, uh… Not kinda. Related to it, it's just adding a workspace file and an extra target to the Swift package definition."
},
{
"time": "15:50:02",
"speaker": "Dominik Kapusta",
"text": "Yeah, yeah, I see. Um."
},
{
"time": "15:50:02",
"speaker": "Alex Martemyanov",
"text": "Right. So, I'd say, uh… the… adding the project. The VS Code workspace file itself should not meet any… Issues with the team or whoever, just… if you don't want, don't use it."
},
{
"time": "15:50:24",
"speaker": "Dominik Kapusta",
"text": "Hmm, yeah."
},
{
"time": "15:50:24",
"speaker": "Alex Martemyanov",
"text": "Uh, but the SPM package migration, it may, uh… It may be a discussion point here."
},
{
"time": "15:50:32",
"speaker": "Dominik Kapusta",
"text": "Yeah, so, uh… What would you say to… Just open a tech design about it and lay out clearly. The benefits, the risks. the, um, build time, influence it has on build time, uh. Of course, there are clear benefits. There are clear, very clear benefits, like AppDelegate is not involved in unit tests. That's… the main, most important thing for me, I believe. Yeah, um… But… It feels to me like this needs to be clearly laid out and discussed within a team. And then you can just do it. Because otherwise, you're doing something that has not been truly agreed on, and it's… A significant change to the app."
},
{
"time": "15:51:31",
"speaker": "Alex Martemyanov",
"text": "Boom. Well, I remember it was at some point, but probably…"
},
{
"time": "15:51:38",
"speaker": "Dominik Kapusta",
"text": "It also… yeah, it also rings a bell. Like, I think that at some point there was a tech design on that, but I…"
},
{
"time": "15:51:39",
"speaker": "Alex Martemyanov",
"text": "It was, um… There was a tech design and it was generally discussed in the meeting."
},
{
"time": "15:51:46",
"speaker": "Dominik Kapusta",
"text": "Yeah."
},
{
"time": "15:51:50",
"speaker": "Alex Martemyanov",
"text": "the point."
},
{
"time": "15:51:51",
"speaker": "Dominik Kapusta",
"text": "Yeah."
},
{
"time": "15:51:52",
"speaker": "Alex Martemyanov",
"text": "That's, uh… There was no really real complaints about this migration to perform. Let me find it where it was."
},
{
"time": "15:52:05",
"speaker": "Dominik Kapusta",
"text": "Convert all macOS modules to Swift package."
},
{
"time": "15:52:08",
"speaker": "Alex Martemyanov",
"text": "Yes, I think it was."
},
{
"time": "15:52:10",
"speaker": "Dominik Kapusta",
"text": "Mmhm."
},
{
"time": "15:52:11",
"speaker": "Alex Martemyanov",
"text": "Is it…"
},
{
"time": "15:52:12",
"speaker": "Dominik Kapusta",
"text": "I was a, I was a reviewer there."
},
{
"time": "15:52:15",
"speaker": "Alex Martemyanov",
"text": "Yeah. And…"
},
{
"time": "15:52:24",
"speaker": "Dominik Kapusta",
"text": "But… Yeah, okay."
},
{
"time": "15:52:28",
"speaker": "Alex Martemyanov",
"text": "Doing design, yeah, convert. Yeah, so generally, it includes pretty much everyone, and uh… Recommended approach was the. Yeah, it's basically…"
},
{
"time": "15:52:40",
"speaker": "Dominik Kapusta",
"text": "Mmhm."
},
{
"time": "15:52:41",
"speaker": "Alex Martemyanov",
"text": "That one, October 24th, a year ago."
},
{
"time": "15:52:43",
"speaker": "Dominik Kapusta",
"text": "Mm-hmm. A year ago… Yeah, a year ago. Em."
},
{
"time": "15:52:54",
"speaker": "Alex Martemyanov",
"text": "So… Do you think I should reopen it for… Another round of discussion."
},
{
"time": "15:53:04",
"speaker": "Dominik Kapusta",
"text": "I think it would make sense. I'm just having another look. There is a proposal linked there and proposal is called convert all macOS modules to Swift package."
},
{
"time": "15:53:26",
"speaker": "Alex Martemyanov",
"text": "Yep."
},
{
"time": "15:53:27",
"speaker": "Dominik Kapusta",
"text": "And there were some… some concerns will have essentially different linking. Yeah. I think it would be… Best to resurface this discussion, given that in the original tech design. Oh, okay, so you open the proposal, and then because of the comments on the proposal, you open the tech design, I think, because you're… In the tech design, in the comments, you're linking some comments from the, um…"
},
{
"time": "15:54:05",
"speaker": "Alex Martemyanov",
"text": "Yeah."
},
{
"time": "15:54:07",
"speaker": "Dominik Kapusta",
"text": "mentioning comments from the proposal. Is this 100% accurate? Is this tech design 100% accurate with the work you're doing right now?"
},
{
"time": "15:54:26",
"speaker": "Alex Martemyanov",
"text": "And… It's, uh… Mostly, in main points. So there is, uh, this, uh…"
},
{
"time": "15:54:32",
"speaker": "Dominik Kapusta",
"text": "Hmm. Okay."
},
{
"time": "15:54:41",
"speaker": "Alex Martemyanov",
"text": "VS Code launcher implementation shipped into the repository step."
},
{
"time": "15:54:41",
"speaker": "Dominik Kapusta",
"text": "Yeah, okay."
},
{
"time": "15:54:48",
"speaker": "Alex Martemyanov",
"text": "And, uh, using the unsigned loader of, uh, dynamic libraries. So, essentially, it's the same, but, uh… Instead of it, the build script just creates a new PBX project file. a compact one, writes a single main function in C++, and, uh, signs it, and, uh, loads the dynamic library, so…"
},
{
"time": "15:55:13",
"speaker": "Dominik Kapusta",
"text": "Mm-hmm."
},
{
"time": "15:55:13",
"speaker": "Alex Martemyanov",
"text": "Most probably, it would even work for the App Store builds. And in the tech design, it's mentioned that it won't work with App Store builds. Oh. Otherwise, the idea is mostly the same. It's just some implementation detail."
},
{
"time": "15:55:33",
"speaker": "Dominik Kapusta",
"text": "It doesn't support sandboxed builds, is that right?"
},
{
"time": "15:55:36",
"speaker": "Alex Martemyanov",
"text": "Uh, it should, I guess. Because, uh, Sandbox builds… do support dynamic linking and since there is this."
},
{
"time": "15:55:46",
"speaker": "Dominik Kapusta",
"text": "You know."
},
{
"time": "15:55:47",
"speaker": "Alex Martemyanov",
"text": "Oh. I think they should. The only issue is the signature that should match. For both the app and the library. And since we signed both."
},
{
"time": "15:55:56",
"speaker": "Dominik Kapusta",
"text": "But then again. Yeah, the dynamic linking is still just… to make it compatible with VS Code, is that right? Like, Xcode wouldn't use it. Yeah."
},
{
"time": "15:56:09",
"speaker": "Alex Martemyanov",
"text": "Yes, so it's an extra target, only for the VS Code user, so it's not the main app target."
},
{
"time": "15:56:13",
"speaker": "Dominik Kapusta",
"text": "Mmhm."
},
{
"time": "15:56:16",
"speaker": "Alex Martemyanov",
"text": "The main app is compiled to this, static library as, it's mentioned in this schema here, macOS as a static library."
},
{
"time": "15:56:23",
"speaker": "Dominik Kapusta",
"text": "Right, yes, yes, yes, yes."
},
{
"time": "15:56:25",
"speaker": "Alex Martemyanov",
"text": "And, it's, either the Xcode project that uses it or the dynamic library that's linked."
},
{
"time": "15:56:33",
"speaker": "Dominik Kapusta",
"text": "Mm-hmm. Mm."
},
{
"time": "15:56:33",
"speaker": "Alex Martemyanov",
"text": "Uh, the king suit. And the dynamic library is just kind of an empty placeholder that loads all the content on the static one."
},
{
"time": "15:56:51",
"speaker": "Dominik Kapusta",
"text": "No. All right, well, so the tech design, as far as… converting the macOS app to a Swift package or. Yeah, it's… well, what I wanted to say is that as far as… Removing up delegate dependency from unit tests, which is the clearest benefit here. It's looking good. I… might… I might consider just… just… Opening… this one more time and asking for input if anyone has anything because we really didn't have much discussion on that one and it's been a year. Um… So. Just so it doesn't… I actually have to postpone my next one a little bit. Please give me."
},
{
"time": "15:58:07",
"speaker": "Alex Martemyanov",
"text": "Well, uh, I may…"
},
{
"time": "15:58:09",
"speaker": "Dominik Kapusta",
"text": "Give me a moment."
},
{
"time": "15:58:11",
"speaker": "Alex Martemyanov",
"text": "I may redesign the tech design in, uh… In a way, to only include the… SPM migration."
},
{
"time": "15:58:21",
"speaker": "Dominik Kapusta",
"text": "Mm-hmm."
},
{
"time": "15:58:22",
"speaker": "Alex Martemyanov",
"text": "Without, uh, direct… VS Code. without directly mentioning the VS Code thing and the dynamic library that was essentially discussed already in that tech design and kind of approved. But yeah, just to keep it in the. Insight. Of, uh, everybody, um…"
},
{
"time": "15:58:46",
"speaker": "Dominik Kapusta",
"text": "Mm-hmm. Mm-hmm."
},
{
"time": "15:58:48",
"speaker": "Alex Martemyanov",
"text": "So this step of migration may not go into the package and providing the benefits like tests and code separation. Oh, yeah. and maybe the build times that I'll. measure here."
},
{
"time": "15:59:11",
"speaker": "Dominik Kapusta",
"text": "No."
},
{
"time": "15:59:13",
"speaker": "Alex Martemyanov",
"text": "And…"
},
{
"time": "15:59:14",
"speaker": "Dominik Kapusta",
"text": "I think that would be great, I think that would, uh… Help keep people calm about this. Um… Yeah, because even… even if…"
},
{
"time": "15:59:27",
"speaker": "Alex Martemyanov",
"text": "And probably…"
},
{
"time": "15:59:28",
"speaker": "Dominik Kapusta",
"text": "Yeah. Go on, go on."
},
{
"time": "15:59:29",
"speaker": "Alex Martemyanov",
"text": "Probably it's worth making another roadmap that we discussed today before about the further separation and maybe unifying with iOS as well."
},
{
"time": "15:59:43",
"speaker": "Dominik Kapusta",
"text": "It would be… it would be amazing. Yeah."
},
{
"time": "15:59:43",
"speaker": "Alex Martemyanov",
"text": "I mean, moving. splitting the target into… into smaller… into smaller pieces."
},
{
"time": "15:59:49",
"speaker": "Dominik Kapusta",
"text": "Yeah. I think it will be great."
},
{
"time": "15:59:51",
"speaker": "Alex Martemyanov",
"text": "Because, uh… Because currently the indexation and build of 1,700 files is… What takes most, I believe."
},
{
"time": "16:00:05",
"speaker": "Dominik Kapusta",
"text": "You know, there's also Apple modularization roadmap. which this… could potentially… fit into."
},
{
"time": "16:00:17",
"speaker": "Alex Martemyanov",
"text": "Oh."
},
{
"time": "16:00:17",
"speaker": "Dominik Kapusta",
"text": "And that roadmap is… Sounds like something in progress. Since… last year. And it's essentially about breaking down dependencies, but also… Well, it's called Apple Modularization Roadmap, so whatever… Whatever is related to… to Apple modularization."
},
{
"time": "16:00:42",
"speaker": "Alex Martemyanov",
"text": "Basically… Basically, yes, it is essentially work in scope of regularization."
},
{
"time": "16:00:44",
"speaker": "Dominik Kapusta",
"text": "Could fit there."
},
{
"time": "16:00:50",
"speaker": "Alex Martemyanov",
"text": "And sharing code, and… Moving. Uh, moving forward, so… And the roadmap in the VS Code migration project does also have this separation of files to the shared packages."
},
{
"time": "16:01:06",
"speaker": "Dominik Kapusta",
"text": "Mm-hmm."
},
{
"time": "16:01:12",
"speaker": "Alex Martemyanov",
"text": "between DVP and VPN targets that are remaining shared code in the export project."
},
{
"time": "16:01:20",
"speaker": "Dominik Kapusta",
"text": "Yeah, mm-hmm. So, I guess, for now… I have a pull request on me that is looking fine. I'll have to… I just have to build the app and test the VPN."
},
{
"time": "16:01:38",
"speaker": "Alex Martemyanov",
"text": "So it's… yeah, the pull request is just… it's just moving files away from the folder. It does not change the… the targets."
},
{
"time": "16:01:43",
"speaker": "Dominik Kapusta",
"text": "Mm-hmm, yeah, yeah, yeah, yeah, sure."
},
{
"time": "16:01:47",
"speaker": "Alex Martemyanov",
"text": "But the rest, it's not done yet, and the rest is more heavy refactoring, and it's not planned in current iteration."
},
{
"time": "16:01:47",
"speaker": "Dominik Kapusta",
"text": "The… Yeah, yeah, and I… And I suggest, if that… Makes sense to pause here, and uh… just present the idea to the team, somehow. If you want… I mean, it's completely fine if you want to draft something and have me review it before you share it with the team. You don't have to do it today, also. But… It also… it also makes sense… To just communicate that. In this. Migration project, by saying… I will prepare a tech design and share it with you soon. That would also make people feel heard and feel like we're not doing something behind the scenes. That could potentially harm…"
},
{
"time": "16:02:58",
"speaker": "Alex Martemyanov",
"text": "Okay, so…"
},
{
"time": "16:02:58",
"speaker": "Dominik Kapusta",
"text": "The product."
},
{
"time": "16:03:00",
"speaker": "Alex Martemyanov",
"text": "So, do you think it's worth mentioning today's Apple Weekly, just to highlight what… what was done, what is actually… on the plate as of today, and how it's related to the existing modularization effort, and what are the. further plans, and kind of wrap it up with the tech design that I'm going on."
},
{
"time": "16:03:23",
"speaker": "Dominik Kapusta",
"text": "I think so. I think that would be great. And that tech design, worst case, it will be open for a number of days, but we'll figure out…"
},
{
"time": "16:03:23",
"speaker": "Alex Martemyanov",
"text": "Prepare for the for the migration."
},
{
"time": "16:03:35",
"speaker": "Dominik Kapusta",
"text": "the right way forward that everyone is happy with."
},
{
"time": "16:03:42",
"speaker": "Alex Martemyanov",
"text": "But it probably also can… or should include the further roadmap and the further code separation maybe."
},
{
"time": "16:03:52",
"speaker": "Dominik Kapusta",
"text": "Yeah, why not? Why not? Uh, well… As long as the tech design is not getting too big, because if it's too many problems in a single tech design, then it should be multiple tech designs, probably."
},
{
"time": "16:04:08",
"speaker": "Alex Martemyanov",
"text": "I mean, it can be like a framework for the roadmap. So first stage is to main article to an SPM package. The second step is to move like UI."
},
{
"time": "16:04:08",
"speaker": "Dominik Kapusta",
"text": "But. Mmhm. Mm-hmm. Mm-hmm."
},
{
"time": "16:04:19",
"speaker": "Alex Martemyanov",
"text": "The third step is to clean up the DBP and VPN to the shared code."
},
{
"time": "16:04:24",
"speaker": "Dominik Kapusta",
"text": "Mm-hmm."
},
{
"time": "16:04:26",
"speaker": "Alex Martemyanov",
"text": "Packages and… Just mentioned this. These packages that would be moved. on each step."
},
{
"time": "16:04:31",
"speaker": "Dominik Kapusta",
"text": "Yeah, and…"
},
{
"time": "16:04:32",
"speaker": "Alex Martemyanov",
"text": "So to make it a part of a bigger project in the mobilization effort."
},
{
"time": "16:04:38",
"speaker": "Dominik Kapusta",
"text": "And try thinking about iOS, and I understand that iOS can't be done because of blockers, and some of the blockers are probably just… they use storyboards, still, so if they would like to… Follow this… this roadmap, they should… Essentially fix their stuff. Um… If they want to."
},
{
"time": "16:05:00",
"speaker": "Alex Martemyanov",
"text": "Well, storyboards are not a big deal really, because I did all this remaining storyboard migration in a single day, just putting it to cloud and asking, okay, do it correctly and don't make mistakes."
},
{
"time": "16:05:06",
"speaker": "Dominik Kapusta",
"text": "Thank you. Bye."
},
{
"time": "16:05:15",
"speaker": "Alex Martemyanov",
"text": "There were a couple of mistakes, although, but anyways, it's much better than it used to be a year ago, when I had to manually go through the conversion tool and validate every constraint it adds."
},
{
"time": "16:05:16",
"speaker": "Dominik Kapusta",
"text": "Yes. Right. Mm-hmm. Mmhm. Mmhm."
},
{
"time": "16:05:27",
"speaker": "Alex Martemyanov",
"text": "Because currently, it took only… several dozen of iterations in the cloud. And that's all that it took."
},
{
"time": "16:05:35",
"speaker": "Dominik Kapusta",
"text": "No. Okay, okay, sounds great. Sounds great. Thanks for listening to me and for taking action going forward. Yeah, if you want… I can help you prepare the message if you want to just speak at Apple Weekly, be my guest. I'm here to help anyway. And that's it."
},
{
"time": "16:06:01",
"speaker": "Alex Martemyanov",
"text": "Yeah, I think if… if we could… if you could join the… the discussion, or maybe support the… the further movement, that could be, uh…"
},
{
"time": "16:06:07",
"speaker": "Dominik Kapusta",
"text": "Mm-hmm. I'll try. I'll… I'll definitely try."
},
{
"time": "16:06:13",
"speaker": "Alex Martemyanov",
"text": "Everything."
},
{
"time": "16:06:14",
"speaker": "Dominik Kapusta",
"text": "Yeah. Like, the most important things are… For political reasons, don't make it… oriented around VS Code. But. Mention iOS. And, uh… and that's actually it. And make it essentially clear, like, working in the open, asking for feedback, and so on, so that you could do via tech design. And if you could reply to Juan in his comment on your project, that would also be great."
},
{
"time": "16:06:55",
"speaker": "Alex Martemyanov",
"text": "of…"
},
{
"time": "16:06:56",
"speaker": "Dominik Kapusta",
"text": "Or not to Juan, but to everyone."
},
{
"time": "16:06:58",
"speaker": "Alex Martemyanov",
"text": "Yeah, maybe it was just mentioning, highlighting it during the weekly talk."
},
{
"time": "16:07:01",
"speaker": "Dominik Kapusta",
"text": "Yeah. Yeah. Yeah, yeah, yeah. Or you can just post a comment that… But yeah, we'll share more at the Apple Weekly today or something like that. Um… fine."
},
{
"time": "16:07:14",
"speaker": "Alex Martemyanov",
"text": "Okay."
},
{
"time": "16:07:15",
"speaker": "Dominik Kapusta",
"text": "We're done with this, we're over time, but one last thing that we should talk about is the… continuous development check-in. We won't have time for this today, so we can do it next week, even though the deadline is in two days, but that's fine. And I guess we can just keep it as is. Or we could do it… We could do it async. Let's see. I'll try to think about your growth areas. Uh, if you have… Any thoughts? Do you have time to look at your growth areas recently?"
},
{
"time": "16:07:59",
"speaker": "Alex Martemyanov",
"text": "Mmhm."
},
{
"time": "16:08:04",
"speaker": "Dominik Kapusta",
"text": "I think things are going well with the project communication with OE, but…"
},
{
"time": "16:08:05",
"speaker": "Alex Martemyanov",
"text": "I think it's, uh… It's mainly the project communication, the AOR and team work, the tech designs and…"
},
{
"time": "16:08:15",
"speaker": "Dominik Kapusta",
"text": "Mmhm."
},
{
"time": "16:08:19",
"speaker": "Alex Martemyanov",
"text": "Again, keeping things visible that we are working on."
},
{
"time": "16:08:21",
"speaker": "Dominik Kapusta",
"text": "Yeah, I saw your comment on tech designs as well, um… Yeah, I made it… happen that you are assigned to some code reviews for the permissions, UI at least."
},
{
"time": "16:08:38",
"speaker": "Alex Martemyanov",
"text": "Yeah, we're working on with Andrea."
},
{
"time": "16:08:38",
"speaker": "Dominik Kapusta",
"text": "Permission changes."
},
{
"time": "16:08:41",
"speaker": "Alex Martemyanov",
"text": "On it, and yeah, actually we had some… Uh, some changes on these, on his last, um… Pull request, the one that you assigned to me because of all this swizzling that was originally made by me, and yeah, I think we… I basically opened another pull request, refactoring all this stuff and making it lots of easier to digest and…"
},
{
"time": "16:08:55",
"speaker": "Dominik Kapusta",
"text": "Yeah. Right. Yeah. Okay, that's really great. That's really great."
},
{
"time": "16:09:07",
"speaker": "Alex Martemyanov",
"text": "Better documented."
},
{
"time": "16:09:10",
"speaker": "Dominik Kapusta",
"text": "Let's… okay, for one last thing, because I have to switch to another call, but… We should request feedback from someone. Steve, Gary… is missing in action. I think he's going on a paternity leave. Now, or next week, or I don't know. I pinged him, I created him a task. And, okay, he's not… He's preparing for paternity leave, anyway. Um, and uh… I created him a task, he didn't respond on the task. I know people ops are chasing people on feedback tasks, so maybe he'll get to it, maybe not. We have some material from the Doug Bill award, so we can… make the case for your good project management, at least. But… some other people that you could request feedback from. Uh, I think we were, uh, talking about that briefly last week. Uh, you mentioned Max. And Mihao as well."
},
{
"time": "16:10:16",
"speaker": "Alex Martemyanov",
"text": "Just…"
},
{
"time": "16:10:18",
"speaker": "Dominik Kapusta",
"text": "Huh-huh. Good. Uh, is there anything in particular that you would like to ask them about? Because this feedback needs to be oriented around some events. So, this is, like, this is your project."
},
{
"time": "16:10:30",
"speaker": "Alex Martemyanov",
"text": "So, basically, CPM breakage… CPM breakage work, yeah."
},
{
"time": "16:10:32",
"speaker": "Dominik Kapusta",
"text": "Yeah. Okay. Um… All right, uh… I can send out that feedback, actually. And let's see. Good. Okay, um… All right, let's talk more about it next week and that will be it. Fine. Thank you. Thank you so much, and see you at the Apple Weekly."
},
{
"time": "16:11:04",
"speaker": "Alex Martemyanov",
"text": "Okay."
},
{
"time": "16:11:10",
"speaker": "Dominik Kapusta",
"text": "That's it. Let's talk about that next week as well."
},
{
"time": "16:11:17",
"speaker": "Alex Martemyanov",
"text": "Ah, yeah, and I got numbers for Xcode build, just let me quickly check it, if it gets any difference. Uh, for the main, yes, and there is 35-second decline, I mean, increase. improvement over the…"
},
{
"time": "16:11:33",
"speaker": "Dominik Kapusta",
"text": "Improvement, okay."
},
{
"time": "16:11:35",
"speaker": "Alex Martemyanov",
"text": "was the main main branch so yeah."
},
{
"time": "16:11:37",
"speaker": "Dominik Kapusta",
"text": "That's good. That's great to hear."
},
{
"time": "16:11:38",
"speaker": "Alex Martemyanov",
"text": "24% on the clean build."
},
{
"time": "16:11:42",
"speaker": "Dominik Kapusta",
"text": "Does it build VPN?"
},
{
"time": "16:11:45",
"speaker": "Alex Martemyanov",
"text": "Uh, yes."
},
{
"time": "16:11:46",
"speaker": "Dominik Kapusta",
"text": "Nice."
},
{
"time": "16:11:46",
"speaker": "Alex Martemyanov",
"text": "I mean, the full… the full package… the full package rebuilt with export build, just with the main target refactor to SPM, instead of the main project."
},
{
"time": "16:11:48",
"speaker": "Dominik Kapusta",
"text": "Yeah, okay, that's great. Cool. Cool, cool. Okay, that's great to hear. Thank you and see you around."
},
{
"time": "16:12:05",
"speaker": "Alex Martemyanov",
"text": "Yep."
}
]
}