How to set up VScode for eternal build

Here's the deal: My products last for 15 or 20 years.  I need to rebuild code from time to time during that time so I need my development environment (all of it) stable on a per project basis over that time frame (I've got somewhere like 4-5 projects a year)

With something like SES, I just keep my versions that I've been actually using basically forever.  I can run SES 5.32 or whatever any time because I've got 2 or 3 versions of it on my machine. 

In my source code tree, I've got the SDK source (and patches that I've had to make to it) I'm using as well as the FreeRTOS source (and patches I've made to it) that I'm using alongside my application code itself; this is ALL committed to my repos so I can pull a complete set and any time, from any time, rebuild and get pretty much the same .hex file (with a couple changes based on dates in e.g. signatures) out of it.

How do I set up a project like this in VS Code with this new nRFconnect SDK?  Self contained and eternal.

  • Hi Randy

    I think there is a few options you can consider: 

    1. You might fork the NCS repo you are using and use that in the future. However since VScode is not developed by Nordic, we have no control over if it would be possible to download a working version with the correct versions of the extensions in 10+ years time. 

    2. Create a docker/VM image with a complete setup of the build environment you are using. This is what I think will provide the best solution where you don't have to worry about breaking changes in the extensions or availability of a specific version. 

    I have also asked our nRF connect developers for input and will update when I hear back from them. 

    Regards

    Runar 

  • Update: 
    I heard back from our developers. They had the following recommendation. Either create a VM or docker image where you create a west manifest to lock your project to a specific version of the SDK. The process of creating a west manifest or forking the SDK is covered here

    Regards

    Runar

  • thanx.... Sigh.  Nothing like very heavy development environments.

  • I know.. If you only need to rebuild your application once in a while. You could have a look at doing a manual installation of the NCS. Its not the most user friendly. But if you only need to rebuild the application you don't need VScode and that is one less thing to worry about. 

    Regards

    Runar

  • well, that's an option... Complicated but an option.  Thanx for pointing to it.  I like this documentation because it exposes the underlying structures and, therefore, assumptions.

    Reading through all this it strikes me as how ridiculously complicated all this setup is.  All of this is obviously designed by a [lazy] committee. 

    Apparently no one actually understands simple these days. Certainly not the people at Zephyr. There is no reason in the world why this should be anywhere near this complicated to work with. None.

    Anyway, thanx for the pointers...

Related