Welcome to Tesla Motors Club
Discuss Tesla's Model S, Model 3, Model X, Model Y, Cybertruck, Roadster and More.
Register

Please explain software branches

This site may earn commission on affiliate links.
When I search, many posts say there's no understanding branches, but a lot of posters speak of them as if they are clearcut. I want to understand them so I can find out when I'm likely to get a new feature (e.g.Audible).

How many branches are there?

Has anyone diagrammed these branches?

BTW, I understand why there are different branches.
 
I don't think anyone outside of Tesla can answer your questions accurately, even if they think otherwise. Someone could map out which versions contain certain features (including FSD versions), but the actual underlying branch strategy would only be known to Tesla development.

It seems that features are consolidating in the 2024.14.x version, so maybe the question is moot. At this point, you're better off asking about a specific feature rather than a general strategy. For example, Audible is included in 2024.14.5, but not any of the 2024.8.x or 2024.3.x versions.
 
  • Like
Reactions: jjrandorin
princess-bride-you-keep-using-that-word.png


all jokes aside, every company will have different branching strategies...but for the most part, a release will be on a branch that, when pushed, will be merged back into the main branch. You can have many branches being worked on in parallel and what those branches are, there is no reason for Tesla to share that publicly so I doubt you'll ever get the answer you're looking for.
 
  • Like
Reactions: jjrandorin
When I search, many posts say there's no understanding branches, but a lot of posters speak of them as if they are clearcut. I want to understand them so I can find out when I'm likely to get a new feature (e.g.Audible).

How many branches are there?

Has anyone diagrammed these branches?

BTW, I understand why there are different branches.
No one who knows the "why" of "why do certain cars get certain software updates and not others" is going to ever answer this question publicly.

So, there is no way to know what you are asking, nor is there any way for you to know when you will get X feature or Y feature (just like all the other threads trying to ask various versions of the same "when will I get X update").
 
No one who knows the "why" of "why do certain cars get certain software updates and not others" is going to ever answer this question publicly.

So, there is no way to know what you are asking, nor is there any way for you to know when you will get X feature or Y feature (just like all the other threads trying to ask various versions of the same "when will I get X update").
I would guess that, at least in part, one branch is more "experimental" than the other, related to the "advance" vs "standard" option in the car's menu.

Advanced would have features that might not be ready for prime time, either it isn't as stable as they'd like or even potentially removed. Standard would be stuff they're pretty set on and feel ready for the most part, barring unforeseen bugs.

I have my MYP set to advance and my sister has her MYLR set to standard. And there were a couple of small things that I felt like I went through, before my sister. For a while, we would leapfrog each other on minor steps within a branch. But recently, it was me on 2024.8.x and her on 2024.2/3.x. Now, I'm on 2024.14.6 and I'm sure she'll be getting a similar version too, following that assumption of the 2024.8.x branch being more settled upon now.

Of the games I play on Steam, there are a few that do something similar... an experimental branch for potential feature add-ons or major changes, and then a stable branch for everyone else that doesn't want to risk dealing with more bugs than necessary. Until the experimental becomes stable and they branch a new experimental.

Obviously, I can't say this IS what Tesla is doing, just being like everyone else is throwing a guess.
 
In software development, concepts related to code repositories are well understood, with Git being a popular one these days. This is where you store your code, it tracks all changes (history) etc. Along with your "main" source tree, you can create as many branches that fork out at any point and make changes only on those branches that do not appear on other branches or on the main. You can later merge those changes back to the trunk or another branch, or abandon them. Your build system can build main or any of those branches, and you would devise a build numbering scheme that lets you know what's included in a build. It's a way to store code on a server without losing it before it's ready for production, it lets you share that WIP code with other developers, it lets you make alternate releases. The possibilities are near endless.
How Tesla decide to use these capabilities to bring us multiple code bases for AI for example is not well understood.