I was traveling before Christmas to get to a couple of meetings. A software guy in one of the meetings had to step out because there was a pressing issue with a serial communications system. He was back in about 20 minutes because he had “fixed it”. Turns out an IDE/Compiler/ToolChain code library had been updated automatically and this had broken the serial comms.
So how are you controlling how you version the toolchain libraries? Do you version the toolchain?
Do you just roll the automatic updates in? Do you do anything? #software #communications #versioncontrol
How do you version control the code tools for high quality software?
One option to control the version of toolchain libraries is to freeze the version used in a project by specifying a specific version number in the project’s build system. This can prevent unexpected changes and breakage caused by automatic updates. Another option is to have a dedicated team responsible for testing and controlling updates to the toolchain libraries, and only roll out updates that have been thoroughly tested and deemed stable. Additionally, organizations could also consider setting up their own internal repository for the toolchain libraries, with version control and a process for testing and releasing updates.
Having clear control and visibility into the toolchain libraries used in a project can greatly increase the stability and reliability of the system. It can also minimize downtime and improve the efficiency of debugging and fixing issues. Overall, having a well-defined version control strategy for the toolchain libraries can lead to a better software development process and improved product quality.
More often than not the silicon vendor-provided code is not available in a repository but comes as some self-installing executable. that checks for updates and installs said updates them without telling you what they are, This is such a problematic low-quality approach. So it was so cool to see this SDK from NXP that is delivered in it’s GitHub repo. Such a good way to do it. Well done NXP.
The link to the SDK information is https://spsdk.readthedocs.io/en/latest/spsdk.html#delivery
The GitHub link is https://github.com/nxp-mcuxpresso/spsdk.
Truly well done to NXP and whoever was in charge of setting this up.
Hopefully the other vendors will take the same approach.