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

Commit95584cc

Browse files
committed
Use JSON pointer as package component ID when standard ID component empty
In cases where the data used to assemble the standard ID used to refer to a package component is undefined, the JSONpointer is used.Previously, when the data is defined, but empty, the standard ID format was used. But this will not be very meaningful.In this case, the JSON pointer will serve as a more useful ID.
1 parentf3c4d55 commit95584cc

File tree

3 files changed

+273
-5
lines changed

3 files changed

+273
-5
lines changed

‎internal/project/projectdata/packageindex.go‎

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -127,24 +127,31 @@ func getPackageIndexData(interfaceObject map[string]interface{}, pointerPrefix s
127127
}
128128

129129
objectID:=func()string {
130+
// In the event missing data prevents creating a standard reference ID for the data, use the JSON pointer.
131+
fallbackID:=interfaceElementData.JSONPointer
132+
130133
ifiDPrefix!=""&&strings.HasPrefix(iDPrefix,pointerPrefix) {
131134
// Parent object uses fallback ID, so this one must even if it was possible to generate a true suffix.
132-
returninterfaceElementData.JSONPointer
135+
returnfallbackID
133136
}
134137
iD:=iDPrefix
135138

136139
iDSuffix,ok:=object[iDKey].(string)
137140
if!ok {
138-
// Use fallback ID.
139-
returninterfaceElementData.JSONPointer
141+
returnfallbackID
142+
}
143+
ifiDSuffix=="" {
144+
returnfallbackID
140145
}
141146
iD+=iDSuffix
142147

143148
ifversionKey!="" {
144149
iDVersion,ok:=object[versionKey].(string)
145150
if!ok {
146-
// Use fallback ID.
147-
returninterfaceElementData.JSONPointer
151+
returnfallbackID
152+
}
153+
ifiDVersion=="" {
154+
returnfallbackID
148155
}
149156
iD+="@"+iDVersion
150157
}

‎internal/project/projectdata/packageindex_test.go‎

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,81 @@ func TestInitializeForPackageIndex(t *testing.T) {
192192
},
193193
},
194194
},
195+
{
196+
testName:"Empty IDs",
197+
path:packageIndexTestDataPath.Join("empty-ids","package_foo_index.json"),
198+
packageIndexAssertion:assert.NotNil,
199+
packageIndexLoadErrorAssertion:assert.Nil,
200+
packageIndexCLILoadErrorAssertion:assert.Nil,
201+
packageIndexPackagesAssertion:assert.NotNil,
202+
packageIndexPackagesDataAssertion: []PackageIndexData{
203+
{
204+
ID:"/packages/0",
205+
JSONPointer:"/packages/0",
206+
},
207+
{
208+
ID:"foopackager2",
209+
JSONPointer:"/packages/1",
210+
},
211+
},
212+
packageIndexPlatformsAssertion:assert.NotNil,
213+
packageIndexPlatformsDataAssertion: []PackageIndexData{
214+
{
215+
ID:"/packages/0/platforms/0",
216+
JSONPointer:"/packages/0/platforms/0",
217+
},
218+
{
219+
ID:"/packages/0/platforms/1",
220+
JSONPointer:"/packages/0/platforms/1",
221+
},
222+
{
223+
ID:"/packages/1/platforms/0",
224+
JSONPointer:"/packages/1/platforms/0",
225+
},
226+
{
227+
ID:"/packages/1/platforms/1",
228+
JSONPointer:"/packages/1/platforms/1",
229+
},
230+
},
231+
packageIndexToolsAssertion:assert.NotNil,
232+
packageIndexToolsDataAssertion: []PackageIndexData{
233+
{
234+
ID:"/packages/1/tools/0",
235+
JSONPointer:"/packages/1/tools/0",
236+
},
237+
{
238+
ID:"/packages/1/tools/1",
239+
JSONPointer:"/packages/1/tools/1",
240+
},
241+
{
242+
ID:"foopackager2:bossac@1.9.1-arduino2",
243+
JSONPointer:"/packages/1/tools/2",
244+
},
245+
},
246+
packageIndexSystemsAssertion:assert.NotNil,
247+
packageIndexSystemsDataAssertion: []PackageIndexData{
248+
{
249+
ID:"/packages/1/tools/0/systems/0",
250+
JSONPointer:"/packages/1/tools/0/systems/0",
251+
},
252+
{
253+
ID:"/packages/1/tools/0/systems/1",
254+
JSONPointer:"/packages/1/tools/0/systems/1",
255+
},
256+
{
257+
ID:"/packages/1/tools/1/systems/0",
258+
JSONPointer:"/packages/1/tools/1/systems/0",
259+
},
260+
{
261+
ID:"/packages/1/tools/1/systems/1",
262+
JSONPointer:"/packages/1/tools/1/systems/1",
263+
},
264+
{
265+
ID:"/packages/1/tools/2/systems/0",
266+
JSONPointer:"/packages/1/tools/2/systems/0",
267+
},
268+
},
269+
},
195270
{
196271
testName:"Invalid package index",
197272
path:packageIndexTestDataPath.Join("invalid-package-index","package_foo_index.json"),
Lines changed: 186 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,186 @@
1+
{
2+
"packages": [
3+
{
4+
"name":"",
5+
"maintainer":"Jane Developer",
6+
"websiteURL":"https://github.com/janedeveloper/myboard",
7+
"email":"jane@example.com",
8+
"help": {
9+
"online":"http://example.com/forum/myboard"
10+
},
11+
"platforms": [
12+
{
13+
"name":"My Board",
14+
"architecture":"avr",
15+
"version":"1.0.0",
16+
"category":"Contributed",
17+
"help": {
18+
"online":"http://example.com/forum/myboard"
19+
},
20+
"url":"https://janedeveloper.github.io/myboard/myboard-1.0.0.zip",
21+
"archiveFileName":"myboard-1.0.0.zip",
22+
"checksum":"SHA-256:ec3ff8a1dc96d3ba6f432b9b837a35fd4174a34b3d2927de1d51010e8b94f9f1",
23+
"size":"15005",
24+
"boards": [{"name":"My Board" }, {"name":"My Board Pro" }],
25+
"toolsDependencies": [
26+
{
27+
"packager":"arduino",
28+
"name":"avr-gcc",
29+
"version":"4.8.1-arduino5"
30+
},
31+
{
32+
"packager":"arduino",
33+
"name":"avrdude",
34+
"version":"6.0.1-arduino5"
35+
}
36+
]
37+
},
38+
{
39+
"name":"My Board",
40+
"architecture":"avr",
41+
"version":"1.0.1",
42+
"category":"Contributed",
43+
"help": {
44+
"online":"http://example.com/forum/myboard"
45+
},
46+
"url":"https://janedeveloper.github.io/myboard/myboard-1.0.1.zip",
47+
"archiveFileName":"myboard-1.0.1.zip",
48+
"checksum":"SHA-256:9c86ee28a7ce9fe33e8b07ec643316131e0031b0d22e63bb398902a5fdadbca9",
49+
"size":"15125",
50+
"boards": [{"name":"My Board" }, {"name":"My Board Pro" }],
51+
"toolsDependencies": [
52+
{
53+
"packager":"arduino",
54+
"name":"avr-gcc",
55+
"version":"4.8.1-arduino5"
56+
},
57+
{
58+
"packager":"arduino",
59+
"name":"avrdude",
60+
"version":"6.0.1-arduino5"
61+
}
62+
]
63+
}
64+
],
65+
"tools": []
66+
},
67+
{
68+
"name":"foopackager2",
69+
"maintainer":"Jane Developer",
70+
"websiteURL":"https://github.com/janedeveloper/myboard",
71+
"email":"jane@example.com",
72+
"help": {
73+
"online":"http://example.com/forum/myboard"
74+
},
75+
"platforms": [
76+
{
77+
"name":"My Board",
78+
"architecture":"",
79+
"version":"2.0.0",
80+
"category":"Contributed",
81+
"help": {
82+
"online":"http://example.com/forum/myboard"
83+
},
84+
"url":"https://janedeveloper.github.io/myboard/myboard-1.0.0.zip",
85+
"archiveFileName":"myboard-1.0.0.zip",
86+
"checksum":"SHA-256:ec3ff8a1dc96d3ba6f432b9b837a35fd4174a34b3d2927de1d51010e8b94f9f1",
87+
"size":"15005",
88+
"boards": [{"name":"My Board" }, {"name":"My Board Pro" }],
89+
"toolsDependencies": [
90+
{
91+
"packager":"arduino",
92+
"name":"avr-gcc",
93+
"version":"4.8.1-arduino5"
94+
},
95+
{
96+
"packager":"arduino",
97+
"name":"avrdude",
98+
"version":"6.0.1-arduino5"
99+
}
100+
]
101+
},
102+
{
103+
"name":"My Board",
104+
"architecture":"mbed",
105+
"version":"",
106+
"category":"Contributed",
107+
"help": {
108+
"online":"http://example.com/forum/myboard"
109+
},
110+
"url":"https://janedeveloper.github.io/myboard/myboard-1.0.1.zip",
111+
"archiveFileName":"myboard-1.0.1.zip",
112+
"checksum":"SHA-256:9c86ee28a7ce9fe33e8b07ec643316131e0031b0d22e63bb398902a5fdadbca9",
113+
"size":"15125",
114+
"boards": [{"name":"My Board" }, {"name":"My Board Pro" }],
115+
"toolsDependencies": [
116+
{
117+
"packager":"arduino",
118+
"name":"avr-gcc",
119+
"version":"4.8.1-arduino5"
120+
},
121+
{
122+
"packager":"arduino",
123+
"name":"avrdude",
124+
"version":"6.0.1-arduino5"
125+
}
126+
]
127+
}
128+
],
129+
"tools": [
130+
{
131+
"name":"",
132+
"version":"0.10.0-arduino1-static",
133+
"systems": [
134+
{
135+
"host":"i386-apple-darwin11",
136+
"url":"http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-osx-static.tar.gz",
137+
"archiveFileName":"OpenOCD-0.10.0-nrf52-osx-static.tar.gz",
138+
"size":"1529841",
139+
"checksum":"SHA-256:46bd02c1d42c5d94c4936e4d4a0ff29697b621840be9a6f882e316203122049d"
140+
},
141+
{
142+
"host":"x86_64-linux-gnu",
143+
"url":"http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-linux64-static.tar.gz",
144+
"archiveFileName":"OpenOCD-0.10.0-nrf52-linux64-static.tar.gz",
145+
"size":"1777984",
146+
"checksum":"SHA-256:1c9ae77930dd7377d8c13f84abe7307b67fdcd6da74cc1ce269a79e138e7a00a"
147+
}
148+
]
149+
},
150+
{
151+
"name":"CMSIS",
152+
"version":"",
153+
"systems": [
154+
{
155+
"host":"arm-linux-gnueabihf",
156+
"url":"http://example.com",
157+
"archiveFileName":"CMSIS-4.0.0.tar.bz2",
158+
"checksum":"SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7",
159+
"size":"17642623"
160+
},
161+
{
162+
"host":"i686-mingw32",
163+
"url":"http://example.com",
164+
"archiveFileName":"CMSIS-4.0.0.tar.bz2",
165+
"checksum":"SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7",
166+
"size":"17642623"
167+
}
168+
]
169+
},
170+
{
171+
"name":"bossac",
172+
"version":"1.9.1-arduino2",
173+
"systems": [
174+
{
175+
"host":"",
176+
"url":"http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-linuxaarch64.tar.gz",
177+
"archiveFileName":"bossac-1.9.1-arduino2-linuxaarch64.tar.gz",
178+
"checksum":"SHA-256:c167fa0ea223966f4d21f5592da3888bcbfbae385be6c5c4e41f8abff35f5cb1",
179+
"size":"442853"
180+
}
181+
]
182+
}
183+
]
184+
}
185+
]
186+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp