Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitc1dcf01

Browse files
authored
Reduce priority for IDE-bundled platform releases (#579)
Fixarduino/Arduino#9724
1 parent553b7be commitc1dcf01

File tree

3 files changed

+28
-1
lines changed

3 files changed

+28
-1
lines changed

‎arduino/cores/cores.go‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ type PlatformRelease struct {
4747
Programmersmap[string]*properties.Map`json:"-"`
4848
Menus*properties.Map`json:"-"`
4949
InstallDir*paths.Path`json:"-"`
50+
IsIDEBundledbool`json:"-"`
5051
}
5152

5253
// BoardManifest contains information about a board. These metadata are usually

‎arduino/cores/packagemanager/loader.go‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ func (pm *PackageManager) loadPlatforms(targetPackage *cores.Package, packageDir
179179
}
180180

181181
// check if package_bundled_index.json exists
182+
isIDEBundled:=false
182183
packageBundledIndexPath:=packageDir.Parent().Join("package_index_bundled.json")
183184
ifpackageBundledIndexPath.Exist() {
184185
// particular case: ARCHITECTURE/boards.txt with package_bundled_index.json
@@ -204,13 +205,19 @@ func (pm *PackageManager) loadPlatforms(targetPackage *cores.Package, packageDir
204205
}else {
205206
version=tmpPlatformRelease.Version
206207
}
208+
209+
isIDEBundled=true
207210
}
208211

209212
platform:=targetPackage.GetOrCreatePlatform(architecture)
210213
release,err:=platform.GetOrCreateRelease(version)
211214
iferr!=nil {
212215
returnfmt.Errorf("loading platform release: %s",err)
213216
}
217+
release.IsIDEBundled=isIDEBundled
218+
ifisIDEBundled {
219+
pm.Log.Infof("Package is built-in")
220+
}
214221
iferr:=pm.loadPlatformRelease(release,platformPath);err!=nil {
215222
returnfmt.Errorf("loading platform release: %s",err)
216223
}

‎arduino/cores/packagemanager/package_manager.go‎

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,23 +323,42 @@ func (tr *ToolReleaseActions) Get() (*cores.ToolRelease, error) {
323323

324324
// GetInstalledPlatformRelease returns the PlatformRelease installed (it is chosen)
325325
func (pm*PackageManager)GetInstalledPlatformRelease(platform*cores.Platform)*cores.PlatformRelease {
326+
pm.Log.Infof("Selecting installed platform release for %s",platform)
326327
releases:=platform.GetAllInstalled()
327328
iflen(releases)==0 {
328329
returnnil
329330
}
331+
332+
log:=func(msgstring,pl*cores.PlatformRelease) {
333+
pm.Log.WithField("bundle",pl.IsIDEBundled).
334+
WithField("version",pl.Version).
335+
WithField("managed",pm.IsManagedPlatformRelease(pl)).
336+
Infof("%s: %s",msg,pl)
337+
}
338+
330339
best:=releases[0]
331340
bestIsManaged:=pm.IsManagedPlatformRelease(best)
341+
log("current best",best)
342+
332343
for_,candidate:=rangereleases[1:] {
333344
candidateIsManaged:=pm.IsManagedPlatformRelease(candidate)
345+
log("candidate",candidate)
346+
// TODO: Disentangle this algorithm and make it more straightforward
334347
ifbestIsManaged==candidateIsManaged {
335-
ifcandidate.Version.GreaterThan(best.Version) {
348+
ifbest.IsIDEBundled==candidate.IsIDEBundled {
349+
ifcandidate.Version.GreaterThan(best.Version) {
350+
best=candidate
351+
}
352+
}
353+
ifbest.IsIDEBundled&&!candidate.IsIDEBundled {
336354
best=candidate
337355
}
338356
}
339357
if!bestIsManaged&&candidateIsManaged {
340358
best=candidate
341359
bestIsManaged=true
342360
}
361+
log("current best",best)
343362
}
344363
returnbest
345364
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp