mblakele
FSD Beta (99)
I'm speculating here, based on widespread software engineering practices. Releases could start with the same source code, but there could be multiple different build targets. This would be based on significant hardware differences, to minimize download size. Apple does something like that with iOS. The TM3 build doesn't need any Tegra binaries, and the Tegra builds don't need any Atom binaries. HW1 cars don't need drivers from HW2 or HW2.5. Etc.
AFAICT it's all C++ so there would probably be some #ifdef sections for different build targets. Minor differences that don't justify a separate build target might be implemented on a capability basis. For example HW1 might be a build target, but deciding whether or not there's a sunroof could be done at runtime.
Code for a new platform would probably start life as a new branch, but would be merged back into master when it's ready, and then into release branches for production builds. For example there might be a semi branch and a roadster branch right now, but at some point they'll merge back into the main codebase.
Release cycles can be synchronized or not, depending on circumstances. If there's a security bug that affects all vehicles, release the fix on all build targets. If it's a bug fix for HW2.5 only, then there's no need to build and release for any other targets.
AFAICT it's all C++ so there would probably be some #ifdef sections for different build targets. Minor differences that don't justify a separate build target might be implemented on a capability basis. For example HW1 might be a build target, but deciding whether or not there's a sunroof could be done at runtime.
Code for a new platform would probably start life as a new branch, but would be merged back into master when it's ready, and then into release branches for production builds. For example there might be a semi branch and a roadster branch right now, but at some point they'll merge back into the main codebase.
Release cycles can be synchronized or not, depending on circumstances. If there's a security bug that affects all vehicles, release the fix on all build targets. If it's a bug fix for HW2.5 only, then there's no need to build and release for any other targets.