How do developers open the monorepo in their IDE (...
# developer-productivity-engineering
s
How do developers open the monorepo in their IDE (say, IntelliJ)? Indexing can take a very long time. How do you tell the IDE to pull pre-built artifacts when the tree has all sources (so the IDE will build those rather than downloading pre-built artifacts, won’t it?)
3
a
This is why we've had to do so much work to customize the IDEs to rely on the cached indices and do builds. Part of what the stable point caches are those search artifacts
An important part of that is unifying tools to a certain extent. We let people use whichever tool they can make work (emacs and Vi make the occasional appearance) but optimizing around a smaller subset, VS Code, Android Studio, and XCode specifically
s
I see. So, do you actually customize the IDEs? Or do you add more process around the IDEs? For example, if you have pre-built Android Studio indices somewhere, do you tell users to run a script prior to opening their project in Android Studio in order to download those indices, possibly manipulate those indices (say if they contain any absolute paths that need to be adjusted for the user's setup), and then launch the IDE? Or do you have a custom build of Android Studio itself that all users install which has index retrieval built-in?
a
There's almost nothing in our toolchain that is not customized. So yes and sort of to all of those. We run a monorepo that's simply too big for OTS tools unless we put a lot of customization into them. We have a tool we cal "arc" that glues the file system to the repo to the toolchain to manage the relationships. I'm sure it started as a script. Everything is custom and it's all integrated
s
Ok, so when a new version of Android Studio comes out from JetBrains, you apply your mods to it and release a "Meta" variant of that version of Android Studio to your users? Do you have a partnership with JetBrains where they give you access to the source code of Android Studio, so that you can apply your mods on it?
a
I don't have deep insight into that process, but we definitely use an internal version that we release using our own software management tools. I don't know whether we work with JetBrains directly, but Android Studio is based on the open-source version of IDEA anyway
s
Oh, gotcha. Thanks.