Is there an introduction to the codebase?

Hello!

Are there any resources related to getting one familiar with the codebase?

Like which files go where and how to build/run tests?

I do see this page but is that still up to date?

Thanks!

2 Likes

Hi @gregeporter,

apologies but there isn’t much in the way of documentation for the internals. All our documentation effort has gone into making Sonic Pi easy to learn and use as our primary audience is those learning to code.

One exception to this is that the documentation for building Sonic Pi is pretty decent. Check out the BUILD-* files in the source code. For example here’s the Windows instructions: sonic-pi/BUILD-WINDOWS.md at main · sonic-pi-net/sonic-pi · GitHub

Improving the docs for developers would definitely be nice, but as always there’s a fine balance to be struck on where we apply our significantly limited resources.

3 Likes

@gregeporter - as Sam has mentioned, there is not a great amount of developer documentation at the moment that describes the structure of the internal components.
Back in 2017 this same question was posed elsewhere on the forum, and Xav Riley shared a diagram giving a rough breakdown of the major components. (It is still fairly accurate, except for the bit which enabled MIDI communication (osmid) - this was replaced not too long ago):

I see you also found the developer documentation on the wiki.
Those pages and the above diagram are not totally up to date, so there may be some slightly inaccurate information here and there. I too am interested in trying to update the developer documentation, and have started this process, though it is not always easy to find the time to complete it :sweat_smile:

If you have more specific questions, I’m sure someone would be able to help :slightly_smiling_face:

2 Likes

@ethancrawford and @samaaron, thanks for the info and the quick response!

I’ll definitely check out the build files and that Architecture post :slight_smile:

I work as a Software Engineer during the day and documentation (especially for someone new to the system) is tough to 1 find time for and 2, well, make time for cause there tend to be bigger fish to fry :stuck_out_tongue:

Thanks again!