Skip to content

Commit 98f795d

Browse files
authored
bugfix: Install pluggable monitor dependencies together with a platform (#1637)
* bugfix: monitorDependencies are now installed with the core * added test
1 parent 23e7cb5 commit 98f795d

File tree

3 files changed

+236
-2
lines changed

3 files changed

+236
-2
lines changed

arduino/cores/packagemanager/download.go

+11-2
Original file line numberDiff line numberDiff line change
@@ -96,14 +96,23 @@ func (pm *PackageManager) FindPlatformReleaseDependencies(item *PlatformReferenc
9696
return nil, nil, fmt.Errorf(tr("getting tool dependencies for platform %[1]s: %[2]s"), release.String(), err)
9797
}
9898

99-
// discovery dependencies differ from normal tool since we always want to use the latest \
99+
// discovery dependencies differ from normal tool since we always want to use the latest
100100
// available version for the platform package
101101
discoveryDependencies, err := pm.Packages.GetPlatformReleaseDiscoveryDependencies(release)
102102
if err != nil {
103103
return nil, nil, fmt.Errorf(tr("getting discovery dependencies for platform %[1]s: %[2]s"), release.String(), err)
104104
}
105+
toolDeps = append(toolDeps, discoveryDependencies...)
105106

106-
return release, append(toolDeps, discoveryDependencies...), nil
107+
// monitor dependencies differ from normal tool since we always want to use the latest
108+
// available version for the platform package
109+
monitorDependencies, err := pm.Packages.GetPlatformReleaseMonitorDependencies(release)
110+
if err != nil {
111+
return nil, nil, fmt.Errorf(tr("getting monitor dependencies for platform %[1]s: %[2]s"), release.String(), err)
112+
}
113+
toolDeps = append(toolDeps, monitorDependencies...)
114+
115+
return release, toolDeps, nil
107116
}
108117

109118
// DownloadToolRelease downloads a ToolRelease. If the tool is already downloaded a nil Downloader

arduino/cores/packagemanager/package_manager_test.go

+10
Original file line numberDiff line numberDiff line change
@@ -443,6 +443,16 @@ func TestFindToolsRequiredFromPlatformRelease(t *testing.T) {
443443
require.Len(t, tools, 6)
444444
}
445445

446+
func TestFindPlatformReleaseDependencies(t *testing.T) {
447+
pm := packagemanager.NewPackageManager(nil, nil, nil, nil)
448+
pm.LoadPackageIndexFromFile(paths.New("testdata", "package_tooltest_index.json"))
449+
pl, tools, err := pm.FindPlatformReleaseDependencies(&packagemanager.PlatformReference{Package: "test", PlatformArchitecture: "avr"})
450+
require.NoError(t, err)
451+
require.NotNil(t, pl)
452+
require.Len(t, tools, 3)
453+
require.Equal(t, "[test:[email protected] test:[email protected] test:[email protected]]", fmt.Sprint(tools))
454+
}
455+
446456
func TestLegacyPackageConversionToPluggableDiscovery(t *testing.T) {
447457
// Pass nil, since these paths are only used for installing
448458
pm := packagemanager.NewPackageManager(nil, nil, nil, nil)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,215 @@
1+
{
2+
"packages": [
3+
{
4+
"name": "test",
5+
"maintainer": "foo",
6+
"websiteURL": "http://example.com/",
7+
"email": "[email protected]",
8+
"help": {
9+
"online": "http://example.com"
10+
},
11+
"platforms": [
12+
{
13+
"name": "Foo Boards",
14+
"architecture": "avr",
15+
"version": "1.2.3",
16+
"category": "Contributed",
17+
"help": {
18+
"online": "http://example.com/"
19+
},
20+
"url": "http://downloads.arduino.cc/cores/avr-1.8.3.tar.bz2",
21+
"archiveFileName": "avr-1.8.3.tar.bz2",
22+
"checksum": "SHA-256:de8a9b982477762d3d3e52fc2b682cdd8ff194dc3f1d46f4debdea6a01b33c14",
23+
"size": "4941548",
24+
"boards": [],
25+
"toolsDependencies": [
26+
{
27+
"packager": "test",
28+
"name": "some-tool",
29+
"version": "0.42.0"
30+
}
31+
],
32+
"discoveryDependencies": [
33+
{
34+
"packager": "test",
35+
"name": "discovery-tool"
36+
}
37+
],
38+
"monitorDependencies": [
39+
{
40+
"packager": "test",
41+
"name": "monitor-tool"
42+
}
43+
]
44+
}
45+
],
46+
"tools": [
47+
{
48+
"name": "some-tool",
49+
"version": "0.42.0",
50+
"systems": [
51+
{
52+
"host": "i686-pc-linux-gnu",
53+
"archiveFileName": "serial-discovery_v1.3.0-rc1_Linux_32bit.tar.bz2",
54+
"url": "https://downloads.arduino.cc/discovery/serial-discovery/serial-discovery_v1.3.0-rc1_Linux_32bit.tar.gz",
55+
"size": 1633143,
56+
"checksum": "SHA-256:2fb17882018f3eefeaf933673cbc42cea83ce739503880ccc7f9cf521de0e513"
57+
},
58+
{
59+
"host": "x86_64-pc-linux-gnu",
60+
"archiveFileName": "serial-discovery_v1.3.0-rc1_Linux_64bit.tar.bz2",
61+
"url": "https://downloads.arduino.cc/discovery/serial-discovery/serial-discovery_v1.3.0-rc1_Linux_64bit.tar.gz",
62+
"size": 1688362,
63+
"checksum": "SHA-256:e0e55ea9c5e05f12af5d89dc3a69d63e12211f54122b4bf45a7cab9f0a6f89e5"
64+
},
65+
{
66+
"host": "i686-mingw32",
67+
"archiveFileName": "serial-discovery_v1.3.0-rc1_Windows_32bit.zip",
68+
"url": "https://downloads.arduino.cc/discovery/serial-discovery/serial-discovery_v1.3.0-rc1_Windows_32bit.zip",
69+
"size": 1742668,
70+
"checksum": "SHA-256:4acfe521d6fc3b29643ab69ced246d7dd20637772fc79fc3e509829c18290d90"
71+
},
72+
{
73+
"host": "x86_64-mingw32",
74+
"archiveFileName": "serial-discovery_v1.3.0-rc1_Windows_64bit.zip",
75+
"url": "https://downloads.arduino.cc/discovery/serial-discovery/serial-discovery_v1.3.0-rc1_Windows_64bit.zip",
76+
"size": 1709333,
77+
"checksum": "SHA-256:82b2edea04f7c97b98cbb04de95ec48be95de64fa5f196d730dc824d7558b952"
78+
},
79+
{
80+
"host": "x86_64-apple-darwin",
81+
"archiveFileName": "serial-discovery_v1.3.0-rc1_macOS_64bit.tar.bz2",
82+
"url": "https://downloads.arduino.cc/discovery/serial-discovery/serial-discovery_v1.3.0-rc1_macOS_64bit.tar.gz",
83+
"size": 964596,
84+
"checksum": "SHA-256:ec4be0f5c1ed6af3f31bb01ed6a5433274a76a1dc7cb68d39813b2b0475d7337"
85+
},
86+
{
87+
"host": "arm-linux-gnueabihf",
88+
"archiveFileName": "serial-discovery_v1.3.0-rc1_Linux_ARMv6.tar.bz2",
89+
"url": "https://downloads.arduino.cc/discovery/serial-discovery/serial-discovery_v1.3.0-rc1_Linux_ARMv6.tar.gz",
90+
"size": 1570847,
91+
"checksum": "SHA-256:9341e2541ad41ee2cdaad1e8d851254c8bce63c937cdafd57db7d1439d8ced59"
92+
},
93+
{
94+
"host": "arm64-linux-gnueabihf",
95+
"archiveFileName": "serial-discovery_v1.3.0-rc1_Linux_ARM64.tar.bz2",
96+
"url": "https://downloads.arduino.cc/discovery/serial-discovery/serial-discovery_v1.3.0-rc1_Linux_ARM64.tar.gz",
97+
"size": 1580108,
98+
"checksum": "SHA-256:1da38f94be8db69bbe26d6a95692b665f6bc9bf89aa62b58d4e4cfb0f7fd8733"
99+
}
100+
]
101+
},
102+
{
103+
"name": "discovery-tool",
104+
"version": "0.42.0",
105+
"systems": [
106+
{
107+
"host": "i686-pc-linux-gnu",
108+
"archiveFileName": "serial-discovery_v1.3.0-rc1_Linux_32bit.tar.bz2",
109+
"url": "https://downloads.arduino.cc/discovery/serial-discovery/serial-discovery_v1.3.0-rc1_Linux_32bit.tar.gz",
110+
"size": 1633143,
111+
"checksum": "SHA-256:2fb17882018f3eefeaf933673cbc42cea83ce739503880ccc7f9cf521de0e513"
112+
},
113+
{
114+
"host": "x86_64-pc-linux-gnu",
115+
"archiveFileName": "serial-discovery_v1.3.0-rc1_Linux_64bit.tar.bz2",
116+
"url": "https://downloads.arduino.cc/discovery/serial-discovery/serial-discovery_v1.3.0-rc1_Linux_64bit.tar.gz",
117+
"size": 1688362,
118+
"checksum": "SHA-256:e0e55ea9c5e05f12af5d89dc3a69d63e12211f54122b4bf45a7cab9f0a6f89e5"
119+
},
120+
{
121+
"host": "i686-mingw32",
122+
"archiveFileName": "serial-discovery_v1.3.0-rc1_Windows_32bit.zip",
123+
"url": "https://downloads.arduino.cc/discovery/serial-discovery/serial-discovery_v1.3.0-rc1_Windows_32bit.zip",
124+
"size": 1742668,
125+
"checksum": "SHA-256:4acfe521d6fc3b29643ab69ced246d7dd20637772fc79fc3e509829c18290d90"
126+
},
127+
{
128+
"host": "x86_64-mingw32",
129+
"archiveFileName": "serial-discovery_v1.3.0-rc1_Windows_64bit.zip",
130+
"url": "https://downloads.arduino.cc/discovery/serial-discovery/serial-discovery_v1.3.0-rc1_Windows_64bit.zip",
131+
"size": 1709333,
132+
"checksum": "SHA-256:82b2edea04f7c97b98cbb04de95ec48be95de64fa5f196d730dc824d7558b952"
133+
},
134+
{
135+
"host": "x86_64-apple-darwin",
136+
"archiveFileName": "serial-discovery_v1.3.0-rc1_macOS_64bit.tar.bz2",
137+
"url": "https://downloads.arduino.cc/discovery/serial-discovery/serial-discovery_v1.3.0-rc1_macOS_64bit.tar.gz",
138+
"size": 964596,
139+
"checksum": "SHA-256:ec4be0f5c1ed6af3f31bb01ed6a5433274a76a1dc7cb68d39813b2b0475d7337"
140+
},
141+
{
142+
"host": "arm-linux-gnueabihf",
143+
"archiveFileName": "serial-discovery_v1.3.0-rc1_Linux_ARMv6.tar.bz2",
144+
"url": "https://downloads.arduino.cc/discovery/serial-discovery/serial-discovery_v1.3.0-rc1_Linux_ARMv6.tar.gz",
145+
"size": 1570847,
146+
"checksum": "SHA-256:9341e2541ad41ee2cdaad1e8d851254c8bce63c937cdafd57db7d1439d8ced59"
147+
},
148+
{
149+
"host": "arm64-linux-gnueabihf",
150+
"archiveFileName": "serial-discovery_v1.3.0-rc1_Linux_ARM64.tar.bz2",
151+
"url": "https://downloads.arduino.cc/discovery/serial-discovery/serial-discovery_v1.3.0-rc1_Linux_ARM64.tar.gz",
152+
"size": 1580108,
153+
"checksum": "SHA-256:1da38f94be8db69bbe26d6a95692b665f6bc9bf89aa62b58d4e4cfb0f7fd8733"
154+
}
155+
]
156+
},
157+
{
158+
"name": "monitor-tool",
159+
"version": "0.42.0",
160+
"systems": [
161+
{
162+
"host": "i686-pc-linux-gnu",
163+
"archiveFileName": "serial-discovery_v1.3.0-rc1_Linux_32bit.tar.bz2",
164+
"url": "https://downloads.arduino.cc/discovery/serial-discovery/serial-discovery_v1.3.0-rc1_Linux_32bit.tar.gz",
165+
"size": 1633143,
166+
"checksum": "SHA-256:2fb17882018f3eefeaf933673cbc42cea83ce739503880ccc7f9cf521de0e513"
167+
},
168+
{
169+
"host": "x86_64-pc-linux-gnu",
170+
"archiveFileName": "serial-discovery_v1.3.0-rc1_Linux_64bit.tar.bz2",
171+
"url": "https://downloads.arduino.cc/discovery/serial-discovery/serial-discovery_v1.3.0-rc1_Linux_64bit.tar.gz",
172+
"size": 1688362,
173+
"checksum": "SHA-256:e0e55ea9c5e05f12af5d89dc3a69d63e12211f54122b4bf45a7cab9f0a6f89e5"
174+
},
175+
{
176+
"host": "i686-mingw32",
177+
"archiveFileName": "serial-discovery_v1.3.0-rc1_Windows_32bit.zip",
178+
"url": "https://downloads.arduino.cc/discovery/serial-discovery/serial-discovery_v1.3.0-rc1_Windows_32bit.zip",
179+
"size": 1742668,
180+
"checksum": "SHA-256:4acfe521d6fc3b29643ab69ced246d7dd20637772fc79fc3e509829c18290d90"
181+
},
182+
{
183+
"host": "x86_64-mingw32",
184+
"archiveFileName": "serial-discovery_v1.3.0-rc1_Windows_64bit.zip",
185+
"url": "https://downloads.arduino.cc/discovery/serial-discovery/serial-discovery_v1.3.0-rc1_Windows_64bit.zip",
186+
"size": 1709333,
187+
"checksum": "SHA-256:82b2edea04f7c97b98cbb04de95ec48be95de64fa5f196d730dc824d7558b952"
188+
},
189+
{
190+
"host": "x86_64-apple-darwin",
191+
"archiveFileName": "serial-discovery_v1.3.0-rc1_macOS_64bit.tar.bz2",
192+
"url": "https://downloads.arduino.cc/discovery/serial-discovery/serial-discovery_v1.3.0-rc1_macOS_64bit.tar.gz",
193+
"size": 964596,
194+
"checksum": "SHA-256:ec4be0f5c1ed6af3f31bb01ed6a5433274a76a1dc7cb68d39813b2b0475d7337"
195+
},
196+
{
197+
"host": "arm-linux-gnueabihf",
198+
"archiveFileName": "serial-discovery_v1.3.0-rc1_Linux_ARMv6.tar.bz2",
199+
"url": "https://downloads.arduino.cc/discovery/serial-discovery/serial-discovery_v1.3.0-rc1_Linux_ARMv6.tar.gz",
200+
"size": 1570847,
201+
"checksum": "SHA-256:9341e2541ad41ee2cdaad1e8d851254c8bce63c937cdafd57db7d1439d8ced59"
202+
},
203+
{
204+
"host": "arm64-linux-gnueabihf",
205+
"archiveFileName": "serial-discovery_v1.3.0-rc1_Linux_ARM64.tar.bz2",
206+
"url": "https://downloads.arduino.cc/discovery/serial-discovery/serial-discovery_v1.3.0-rc1_Linux_ARM64.tar.gz",
207+
"size": 1580108,
208+
"checksum": "SHA-256:1da38f94be8db69bbe26d6a95692b665f6bc9bf89aa62b58d4e4cfb0f7fd8733"
209+
}
210+
]
211+
}
212+
]
213+
}
214+
]
215+
}

0 commit comments

Comments
 (0)