Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Default profile inheritance #10

Open
DeeEmm opened this issue Jul 31, 2021 · 0 comments
Open

Default profile inheritance #10

DeeEmm opened this issue Jul 31, 2021 · 0 comments
Assignees
Labels
criticality: low Of low impact priority: low Resolution is a low priority topic: code Related to content of the project itself type: enhancement Proposed improvement

Comments

@DeeEmm
Copy link

DeeEmm commented 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

@per1234 per1234 added topic: code Related to content of the project itself type: enhancement Proposed improvement labels Feb 1, 2022
@fstasi fstasi added priority: medium Resolution is a medium priority priority: low Resolution is a low priority criticality: low Of low impact and removed priority: medium Resolution is a medium priority labels Feb 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
criticality: low Of low impact priority: low Resolution is a low priority topic: code Related to content of the project itself type: enhancement Proposed improvement
Projects
None yet
Development

No branches or pull requests

5 participants