💾 Archived View for ebc.li › posts › biting-more-than-you-can-chew.gmi captured on 2022-01-08 at 13:51:17. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2021-11-30)

-=-=-=-=-=-=-

Biting More Than You Can Chew

2020-08-28

This post has corrections, see the "Corrections" section for more information!

Imagine you checked out the sources of a large software project. You have an idea of what changes you want to do to it. The problem? Where do you start?

No, seriously, where _do_ you start? You have ~50 GB (without Git history) of sources in front of you. Where do you begin adding even the smallest thing?

You might think to yourself that _someone_ must've documented how everything fits together. Nope! The project's own documentation only has API usage and how to work on something _targeting_ it, not on its own source code.

Other third party documentation is either lacking, or _very_ surface level. Explaining the simple things like how to clone & build the software, which doesn't help if you want to modify the software and not just use it.

You _can_ read how the old code works, or look through how others do their changes, but that's way too much effort to apply a change that you don't even plan to upstream or maybe even share. Even if you are _really_ motivated to apply your change, the code is _50 GB_, where do you even look _first_?

You might assume you can just throw stuff onto the wall and see what sticks... Good luck. Even the most trivial changes take *at least* 15 minutes to compile, not to mention the extra hassle to deploy the changes. (Since this code compiles to an external device)

What _can_ you do other than just steal commits off of other people? Genuinely curious...

Corrections

It's Actually Not 50 GB

After receiving a reply to this post, that asked which project had 50 GBs of sources, I wanted to make sure my number was accurate.

Reply by Nolan of perplexing.space

The raw sources are around 45-50 GBs, but a large part of these are either:

Approximating the impact of all these, I would say the parts of the source that get built for my uses are around 5 GBs, maybe lower.

Unnecessarily Vague

I have no idea why I kept this post unnecessarily vague, but the project in question is Android (specifically, the LineageOS fork, but it doesn't impact the upstream complexity in any meaningful way)

🐺 · CC BY-SA 4.0 · me@ecmelberk.com