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

Commit e75b3de

Browse files
authored
Merge pull request #293 from per1234/monitordependencies
Add schema-based rules for pluggable monitor dependencies data of package index
2 parents 2fde624 + ec2851f commit e75b3de

File tree

19 files changed

+1140
-10
lines changed

19 files changed

+1140
-10
lines changed

‎etc/schemas/arduino-package-index-definitions-schema.json‎

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -455,6 +455,9 @@
455455
},
456456
"discoveryDependencies": {
457457
"$ref": "#/definitions/propertiesObjects/discoveryDependencies/permissive/object"
458+
},
459+
"monitorDependencies": {
460+
"$ref": "#/definitions/propertiesObjects/monitorDependencies/permissive/object"
458461
}
459462
},
460463
"additionalProperties": false
@@ -510,6 +513,9 @@
510513
},
511514
"discoveryDependencies": {
512515
"$ref": "#/definitions/propertiesObjects/discoveryDependencies/specification/object"
516+
},
517+
"monitorDependencies": {
518+
"$ref": "#/definitions/propertiesObjects/monitorDependencies/specification/object"
513519
}
514520
},
515521
"additionalProperties": false
@@ -565,6 +571,9 @@
565571
},
566572
"discoveryDependencies": {
567573
"$ref": "#/definitions/propertiesObjects/discoveryDependencies/strict/object"
574+
},
575+
"monitorDependencies": {
576+
"$ref": "#/definitions/propertiesObjects/monitorDependencies/strict/object"
568577
}
569578
},
570579
"additionalProperties": false
@@ -1084,6 +1093,83 @@
10841093
}
10851094
}
10861095
},
1096+
"monitorDependencies": {
1097+
"base": {
1098+
"object": {
1099+
"type": "array",
1100+
"items": {
1101+
"type": "object",
1102+
"required": ["packager", "name"]
1103+
}
1104+
}
1105+
},
1106+
"permissive": {
1107+
"object": {
1108+
"allOf": [
1109+
{
1110+
"$ref": "#/definitions/propertiesObjects/monitorDependencies/base/object"
1111+
},
1112+
{
1113+
"items": {
1114+
"properties": {
1115+
"packager": {
1116+
"$ref": "#/definitions/propertiesObjects/packager/permissive/object"
1117+
},
1118+
"name": {
1119+
"$ref": "#/definitions/propertiesObjects/toolName/permissive/object"
1120+
}
1121+
},
1122+
"additionalProperties": false
1123+
}
1124+
}
1125+
]
1126+
}
1127+
},
1128+
"specification": {
1129+
"object": {
1130+
"allOf": [
1131+
{
1132+
"$ref": "#/definitions/propertiesObjects/monitorDependencies/base/object"
1133+
},
1134+
{
1135+
"items": {
1136+
"properties": {
1137+
"packager": {
1138+
"$ref": "#/definitions/propertiesObjects/packager/specification/object"
1139+
},
1140+
"name": {
1141+
"$ref": "#/definitions/propertiesObjects/toolName/specification/object"
1142+
}
1143+
},
1144+
"additionalProperties": false
1145+
}
1146+
}
1147+
]
1148+
}
1149+
},
1150+
"strict": {
1151+
"object": {
1152+
"allOf": [
1153+
{
1154+
"$ref": "#/definitions/propertiesObjects/monitorDependencies/base/object"
1155+
},
1156+
{
1157+
"items": {
1158+
"properties": {
1159+
"packager": {
1160+
"$ref": "#/definitions/propertiesObjects/packager/strict/object"
1161+
},
1162+
"name": {
1163+
"$ref": "#/definitions/propertiesObjects/toolName/strict/object"
1164+
}
1165+
},
1166+
"additionalProperties": false
1167+
}
1168+
}
1169+
]
1170+
}
1171+
}
1172+
},
10871173
"packager": {
10881174
"base": {
10891175
"object": {

‎internal/project/packageindex/packageindexschemas_test.go‎

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,12 @@ var validIndexRaw = []byte(`
7171
"packager": "arduino",
7272
"name": "ble-discovery"
7373
}
74+
],
75+
"monitorDependencies": [
76+
{
77+
"packager": "arduino",
78+
"name": "network-monitor"
79+
}
7480
]
7581
}
7682
],
@@ -152,6 +158,14 @@ func TestMinLength(t *testing.T) {
152158
{"/packages/0/platforms/0/discoveryDependencies/0/name", 1, compliancelevel.Specification},
153159
{"/packages/0/platforms/0/discoveryDependencies/0/name", 1, compliancelevel.Strict},
154160

161+
{"/packages/0/platforms/0/monitorDependencies/0/packager", 1, compliancelevel.Permissive},
162+
{"/packages/0/platforms/0/monitorDependencies/0/packager", 1, compliancelevel.Specification},
163+
{"/packages/0/platforms/0/monitorDependencies/0/packager", 1, compliancelevel.Strict},
164+
165+
{"/packages/0/platforms/0/monitorDependencies/0/name", 1, compliancelevel.Permissive},
166+
{"/packages/0/platforms/0/monitorDependencies/0/name", 1, compliancelevel.Specification},
167+
{"/packages/0/platforms/0/monitorDependencies/0/name", 1, compliancelevel.Strict},
168+
155169
{"/packages/0/tools/0/systems/0/archiveFileName", 1, compliancelevel.Permissive},
156170
{"/packages/0/tools/0/systems/0/archiveFileName", 1, compliancelevel.Specification},
157171
{"/packages/0/tools/0/systems/0/archiveFileName", 1, compliancelevel.Strict},
@@ -303,6 +317,18 @@ func TestRequired(t *testing.T) {
303317
{"/packages/0/platforms/0/discoveryDependencies/0/name", compliancelevel.Specification, assert.True},
304318
{"/packages/0/platforms/0/discoveryDependencies/0/name", compliancelevel.Strict, assert.True},
305319

320+
{"/packages/0/platforms/0/monitorDependencies", compliancelevel.Permissive, assert.False},
321+
{"/packages/0/platforms/0/monitorDependencies", compliancelevel.Specification, assert.False},
322+
{"/packages/0/platforms/0/monitorDependencies", compliancelevel.Strict, assert.False},
323+
324+
{"/packages/0/platforms/0/monitorDependencies/0/packager", compliancelevel.Permissive, assert.True},
325+
{"/packages/0/platforms/0/monitorDependencies/0/packager", compliancelevel.Specification, assert.True},
326+
{"/packages/0/platforms/0/monitorDependencies/0/packager", compliancelevel.Strict, assert.True},
327+
328+
{"/packages/0/platforms/0/monitorDependencies/0/name", compliancelevel.Permissive, assert.True},
329+
{"/packages/0/platforms/0/monitorDependencies/0/name", compliancelevel.Specification, assert.True},
330+
{"/packages/0/platforms/0/monitorDependencies/0/name", compliancelevel.Strict, assert.True},
331+
306332
{"/packages/0/tools/0/name", compliancelevel.Permissive, assert.True},
307333
{"/packages/0/tools/0/name", compliancelevel.Specification, assert.True},
308334
{"/packages/0/tools/0/name", compliancelevel.Strict, assert.True},
@@ -586,6 +612,9 @@ func TestType(t *testing.T) {
586612
{"/packages/0/platforms/0/discoveryDependencies", 42, assert.True},
587613
{"/packages/0/platforms/0/discoveryDependencies/0/packager", 42, assert.True},
588614
{"/packages/0/platforms/0/discoveryDependencies/0/name", 42, assert.True},
615+
{"/packages/0/platforms/0/monitorDependencies", 42, assert.True},
616+
{"/packages/0/platforms/0/monitorDependencies/0/packager", 42, assert.True},
617+
{"/packages/0/platforms/0/monitorDependencies/0/name", 42, assert.True},
589618
{"/packages/0/tools", 42, assert.True},
590619
{"/packages/0/tools/0/name", 42, assert.True},
591620
{"/packages/0/tools/0/version", 42, assert.True},
@@ -717,6 +746,10 @@ func TestAdditionalProperties(t *testing.T) {
717746
{"/packages/0/platforms/0/discoveryDependencies/0", compliancelevel.Specification, assert.True},
718747
{"/packages/0/platforms/0/discoveryDependencies/0", compliancelevel.Strict, assert.True},
719748

749+
{"/packages/0/platforms/0/monitorDependencies/0", compliancelevel.Permissive, assert.True},
750+
{"/packages/0/platforms/0/monitorDependencies/0", compliancelevel.Specification, assert.True},
751+
{"/packages/0/platforms/0/monitorDependencies/0", compliancelevel.Strict, assert.True},
752+
720753
{"/packages/0/tools/0", compliancelevel.Permissive, assert.True},
721754
{"/packages/0/tools/0", compliancelevel.Specification, assert.True},
722755
{"/packages/0/tools/0", compliancelevel.Strict, assert.True},

‎internal/project/projectdata/packageindex.go‎

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ func InitializeForPackageIndex() {
4646
packageIndexBoards = nil
4747
packageIndexToolsDependencies = nil
4848
packageIndexDiscoveryDependencies = nil
49+
packageIndexMonitorDependencies = nil
4950
packageIndexTools = nil
5051
packageIndexSystems = nil
5152
packageIndexSchemaValidationResult = nil
@@ -54,22 +55,14 @@ func InitializeForPackageIndex() {
5455

5556
for _, packageData := range PackageIndexPackages() {
5657
packageIndexPlatforms = append(packageIndexPlatforms, getPackageIndexData(packageData.Object, packageData.JSONPointer, "platforms", packageData.ID, ":{{index . 0}}@{{index . 1}}", []string{"architecture", "version"})...)
58+
packageIndexTools = append(packageIndexTools, getPackageIndexData(packageData.Object, packageData.JSONPointer, "tools", packageData.ID, ":{{index . 0}}@{{index . 1}}", []string{"name", "version"})...)
5759
}
5860

5961
for _, platformData := range PackageIndexPlatforms() {
6062
packageIndexBoards = append(packageIndexBoards, getPackageIndexData(platformData.Object, platformData.JSONPointer, "boards", platformData.ID, " >> {{index . 0}}", []string{"name"})...)
61-
}
62-
63-
for _, platformData := range PackageIndexPlatforms() {
6463
packageIndexToolsDependencies = append(packageIndexToolsDependencies, getPackageIndexData(platformData.Object, platformData.JSONPointer, "toolsDependencies", platformData.ID, " >> {{index . 0}}:{{index . 1}}@{{index . 2}}", []string{"packager", "name", "version"})...)
65-
}
66-
67-
for _, platformData := range PackageIndexPlatforms() {
6864
packageIndexDiscoveryDependencies = append(packageIndexDiscoveryDependencies, getPackageIndexData(platformData.Object, platformData.JSONPointer, "discoveryDependencies", platformData.ID, " >> {{index . 0}}:{{index . 1}}", []string{"packager", "name"})...)
69-
}
70-
71-
for _, packageData := range PackageIndexPackages() {
72-
packageIndexTools = append(packageIndexTools, getPackageIndexData(packageData.Object, packageData.JSONPointer, "tools", packageData.ID, ":{{index . 0}}@{{index . 1}}", []string{"name", "version"})...)
65+
packageIndexMonitorDependencies = append(packageIndexMonitorDependencies, getPackageIndexData(platformData.Object, platformData.JSONPointer, "monitorDependencies", platformData.ID, " >> {{index . 0}}:{{index . 1}}", []string{"packager", "name"})...)
7366
}
7467

7568
for _, toolData := range PackageIndexTools() {
@@ -136,6 +129,13 @@ func PackageIndexDiscoveryDependencies() []PackageIndexData {
136129
return packageIndexDiscoveryDependencies
137130
}
138131

132+
var packageIndexMonitorDependencies []PackageIndexData
133+
134+
// PackageIndexMonitorDependencies returns the slice of pluggable monitor tool dependency data for the package index.
135+
func PackageIndexMonitorDependencies() []PackageIndexData {
136+
return packageIndexMonitorDependencies
137+
}
138+
139139
var packageIndexTools []PackageIndexData
140140

141141
// PackageIndexTools returns the slice of tool data for the package index.

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /