bump JSON schema to account for simplified python env markers (#1967)

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>
This commit is contained in:
Alex Goodman 2023-07-27 10:13:17 -04:00 committed by GitHub
parent 9480f10ccd
commit d84120f499
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 1937 additions and 33 deletions

View File

@ -6,5 +6,5 @@ const (
// JSONSchemaVersion is the current schema version output by the JSON encoder // JSONSchemaVersion is the current schema version output by the JSON encoder
// This is roughly following the "SchemaVer" guidelines for versioning the JSON schema. Please see schema/json/README.md for details on how to increment. // This is roughly following the "SchemaVer" guidelines for versioning the JSON schema. Please see schema/json/README.md for details on how to increment.
JSONSchemaVersion = "9.0.2" JSONSchemaVersion = "10.0.0"
) )

File diff suppressed because it is too large Load Diff

View File

@ -156,25 +156,12 @@ func parseExtras(packageName string) []string {
return []string{} return []string{}
} }
func parseMarkers(line string) map[string]string { func parseMarkers(line string) string {
markers := map[string]string{} var markers string
parts := strings.SplitN(line, ";", 2) parts := strings.SplitN(line, ";", 2)
if len(parts) == 2 { if len(parts) == 2 {
splittableMarkers := parts[1] markers = strings.TrimSpace(parts[1])
for _, combineString := range []string{" or ", " and "} {
splittableMarkers = strings.TrimSpace(
strings.ReplaceAll(splittableMarkers, combineString, ","),
)
}
splittableMarkers = strings.TrimSpace(splittableMarkers)
for _, mark := range strings.Split(splittableMarkers, ",") {
markparts := strings.Split(mark, " ")
markers[markparts[0]] = strings.Join(markparts[1:], " ")
}
} }
return markers return markers

View File

@ -26,7 +26,6 @@ func TestParseRequirementsTxt(t *testing.T) {
Extras: []string{}, Extras: []string{},
VersionConstraint: "== 4.0.0", VersionConstraint: "== 4.0.0",
URL: "", URL: "",
Markers: map[string]string{},
}, },
}, },
{ {
@ -42,7 +41,6 @@ func TestParseRequirementsTxt(t *testing.T) {
Extras: []string{}, Extras: []string{},
VersionConstraint: "== 1.0.0", VersionConstraint: "== 1.0.0",
URL: "", URL: "",
Markers: map[string]string{},
}, },
}, },
{ {
@ -58,7 +56,7 @@ func TestParseRequirementsTxt(t *testing.T) {
Extras: []string{}, Extras: []string{},
VersionConstraint: "== 5.4", VersionConstraint: "== 5.4",
URL: "", URL: "",
Markers: map[string]string{"python_version": "< '3.8'"}, Markers: "python_version < '3.8'",
}, },
}, },
{ {
@ -74,7 +72,6 @@ func TestParseRequirementsTxt(t *testing.T) {
Extras: []string{}, Extras: []string{},
VersionConstraint: "== 0.26.2", VersionConstraint: "== 0.26.2",
URL: "", URL: "",
Markers: map[string]string{},
}, },
}, },
{ {
@ -90,7 +87,6 @@ func TestParseRequirementsTxt(t *testing.T) {
Extras: []string{}, Extras: []string{},
VersionConstraint: "== 0.26.3", VersionConstraint: "== 0.26.3",
URL: "", URL: "",
Markers: map[string]string{},
}, },
}, },
{ {
@ -106,7 +102,6 @@ func TestParseRequirementsTxt(t *testing.T) {
Extras: []string{"redis", "pytest"}, Extras: []string{"redis", "pytest"},
VersionConstraint: "== 4.4.7", VersionConstraint: "== 4.4.7",
URL: "", URL: "",
Markers: map[string]string{},
}, },
}, },
{ {
@ -122,10 +117,7 @@ func TestParseRequirementsTxt(t *testing.T) {
Extras: []string{"security"}, Extras: []string{"security"},
VersionConstraint: "== 2.8", VersionConstraint: "== 2.8",
URL: "", URL: "",
Markers: map[string]string{ Markers: `python_version < "2.7" and sys_platform == "linux"`,
"python_version": `< "2.7"`,
"sys_platform": `== "linux"`,
},
}, },
}, },
{ {
@ -141,7 +133,6 @@ func TestParseRequirementsTxt(t *testing.T) {
Extras: []string{}, Extras: []string{},
VersionConstraint: "== 3.7.1", VersionConstraint: "== 3.7.1",
URL: "git+https://github.com/owner/repo@releases/tag/v3.7.1", URL: "git+https://github.com/owner/repo@releases/tag/v3.7.1",
Markers: map[string]string{},
}, },
}, },
} }

View File

@ -1,9 +1,9 @@
package pkg package pkg
type PythonRequirementsMetadata struct { type PythonRequirementsMetadata struct {
Name string `json:"name" mapstruct:"Name"` Name string `json:"name" mapstruct:"Name"`
Extras []string `json:"extras" mapstruct:"Extras"` Extras []string `json:"extras" mapstruct:"Extras"`
VersionConstraint string `json:"versionConstraint" mapstruct:"VersionConstraint"` VersionConstraint string `json:"versionConstraint" mapstruct:"VersionConstraint"`
URL string `json:"url" mapstruct:"URL"` URL string `json:"url" mapstruct:"URL"`
Markers map[string]string `json:"markers" mapstruct:"Markers"` Markers string `json:"markers" mapstruct:"Markers"`
} }