Description
openedon Jul 31, 2021
#5 Build profiles and reproducible builds
With reference to the default profile handling...
When using the profile-based build, the globally installed platforms and libraries are excluded from the compile and can not be used in any way, in other words, the build is isolated from the system and will rely only on the resources specified in the profile: this will ensure that the build is portable and reproducible independently from the platforms and libraries installed in the system.
Please consider adding an option to allow default / global data or to be able to include a default profile. This would allow the build profile to be used as an override. So essentially the globally installed platforms and libraries are included in the compile (or a default profile) unless they are specified within the build profile, in which case the build profile version is used in preference.
For example it could be invoked in the way that the command is called...
arduino-cli compile [sketch] --profile nanorp --override
Or this could be defined within the profile itself...
profiles:
nanorp:
inherit true
fqbn: arduino:mbed_nano:nanorp2040connect
or perhaps it is better to simply specify the default profile such that it will use this instead...
profiles:
nanorp:
default nanorp_default
fqbn: arduino:mbed_nano:nanorp2040connect
inheritance priority would be ...
Overriding profile > default profile > global defaults
This would make the management of profile data a lot easier as it would potentially avoid masses of repetition within the build data file. It also makes it much easier to perform unit tests across a range of different setups / platforms as only the differences from the default profile would need to be defined
/DM
Activity