-
-
Notifications
You must be signed in to change notification settings - Fork 445
Add first set of profile commands
#2917
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
base: master
Are you sure you want to change the base?
Add first set of profile commands
#2917
Conversation
profile commandprofile commands
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #2917 +/- ##
==========================================
+ Coverage 69.17% 69.49% +0.31%
==========================================
Files 247 253 +6
Lines 18926 19160 +234
==========================================
+ Hits 13093 13316 +223
- Misses 4601 4613 +12
+ Partials 1232 1231 -1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
896841b to
a2c86ef
Compare
|
Hello, this is great 🔥 Maybe you want to consider adding and removing multiple libs (later cores) with a single request. I do not know how it performs, but when a user interface wants to initialize a profile from a set of libraries and cores, one request would be better than multiple ones. Update: I checked the changes only from the point of the proto API as a client. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great job! 🚀
We have a bug in the long standing:
arduino-cli/internal/arduino/sketch/profiles.go
Lines 166 to 167 in 55f86b5
| res += p.Platforms.AsYaml() | |
| res += p.Libraries.AsYaml() |
arduino-cli profile init --profile Uno_profile -b arduino:avr:uno /tmp/sk
cat /tmp/sk/sketch.yaml
profiles:
Uno_profile:
fqbn: arduino:avr:uno
platforms:
- platform: arduino:avr (1.8.6)
libraries:
default_profile: cYou can see here that it produces libraries: without [], this is an invalid yaml.
Basically we have to check if the items == 0, then we either skip that property or we set libraries: [].
I'm afraid it could also happen for the platforms so I'd put that check there too.
commands/service_profile_init.go
Outdated
| } | ||
|
|
||
| newProfile := &sketch.Profile{Name: req.GetProfileName(), FQBN: req.GetFqbn()} | ||
| // TODO: what to do with the PlatformIndexURL? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we have some kind of internal API that we can use to retrieve platform <-> index URL?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cc: @cmaglie
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I feel that the design of the profile dump command is inappropriate. This command is actually printing the data of the entire sketch project file, not the build profile data alone. Although the primary usage of the sketch project file is currently for defining build profiles, it is not limited to this purpose and there is a good chance that it will be used for additional things unrelated to build profiles as time goes on.
The profile dump command should be a tool for printing the data from a build profile.
If you want a tool for printing the sketch project file, that should go somewhere else, such as under the sketch command (e.g., sketch project dump), not under the profile command.
If the user doesn't specify a profile ID, it should print the default build profile from the sketch project file. An --all flag could be added to cause it to print all build profiles present in the sketch project file.
d92be42 to
5381938
Compare
5381938 to
3cd499a
Compare
830a052 to
65354c4
Compare
|
I'm going to rebase this one on top of #3019. |
65354c4 to
8f10864
Compare
8f10864 to
aa47bd5
Compare
aa47bd5 to
71b0902
Compare
|
Please check if the PR fulfills these requirements
See how to contribute
before creating one)
our contributing guidelines
UPGRADING.mdhas been updated with a migration guide (for breaking changes)configuration.schema.jsonupdated if new parameters are added.What kind of change does this PR introduce?
Code enhancement
What is the current behavior?
Operations on the
sketch.yamlproject file must be done manually.What is the new behavior?
First set of
profilecommands:profile create -m <PROFILE_NAME -b <FQBN> [--set-default] [<SKETCH_PATH>]adds a profile to the sketch. Ifsketch.yamldoes not exist, it is created. By default, it creates the profile in the sketch in the current directory. The new profile will have the specified name and FQBN (both mandatory). The platform is detected automatically. If the flag--set-defaultis set, the new profile will be set as the default. The command fails in the following cases:profile lib add <LIB_NAME[@LIB_VERSION]> [-m <PROFILE_NAME>] [--sketch-path <SKETCH_PATH>] [--no-deps] [--no-overwrite]adds a library to the provided profile or to the default one. By default, it checks the sketch in the current directory. If--no-deps[]). If--no-overwriteis set, the libraries already present in the profile will be left untouched even if they could be upgraded.profile lib remove <LIB_NAME> [-m <PROFILE_NAME>] [--sketch-path <SKETCH_PATH>] [--no-deps]removes a library and its dependencies (if no longer needed) from the provided profile or from the default one. By default, it checks the sketch in the current directory. If--no-depsis set, only the given library is removed (ignoring the dependencies).profile set-default <PROFILE_NAME> [--sketch-path <SKETCH_PATH>]sets the default profile to the specified profile. By default, it checks the sketch in the current directory.Does this PR introduce a breaking change, and is titled accordingly?
No
Other information