Skip to content

Commit d898eea

Browse files
wip
1 parent 36a5b2b commit d898eea

File tree

18 files changed

+170
-227
lines changed

18 files changed

+170
-227
lines changed

Diff for: arduino/cores/packagemanager/download.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ func (pme *Explorer) FindPlatformReleaseDependencies(item *PlatformReference) (*
8989
} else {
9090
release = platform.GetLatestCompatibleRelease()
9191
if release == nil {
92-
return nil, nil, fmt.Errorf(tr("platform %s has no available releases for your OS"), platform.String())
92+
return nil, nil, fmt.Errorf(tr("platform is not available for your OS"))
9393
}
9494
}
9595

Diff for: arduino/cores/packagemanager/package_manager.go

+2-8
Original file line numberDiff line numberDiff line change
@@ -229,20 +229,14 @@ func (pme *Explorer) GetCustomGlobalProperties() *properties.Map {
229229
}
230230

231231
// FindPlatformReleaseProvidingBoardsWithVidPid FIXMEDOC
232-
func (pme *Explorer) FindPlatformReleaseProvidingBoardsWithVidPid(vid, pid string, showAllRelease bool) []*cores.Platform {
232+
func (pme *Explorer) FindPlatformReleaseProvidingBoardsWithVidPid(vid, pid string) []*cores.Platform {
233233
res := []*cores.Platform{}
234234
for _, targetPackage := range pme.packages {
235235
for _, targetPlatform := range targetPackage.Platforms {
236-
var platformRelease *cores.PlatformRelease
237-
if showAllRelease {
238-
platformRelease = targetPlatform.GetLatestRelease()
239-
} else {
240-
platformRelease = targetPlatform.GetLatestCompatibleRelease()
241-
}
236+
platformRelease := targetPlatform.GetLatestRelease()
242237
if platformRelease == nil {
243238
continue
244239
}
245-
246240
for _, boardManifest := range platformRelease.BoardsManifest {
247241
if boardManifest.HasUsbID(vid, pid) {
248242
res = append(res, targetPlatform)

Diff for: commands/board/search.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ func Search(ctx context.Context, req *rpc.BoardSearchRequest) (*rpc.BoardSearchR
4141
foundBoards := []*rpc.BoardListItem{}
4242
for _, targetPackage := range pme.GetPackages() {
4343
for _, platform := range targetPackage.Platforms {
44-
latestPlatformRelease := platform.GetLatestRelease()
44+
latestPlatformRelease := platform.GetLatestCompatibleRelease()
4545
installedPlatformRelease := pme.GetInstalledPlatformRelease(platform)
4646

4747
if latestPlatformRelease == nil && installedPlatformRelease == nil {

Diff for: commands/core/search.go

+6-16
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ func PlatformSearch(req *rpc.PlatformSearchRequest) (*rpc.PlatformSearchResponse
3939
res := []*cores.Platform{}
4040
if isUsb, _ := regexp.MatchString("[0-9a-f]{4}:[0-9a-f]{4}", req.SearchArgs); isUsb {
4141
vid, pid := req.SearchArgs[:4], req.SearchArgs[5:]
42-
res = pme.FindPlatformReleaseProvidingBoardsWithVidPid(vid, pid, req.AllVersions)
42+
res = pme.FindPlatformReleaseProvidingBoardsWithVidPid(vid, pid)
4343
} else {
4444
searchArgs := utils.SearchTermsFromQueryString(req.SearchArgs)
4545
for _, targetPackage := range pme.GetPackages() {
@@ -53,14 +53,8 @@ func PlatformSearch(req *rpc.PlatformSearchRequest) (*rpc.PlatformSearchResponse
5353
continue
5454
}
5555

56-
// In case we ask for all versions we also show incompatible ones
57-
var latestRelease *cores.PlatformRelease
58-
if req.AllVersions {
59-
latestRelease = platform.GetLatestRelease()
60-
} else {
61-
latestRelease = platform.GetLatestCompatibleRelease()
62-
}
6356
// Discard platforms with no releases
57+
latestRelease := platform.GetLatestRelease()
6458
if latestRelease == nil || latestRelease.Name == "" {
6559
continue
6660
}
@@ -94,24 +88,20 @@ func PlatformSearch(req *rpc.PlatformSearchRequest) (*rpc.PlatformSearchResponse
9488
}
9589
if installed := pme.GetInstalledPlatformRelease(platform); installed != nil {
9690
rpcPlatformSummary.InstalledVersion = installed.Version.String()
97-
rpcPlatformSummary.Releases[installed.Version.String()] = commands.PlatformReleaseToRPC(installed)
9891
}
9992
if latestCompatible := platform.GetLatestCompatibleRelease(); latestCompatible != nil {
10093
rpcPlatformSummary.LatestVersion = latestCompatible.Version.String()
101-
rpcPlatformSummary.Releases[latestCompatible.Version.String()] = commands.PlatformReleaseToRPC(latestCompatible)
10294
}
103-
if req.AllVersions {
104-
for _, platformRelease := range platform.GetAllReleases() {
105-
rpcPlatformRelease := commands.PlatformReleaseToRPC(platformRelease)
106-
rpcPlatformSummary.Releases[rpcPlatformRelease.Version] = rpcPlatformRelease
107-
}
95+
for _, platformRelease := range platform.GetAllReleases() {
96+
rpcPlatformRelease := commands.PlatformReleaseToRPC(platformRelease)
97+
rpcPlatformSummary.Releases[rpcPlatformRelease.Version] = rpcPlatformRelease
10898
}
10999
out = append(out, rpcPlatformSummary)
110100
}
111101

112102
// Sort result alphabetically and put deprecated platforms at the bottom
113103
sort.Slice(out, func(i, j int) bool {
114-
return strings.ToLower(out[i].GetLatestRelease().GetName()) < strings.ToLower(out[j].GetLatestRelease().GetName())
104+
return strings.ToLower(out[i].GetMetadata().GetId()) < strings.ToLower(out[j].GetMetadata().GetId())
115105
})
116106
sort.SliceStable(out, func(i, j int) bool {
117107
return !out[i].GetMetadata().Deprecated && out[j].GetMetadata().Deprecated

Diff for: commands/core/search_test.go

+14-33
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,8 @@ func TestPlatformSearch(t *testing.T) {
4343

4444
t.Run("SearchAllVersions", func(t *testing.T) {
4545
res, stat := PlatformSearch(&rpc.PlatformSearchRequest{
46-
Instance: inst,
47-
SearchArgs: "retrokit",
48-
AllVersions: true,
46+
Instance: inst,
47+
SearchArgs: "retrokit",
4948
})
5049
require.Nil(t, stat)
5150
require.NotNil(t, res)
@@ -83,23 +82,10 @@ func TestPlatformSearch(t *testing.T) {
8382
})
8483
})
8584

86-
t.Run("SearchNoAllVersions", func(t *testing.T) {
87-
// This platform doesn't contain any installable release
88-
res, stat := PlatformSearch(&rpc.PlatformSearchRequest{
89-
Instance: inst,
90-
SearchArgs: "retrokit",
91-
AllVersions: false,
92-
})
93-
require.Nil(t, stat)
94-
require.NotNil(t, res)
95-
require.Empty(t, res.SearchOutput)
96-
})
97-
9885
t.Run("SearchThePackageMaintainer", func(t *testing.T) {
9986
res, stat := PlatformSearch(&rpc.PlatformSearchRequest{
100-
Instance: inst,
101-
SearchArgs: "Retrokits (www.retrokits.com)",
102-
AllVersions: true,
87+
Instance: inst,
88+
SearchArgs: "Retrokits (www.retrokits.com)",
10389
})
10490
require.Nil(t, stat)
10591
require.NotNil(t, res)
@@ -138,9 +124,8 @@ func TestPlatformSearch(t *testing.T) {
138124

139125
t.Run("SearchPackageName", func(t *testing.T) {
140126
res, stat := PlatformSearch(&rpc.PlatformSearchRequest{
141-
Instance: inst,
142-
SearchArgs: "Retrokits-RK002",
143-
AllVersions: true,
127+
Instance: inst,
128+
SearchArgs: "Retrokits-RK002",
144129
})
145130
require.Nil(t, stat)
146131
require.NotNil(t, res)
@@ -179,9 +164,8 @@ func TestPlatformSearch(t *testing.T) {
179164

180165
t.Run("SearchPlatformName", func(t *testing.T) {
181166
res, stat := PlatformSearch(&rpc.PlatformSearchRequest{
182-
Instance: inst,
183-
SearchArgs: "rk002",
184-
AllVersions: true,
167+
Instance: inst,
168+
SearchArgs: "rk002",
185169
})
186170
require.Nil(t, stat)
187171
require.NotNil(t, res)
@@ -220,9 +204,8 @@ func TestPlatformSearch(t *testing.T) {
220204

221205
t.Run("SearchBoardName", func(t *testing.T) {
222206
res, stat := PlatformSearch(&rpc.PlatformSearchRequest{
223-
Instance: inst,
224-
SearchArgs: "Yún",
225-
AllVersions: true,
207+
Instance: inst,
208+
SearchArgs: "Yún",
226209
})
227210
require.Nil(t, stat)
228211
require.NotNil(t, res)
@@ -279,9 +262,8 @@ func TestPlatformSearch(t *testing.T) {
279262

280263
t.Run("SearchBoardName2", func(t *testing.T) {
281264
res, stat := PlatformSearch(&rpc.PlatformSearchRequest{
282-
Instance: inst,
283-
SearchArgs: "yun",
284-
AllVersions: true,
265+
Instance: inst,
266+
SearchArgs: "yun",
285267
})
286268
require.Nil(t, stat)
287269
require.NotNil(t, res)
@@ -354,9 +336,8 @@ func TestPlatformSearchSorting(t *testing.T) {
354336
require.NotNil(t, inst)
355337

356338
res, stat := PlatformSearch(&rpc.PlatformSearchRequest{
357-
Instance: inst,
358-
SearchArgs: "",
359-
AllVersions: true,
339+
Instance: inst,
340+
SearchArgs: "",
360341
})
361342
require.Nil(t, stat)
362343
require.NotNil(t, res)

Diff for: internal/cli/arguments/completion.go

+2-4
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,6 @@ func GetUninstallableCores() []string {
8585

8686
platforms, _ := core.PlatformSearch(&rpc.PlatformSearchRequest{
8787
Instance: inst,
88-
AllVersions: false,
8988
ManuallyInstalled: true,
9089
})
9190

@@ -106,9 +105,8 @@ func GetInstallableCores() []string {
106105
inst := instance.CreateAndInit()
107106

108107
platforms, _ := core.PlatformSearch(&rpc.PlatformSearchRequest{
109-
Instance: inst,
110-
SearchArgs: "",
111-
AllVersions: false,
108+
Instance: inst,
109+
SearchArgs: "",
112110
})
113111
var res []string
114112
// transform the data structure for the completion

Diff for: internal/cli/arguments/reference.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,7 @@ func ParseReference(arg string) (*Reference, error) {
9696
// try to use core.PlatformList to optimize what the user typed
9797
// (by replacing the PackageName and Architecture in ret with the content of core.GetPlatform())
9898
platforms, _ := core.PlatformSearch(&rpc.PlatformSearchRequest{
99-
Instance: instance.CreateAndInit(),
100-
AllVersions: false,
99+
Instance: instance.CreateAndInit(),
101100
})
102101
foundPlatforms := []string{}
103102
for _, platform := range platforms.GetSearchOutput() {

Diff for: internal/cli/compile/compile.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -370,9 +370,8 @@ func runCompileCommand(cmd *cobra.Command, args []string) {
370370
res.Error += fmt.Sprintln()
371371

372372
if platform, err := core.PlatformSearch(&rpc.PlatformSearchRequest{
373-
Instance: inst,
374-
SearchArgs: platformErr.Platform,
375-
AllVersions: false,
373+
Instance: inst,
374+
SearchArgs: platformErr.Platform,
376375
}); err != nil {
377376
res.Error += err.Error()
378377
} else if len(platform.GetSearchOutput()) > 0 {

Diff for: internal/cli/core/list.go

+4-15
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
package core
1717

1818
import (
19-
"fmt"
2019
"os"
2120

2221
"github.com/arduino/arduino-cli/commands/core"
@@ -63,7 +62,6 @@ func List(inst *rpc.Instance, all bool, updatableOnly bool) {
6362
func GetList(inst *rpc.Instance, all bool, updatableOnly bool) []*rpc.PlatformSummary {
6463
platforms, err := core.PlatformSearch(&rpc.PlatformSearchRequest{
6564
Instance: inst,
66-
AllVersions: true,
6765
ManuallyInstalled: true,
6866
})
6967
if err != nil {
@@ -117,20 +115,11 @@ func (ir coreListResult) String() string {
117115
t := table.New()
118116
t.SetHeader(tr("ID"), tr("Installed"), tr("Latest"), tr("Name"))
119117
for _, platform := range ir.platforms {
120-
var name string
121-
if installed := platform.GetInstalledRelease(); installed != nil {
122-
name = installed.Name
118+
latestVersion := platform.LatestVersion.String()
119+
if latestVersion == "" {
120+
latestVersion = "n/a"
123121
}
124-
if name == "" {
125-
if latest := platform.GetLatestRelease(); latest != nil {
126-
name = latest.Name
127-
}
128-
}
129-
if platform.Deprecated {
130-
name = fmt.Sprintf("[%s] %s", tr("DEPRECATED"), name)
131-
}
132-
133-
t.AddRow(platform.Id, platform.InstalledVersion, platform.LatestVersion, name)
122+
t.AddRow(platform.Id, platform.InstalledVersion, latestVersion, platform.GetPlatformName())
134123
}
135124

136125
return t.Render()

Diff for: internal/cli/core/search.go

+7-10
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,8 @@ func runSearchCommand(cmd *cobra.Command, args []string, allVersions bool) {
7272
logrus.Infof("Executing `arduino-cli core search` with args: '%s'", arguments)
7373

7474
resp, err := core.PlatformSearch(&rpc.PlatformSearchRequest{
75-
Instance: inst,
76-
SearchArgs: arguments,
77-
AllVersions: allVersions,
75+
Instance: inst,
76+
SearchArgs: arguments,
7877
})
7978
if err != nil {
8079
feedback.Fatal(tr("Error searching for platforms: %v", err), feedback.ErrGeneric)
@@ -115,19 +114,17 @@ func (sr searchResults) String() string {
115114
t.SetHeader(tr("ID"), tr("Version"), tr("Name"))
116115

117116
addRow := func(platform *result.PlatformSummary, release *result.PlatformRelease) {
118-
name := release.Name
119-
if release.Deprecated {
120-
name = fmt.Sprintf("[%s] %s", tr("DEPRECATED"), release.Name)
117+
if release == nil {
118+
t.AddRow(platform.Id, "n/a", platform.GetPlatformName())
119+
return
121120
}
122-
t.AddRow(platform.Id, release.Version, name)
121+
t.AddRow(platform.Id, release.Version, release.FormatName())
123122
}
124123

125124
for _, platform := range sr.platforms {
126125
// When allVersions is not requested we only show the latest compatible version
127126
if !sr.allVersions {
128-
if latest := platform.GetLatestRelease(); latest != nil {
129-
addRow(platform, latest)
130-
}
127+
addRow(platform, platform.GetLatestRelease())
131128
continue
132129
}
133130

Diff for: internal/cli/core/upgrade.go

+8-9
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,7 @@ func Upgrade(inst *rpc.Instance, args []string, skipPostInstall bool, skipPreUni
6161
// if no platform was passed, upgrade allthethings
6262
if len(args) == 0 {
6363
platforms, err := core.PlatformSearch(&rpc.PlatformSearchRequest{
64-
Instance: inst,
65-
AllVersions: false,
64+
Instance: inst,
6665
})
6766
if err != nil {
6867
feedback.Fatal(tr("Error retrieving core list: %v", err), feedback.ErrGeneric)
@@ -73,14 +72,14 @@ func Upgrade(inst *rpc.Instance, args []string, skipPostInstall bool, skipPreUni
7372
if platform.InstalledVersion == "" {
7473
continue
7574
}
76-
if platform.InstalledVersion == platform.GetLatestVersion() {
77-
// if it's not updatable, skip it
78-
continue
75+
// if it's not updatable, skip it
76+
latestRelease := platform.GetLatestRelease()
77+
if latestRelease != nil && platform.InstalledVersion != latestRelease.Version {
78+
targets = append(targets, &rpc.Platform{
79+
Metadata: platform.GetMetadata(),
80+
Release: latestRelease,
81+
})
7982
}
80-
targets = append(targets, &rpc.Platform{
81-
Metadata: platform.GetMetadata(),
82-
Release: platform.GetLatestRelease(),
83-
})
8483
}
8584

8685
if len(targets) == 0 {

0 commit comments

Comments
 (0)