From 2cfdf5c7a2458bcb56f57cad293b83a806f39e89 Mon Sep 17 00:00:00 2001 From: Fabio Bonelli Date: Fri, 14 Jun 2024 20:34:08 +0200 Subject: [PATCH] test: use a single directory per major version (#193) --- parser_test.go | 43 ++++++++----------- .../invalid/applicationSuite_wrong_type.yml | 0 .../{v0.3 => v0}/invalid/categories_empty.yml | 0 .../invalid/categories_invalid.yml | 0 .../invalid/categories_missing.yml | 0 .../{v0.3 => v0}/invalid/categories_nil.yml | 0 .../dependsOn_open_name_wrong_type.yml | 0 .../dependsOn_open_optional_wrong_type.yml | 0 .../dependsOn_open_versionMax_wrong_type.yml | 0 .../dependsOn_open_versionMin_wrong_type.yml | 0 .../dependsOn_open_version_wrong_type.yml | 0 ...scription_eng_apiDocumentation_invalid.yml | 0 ...iption_eng_apiDocumentation_wrong_type.yml | 0 .../description_eng_awards_wrong_type.yml | 0 .../description_eng_documentation_invalid.yml | 0 ...scription_eng_documentation_wrong_type.yml | 0 .../description_eng_features_empty.yml | 0 .../description_eng_features_missing.yml | 0 .../description_eng_genericName_too_long.yml | 0 ...scription_eng_localisedName_wrong_type.yml | 0 ...escription_eng_longDescription_missing.yml | 0 ...scription_eng_longDescription_too_long.yml | 0 ...cription_eng_longDescription_too_short.yml | 0 ...escription_too_short_grapheme_clusters.yml | 0 ...scription_eng_screenshots_missing_file.yml | 0 ...scription_eng_shortDescription_missing.yml | 0 .../description_eng_videos_invalid.yml | 0 .../description_eng_videos_invalid_oembed.yml | 0 .../invalid/description_invalid_language.yml | 0 .../invalid/developmentStatus_invalid.yml | 0 .../invalid/developmentStatus_missing.yml | 0 .../invalid/developmentStatus_wrong_type.yml | 0 .../{v0.3 => v0}/invalid/file_encoding.yml | 0 .../invalid/inputTypes_invalid.yml | 0 .../invalid/inputTypes_wrong_type.yml | 0 ...ndedAudience_countries_invalid_country.yml | 0 .../intendedAudience_countries_wrong_type.yml | 0 .../intendedAudience_scope_invalid_scope.yml | 0 .../intendedAudience_scope_wrong_type.yml | 0 ...e_unsupportedCountries_invalid_country.yml | 0 ...dience_unsupportedCountries_wrong_type.yml | 0 .../invalid/intendedAudience_wrong_type.yml | 0 .../{v0.3 => v0}/invalid/invalid_yaml.yml | 0 .../invalid/isBasedOn_wrong_type.yml | 0 .../invalid/it_riuso_codiceIPA_invalid.yml | 0 .../invalid/landingURL_invalid.yml | 0 .../invalid/landingURL_wrong_type.yml | 0 .../legal_authorsFile_missing_file.yml | 0 .../invalid/legal_license_invalid.yml | 0 .../invalid/legal_license_missing.yml | 0 .../{v0.3 => v0}/invalid/legal_missing.yml | 0 .../{v0.3 => v0}/invalid/legal_wrong_type.yml | 0 .../localisation_availableLanguages_empty.yml | 0 ...ocalisation_availableLanguages_invalid.yml | 0 ...ilableLanguages_invalid_bcp47.yml.disabled | 0 ...ocalisation_availableLanguages_missing.yml | 0 ...localisation_localisationReady_missing.yml | 0 .../invalid/logo_missing_file.yml | 0 .../invalid/logo_unsupported_extension.yml | 0 .../{v0.3 => v0}/invalid/logo_wrong_type.yml | 0 .../maintenance_contacts_email_invalid.yml | 0 ...e_contacts_missing_with_type_community.yml | 0 ...ce_contacts_missing_with_type_internal.yml | 0 .../maintenance_contacts_name_missing.yml | 0 .../maintenance_contractors_email_invalid.yml | 0 .../maintenance_contractors_invalid_type.yml | 0 ...contractors_missing_with_type_contract.yml | 0 .../maintenance_contractors_name_missing.yml | 0 .../maintenance_contractors_until_invalid.yml | 0 .../maintenance_contractors_until_missing.yml | 0 ...aintenance_contractors_website_invalid.yml | 0 .../invalid/maintenance_type_invalid.yml | 0 .../invalid/maintenance_type_missing.yml | 0 .../invalid/monochromeLogo_missing_file.yml | 0 .../monochromeLogo_unsupported_extension.yml | 0 .../invalid/monochromeLogo_wrong_type.yml | 0 .../{v0.3 => v0}/invalid/mostly_empty.yml | 0 .../{v0.3 => v0}/invalid/name_missing.yml | 0 testdata/{v0.3 => v0}/invalid/name_nil.yml | 0 .../{v0.3 => v0}/invalid/name_wrong_type.yml | 0 .../invalid/no-network/landingURL_invalid.yml | 0 .../invalid/no-network/logo_invalid_png.yml | 0 .../invalid/no-network/logo_missing_file.yml | 0 .../no-network/monochromeLogo_invalid_png.yml | 0 .../invalid/outputTypes_invalid.yml | 0 .../invalid/outputTypes_wrong_type.yml | 0 .../invalid/platforms_missing.yml | 0 .../invalid/platforms_wrong_type.yml | 0 .../invalid/publiccodeYmlVersion_invalid.yml | 0 .../invalid/publiccodeYmlVersion_missing.yml | 0 .../publiccodeYmlVersion_wrong_type.yml | 0 .../invalid/releaseDate_invalid.yml | 0 .../invalid/releaseDate_missing.yml | 0 .../invalid/releaseDate_wrong_type.yml | 0 .../{v0.3 => v0}/invalid/roadmap_invalid.yml | 0 .../invalid/roadmap_wrong_type.yml | 0 .../invalid/softwareType_invalid.yml | 0 .../invalid/softwareType_missing.yml | 0 .../invalid/softwareType_wrong_type.yml | 0 .../invalid/softwareVersion_wrong_type.yml | 0 testdata/{v0.3 => v0}/invalid/url_invalid.yml | 0 testdata/{v0.3 => v0}/invalid/url_missing.yml | 0 .../{v0.3 => v0}/invalid/url_wrong_type.yml | 0 .../invalid/usedBy_wrong_type.yml | 0 testdata/{v0.3 => v0}/valid/dependsOn.yml | 0 .../valid/maintenance_contacts_phone.yml | 0 .../valid/no-network/dependsOn.yml | 0 .../{v0.3 => v0}/valid/no-network/valid.yml | 0 testdata/{v0.3 => v0}/valid/valid.minimal.yml | 0 testdata/{v0.3 => v0}/valid/valid.yml | 0 .../unicode_grapheme_clusters.yml | 0 .../valid.minimal.v0.2.yml} | 0 112 files changed, 17 insertions(+), 26 deletions(-) rename testdata/{v0.3 => v0}/invalid/applicationSuite_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/categories_empty.yml (100%) rename testdata/{v0.3 => v0}/invalid/categories_invalid.yml (100%) rename testdata/{v0.3 => v0}/invalid/categories_missing.yml (100%) rename testdata/{v0.3 => v0}/invalid/categories_nil.yml (100%) rename testdata/{v0.3 => v0}/invalid/dependsOn_open_name_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/dependsOn_open_optional_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/dependsOn_open_versionMax_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/dependsOn_open_versionMin_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/dependsOn_open_version_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/description_eng_apiDocumentation_invalid.yml (100%) rename testdata/{v0.3 => v0}/invalid/description_eng_apiDocumentation_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/description_eng_awards_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/description_eng_documentation_invalid.yml (100%) rename testdata/{v0.3 => v0}/invalid/description_eng_documentation_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/description_eng_features_empty.yml (100%) rename testdata/{v0.3 => v0}/invalid/description_eng_features_missing.yml (100%) rename testdata/{v0.3 => v0}/invalid/description_eng_genericName_too_long.yml (100%) rename testdata/{v0.3 => v0}/invalid/description_eng_localisedName_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/description_eng_longDescription_missing.yml (100%) rename testdata/{v0.3 => v0}/invalid/description_eng_longDescription_too_long.yml (100%) rename testdata/{v0.3 => v0}/invalid/description_eng_longDescription_too_short.yml (100%) rename testdata/{v0.3 => v0}/invalid/description_eng_longDescription_too_short_grapheme_clusters.yml (100%) rename testdata/{v0.3 => v0}/invalid/description_eng_screenshots_missing_file.yml (100%) rename testdata/{v0.3 => v0}/invalid/description_eng_shortDescription_missing.yml (100%) rename testdata/{v0.3 => v0}/invalid/description_eng_videos_invalid.yml (100%) rename testdata/{v0.3 => v0}/invalid/description_eng_videos_invalid_oembed.yml (100%) rename testdata/{v0.3 => v0}/invalid/description_invalid_language.yml (100%) rename testdata/{v0.3 => v0}/invalid/developmentStatus_invalid.yml (100%) rename testdata/{v0.3 => v0}/invalid/developmentStatus_missing.yml (100%) rename testdata/{v0.3 => v0}/invalid/developmentStatus_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/file_encoding.yml (100%) rename testdata/{v0.3 => v0}/invalid/inputTypes_invalid.yml (100%) rename testdata/{v0.3 => v0}/invalid/inputTypes_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/intendedAudience_countries_invalid_country.yml (100%) rename testdata/{v0.3 => v0}/invalid/intendedAudience_countries_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/intendedAudience_scope_invalid_scope.yml (100%) rename testdata/{v0.3 => v0}/invalid/intendedAudience_scope_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/intendedAudience_unsupportedCountries_invalid_country.yml (100%) rename testdata/{v0.3 => v0}/invalid/intendedAudience_unsupportedCountries_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/intendedAudience_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/invalid_yaml.yml (100%) rename testdata/{v0.3 => v0}/invalid/isBasedOn_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/it_riuso_codiceIPA_invalid.yml (100%) rename testdata/{v0.3 => v0}/invalid/landingURL_invalid.yml (100%) rename testdata/{v0.3 => v0}/invalid/landingURL_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/legal_authorsFile_missing_file.yml (100%) rename testdata/{v0.3 => v0}/invalid/legal_license_invalid.yml (100%) rename testdata/{v0.3 => v0}/invalid/legal_license_missing.yml (100%) rename testdata/{v0.3 => v0}/invalid/legal_missing.yml (100%) rename testdata/{v0.3 => v0}/invalid/legal_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/localisation_availableLanguages_empty.yml (100%) rename testdata/{v0.3 => v0}/invalid/localisation_availableLanguages_invalid.yml (100%) rename testdata/{v0.3 => v0}/invalid/localisation_availableLanguages_invalid_bcp47.yml.disabled (100%) rename testdata/{v0.3 => v0}/invalid/localisation_availableLanguages_missing.yml (100%) rename testdata/{v0.3 => v0}/invalid/localisation_localisationReady_missing.yml (100%) rename testdata/{v0.3 => v0}/invalid/logo_missing_file.yml (100%) rename testdata/{v0.3 => v0}/invalid/logo_unsupported_extension.yml (100%) rename testdata/{v0.3 => v0}/invalid/logo_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/maintenance_contacts_email_invalid.yml (100%) rename testdata/{v0.3 => v0}/invalid/maintenance_contacts_missing_with_type_community.yml (100%) rename testdata/{v0.3 => v0}/invalid/maintenance_contacts_missing_with_type_internal.yml (100%) rename testdata/{v0.3 => v0}/invalid/maintenance_contacts_name_missing.yml (100%) rename testdata/{v0.3 => v0}/invalid/maintenance_contractors_email_invalid.yml (100%) rename testdata/{v0.3 => v0}/invalid/maintenance_contractors_invalid_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/maintenance_contractors_missing_with_type_contract.yml (100%) rename testdata/{v0.3 => v0}/invalid/maintenance_contractors_name_missing.yml (100%) rename testdata/{v0.3 => v0}/invalid/maintenance_contractors_until_invalid.yml (100%) rename testdata/{v0.3 => v0}/invalid/maintenance_contractors_until_missing.yml (100%) rename testdata/{v0.3 => v0}/invalid/maintenance_contractors_website_invalid.yml (100%) rename testdata/{v0.3 => v0}/invalid/maintenance_type_invalid.yml (100%) rename testdata/{v0.3 => v0}/invalid/maintenance_type_missing.yml (100%) rename testdata/{v0.3 => v0}/invalid/monochromeLogo_missing_file.yml (100%) rename testdata/{v0.3 => v0}/invalid/monochromeLogo_unsupported_extension.yml (100%) rename testdata/{v0.3 => v0}/invalid/monochromeLogo_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/mostly_empty.yml (100%) rename testdata/{v0.3 => v0}/invalid/name_missing.yml (100%) rename testdata/{v0.3 => v0}/invalid/name_nil.yml (100%) rename testdata/{v0.3 => v0}/invalid/name_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/no-network/landingURL_invalid.yml (100%) rename testdata/{v0.3 => v0}/invalid/no-network/logo_invalid_png.yml (100%) rename testdata/{v0.3 => v0}/invalid/no-network/logo_missing_file.yml (100%) rename testdata/{v0.3 => v0}/invalid/no-network/monochromeLogo_invalid_png.yml (100%) rename testdata/{v0.3 => v0}/invalid/outputTypes_invalid.yml (100%) rename testdata/{v0.3 => v0}/invalid/outputTypes_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/platforms_missing.yml (100%) rename testdata/{v0.3 => v0}/invalid/platforms_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/publiccodeYmlVersion_invalid.yml (100%) rename testdata/{v0.3 => v0}/invalid/publiccodeYmlVersion_missing.yml (100%) rename testdata/{v0.3 => v0}/invalid/publiccodeYmlVersion_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/releaseDate_invalid.yml (100%) rename testdata/{v0.3 => v0}/invalid/releaseDate_missing.yml (100%) rename testdata/{v0.3 => v0}/invalid/releaseDate_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/roadmap_invalid.yml (100%) rename testdata/{v0.3 => v0}/invalid/roadmap_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/softwareType_invalid.yml (100%) rename testdata/{v0.3 => v0}/invalid/softwareType_missing.yml (100%) rename testdata/{v0.3 => v0}/invalid/softwareType_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/softwareVersion_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/url_invalid.yml (100%) rename testdata/{v0.3 => v0}/invalid/url_missing.yml (100%) rename testdata/{v0.3 => v0}/invalid/url_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/invalid/usedBy_wrong_type.yml (100%) rename testdata/{v0.3 => v0}/valid/dependsOn.yml (100%) rename testdata/{v0.3 => v0}/valid/maintenance_contacts_phone.yml (100%) rename testdata/{v0.3 => v0}/valid/no-network/dependsOn.yml (100%) rename testdata/{v0.3 => v0}/valid/no-network/valid.yml (100%) rename testdata/{v0.3 => v0}/valid/valid.minimal.yml (100%) rename testdata/{v0.3 => v0}/valid/valid.yml (100%) rename testdata/{v0.3 => v0}/valid_with_warnings/unicode_grapheme_clusters.yml (100%) rename testdata/{v0.2/valid/valid.minimal.yml => v0/valid_with_warnings/valid.minimal.v0.2.yml} (100%) diff --git a/parser_test.go b/parser_test.go index ca9c805..f874885 100644 --- a/parser_test.go +++ b/parser_test.go @@ -84,23 +84,11 @@ func checkParseErrors(t *testing.T, err error, test testType) { } } -func TestValidPreviousStandardVersion(t *testing.T) { - file := "testdata/v0.2/valid/valid.minimal.yml" - t.Run(file, func(t *testing.T) { - err := parse(file) - checkParseErrors(t, err, testType{ - file, ValidationResults{ - ValidationWarning{"publiccodeYmlVersion", "v0.2 is not the latest version, use '0.3.0'. Parsing this file as v0.3.0.", 1, 1}, - }, - }) - }) +func TestValidTestcasesV0_NoNetwork(t *testing.T) { + checkValidFilesNoNetwork("testdata/v0/valid/no-network/*.yml", t) } -func TestValidTestcasesV0_3_NoNetwork(t *testing.T) { - checkValidFilesNoNetwork("testdata/v0.3/valid/no-network/*.yml", t) -} - -func TestInvalidTestcasesV0_3_NoNetwork(t *testing.T) { +func TestInvalidTestcasesV0_NoNetwork(t *testing.T) { expected := map[string]error{ // logo "logo_missing_file.yml": ValidationResults{ @@ -123,7 +111,7 @@ func TestInvalidTestcasesV0_3_NoNetwork(t *testing.T) { }, } - testFiles, _ := filepath.Glob("testdata/v0.3/invalid/no-network/*yml") + testFiles, _ := filepath.Glob("testdata/v0/invalid/no-network/*yml") for _, file := range testFiles { baseName := path.Base(file) if expected[baseName] == nil { @@ -136,7 +124,7 @@ func TestInvalidTestcasesV0_3_NoNetwork(t *testing.T) { } } -func TestInvalidTestcasesV0_3(t *testing.T) { +func TestInvalidTestcasesV0(t *testing.T) { expected := map[string]error{ // publiccodeYmlVersion "publiccodeYmlVersion_missing.yml": ValidationResults{ValidationError{"publiccodeYmlVersion", "required", 0, 0}}, @@ -545,7 +533,7 @@ func TestInvalidTestcasesV0_3(t *testing.T) { }, } - testFiles, _ := filepath.Glob("testdata/v0.3/invalid/*yml") + testFiles, _ := filepath.Glob("testdata/v0/invalid/*yml") for _, file := range testFiles { baseName := path.Base(file) if expected[baseName] == nil { @@ -558,20 +546,23 @@ func TestInvalidTestcasesV0_3(t *testing.T) { } } -// Test v0.3 valid YAML testcases (testdata/v0.3/valid/). -func TestValidTestcasesV0_3(t *testing.T) { - checkValidFiles("testdata/v0.3/valid/*.yml", t) +// Test v0 valid YAML testcases (testdata/v0/valid/). +func TestValidTestcasesV0(t *testing.T) { + checkValidFiles("testdata/v0/valid/*.yml", t) } -// Test v0.3 valid YAML testcases (testdata/v0.3/valid_with_warnings/). -func TestValidWithWarningsTestcasesV0_3(t *testing.T) { +// Test v0 valid YAML testcases (testdata/v0/valid_with_warnings/). +func TestValidWithWarningsTestcasesV0(t *testing.T) { expected := map[string]error{ "unicode_grapheme_clusters.yml": ValidationResults{ ValidationWarning{"description.eng.genericName", "This key is DEPRECATED and will be removed in the future", 23, 5}, }, + "valid.minimal.v0.2.yml": ValidationResults{ + ValidationWarning{"publiccodeYmlVersion", "v0.2 is not the latest version, use '0.3.0'. Parsing this file as v0.3.0.", 1, 1}, + }, } - testFiles, _ := filepath.Glob("testdata/v0.3/valid_with_warnings/*yml") + testFiles, _ := filepath.Glob("testdata/v0/valid_with_warnings/*yml") for _, file := range testFiles { baseName := path.Base(file) if expected[baseName] == nil { @@ -623,7 +614,7 @@ func TestUrlMissingWithoutPath(t *testing.T) { t.Errorf("Can't create parser: %v", err) } - testFiles, _ := filepath.Glob("testdata/v0.3/invalid/url_missing.yml") + testFiles, _ := filepath.Glob("testdata/v0/invalid/url_missing.yml") for _, file := range testFiles { baseName := path.Base(file) if expected[baseName] == nil { @@ -654,7 +645,7 @@ func TestExport(t *testing.T) { t.Errorf("Can't create Parser: %v", err) } - publiccode, err := parser.Parse("testdata/v0.3/valid/valid.yml") + publiccode, err := parser.Parse("testdata/v0/valid/valid.yml") if err != nil { t.Errorf("Failed to parse valid file: %v", err) } diff --git a/testdata/v0.3/invalid/applicationSuite_wrong_type.yml b/testdata/v0/invalid/applicationSuite_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/applicationSuite_wrong_type.yml rename to testdata/v0/invalid/applicationSuite_wrong_type.yml diff --git a/testdata/v0.3/invalid/categories_empty.yml b/testdata/v0/invalid/categories_empty.yml similarity index 100% rename from testdata/v0.3/invalid/categories_empty.yml rename to testdata/v0/invalid/categories_empty.yml diff --git a/testdata/v0.3/invalid/categories_invalid.yml b/testdata/v0/invalid/categories_invalid.yml similarity index 100% rename from testdata/v0.3/invalid/categories_invalid.yml rename to testdata/v0/invalid/categories_invalid.yml diff --git a/testdata/v0.3/invalid/categories_missing.yml b/testdata/v0/invalid/categories_missing.yml similarity index 100% rename from testdata/v0.3/invalid/categories_missing.yml rename to testdata/v0/invalid/categories_missing.yml diff --git a/testdata/v0.3/invalid/categories_nil.yml b/testdata/v0/invalid/categories_nil.yml similarity index 100% rename from testdata/v0.3/invalid/categories_nil.yml rename to testdata/v0/invalid/categories_nil.yml diff --git a/testdata/v0.3/invalid/dependsOn_open_name_wrong_type.yml b/testdata/v0/invalid/dependsOn_open_name_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/dependsOn_open_name_wrong_type.yml rename to testdata/v0/invalid/dependsOn_open_name_wrong_type.yml diff --git a/testdata/v0.3/invalid/dependsOn_open_optional_wrong_type.yml b/testdata/v0/invalid/dependsOn_open_optional_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/dependsOn_open_optional_wrong_type.yml rename to testdata/v0/invalid/dependsOn_open_optional_wrong_type.yml diff --git a/testdata/v0.3/invalid/dependsOn_open_versionMax_wrong_type.yml b/testdata/v0/invalid/dependsOn_open_versionMax_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/dependsOn_open_versionMax_wrong_type.yml rename to testdata/v0/invalid/dependsOn_open_versionMax_wrong_type.yml diff --git a/testdata/v0.3/invalid/dependsOn_open_versionMin_wrong_type.yml b/testdata/v0/invalid/dependsOn_open_versionMin_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/dependsOn_open_versionMin_wrong_type.yml rename to testdata/v0/invalid/dependsOn_open_versionMin_wrong_type.yml diff --git a/testdata/v0.3/invalid/dependsOn_open_version_wrong_type.yml b/testdata/v0/invalid/dependsOn_open_version_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/dependsOn_open_version_wrong_type.yml rename to testdata/v0/invalid/dependsOn_open_version_wrong_type.yml diff --git a/testdata/v0.3/invalid/description_eng_apiDocumentation_invalid.yml b/testdata/v0/invalid/description_eng_apiDocumentation_invalid.yml similarity index 100% rename from testdata/v0.3/invalid/description_eng_apiDocumentation_invalid.yml rename to testdata/v0/invalid/description_eng_apiDocumentation_invalid.yml diff --git a/testdata/v0.3/invalid/description_eng_apiDocumentation_wrong_type.yml b/testdata/v0/invalid/description_eng_apiDocumentation_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/description_eng_apiDocumentation_wrong_type.yml rename to testdata/v0/invalid/description_eng_apiDocumentation_wrong_type.yml diff --git a/testdata/v0.3/invalid/description_eng_awards_wrong_type.yml b/testdata/v0/invalid/description_eng_awards_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/description_eng_awards_wrong_type.yml rename to testdata/v0/invalid/description_eng_awards_wrong_type.yml diff --git a/testdata/v0.3/invalid/description_eng_documentation_invalid.yml b/testdata/v0/invalid/description_eng_documentation_invalid.yml similarity index 100% rename from testdata/v0.3/invalid/description_eng_documentation_invalid.yml rename to testdata/v0/invalid/description_eng_documentation_invalid.yml diff --git a/testdata/v0.3/invalid/description_eng_documentation_wrong_type.yml b/testdata/v0/invalid/description_eng_documentation_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/description_eng_documentation_wrong_type.yml rename to testdata/v0/invalid/description_eng_documentation_wrong_type.yml diff --git a/testdata/v0.3/invalid/description_eng_features_empty.yml b/testdata/v0/invalid/description_eng_features_empty.yml similarity index 100% rename from testdata/v0.3/invalid/description_eng_features_empty.yml rename to testdata/v0/invalid/description_eng_features_empty.yml diff --git a/testdata/v0.3/invalid/description_eng_features_missing.yml b/testdata/v0/invalid/description_eng_features_missing.yml similarity index 100% rename from testdata/v0.3/invalid/description_eng_features_missing.yml rename to testdata/v0/invalid/description_eng_features_missing.yml diff --git a/testdata/v0.3/invalid/description_eng_genericName_too_long.yml b/testdata/v0/invalid/description_eng_genericName_too_long.yml similarity index 100% rename from testdata/v0.3/invalid/description_eng_genericName_too_long.yml rename to testdata/v0/invalid/description_eng_genericName_too_long.yml diff --git a/testdata/v0.3/invalid/description_eng_localisedName_wrong_type.yml b/testdata/v0/invalid/description_eng_localisedName_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/description_eng_localisedName_wrong_type.yml rename to testdata/v0/invalid/description_eng_localisedName_wrong_type.yml diff --git a/testdata/v0.3/invalid/description_eng_longDescription_missing.yml b/testdata/v0/invalid/description_eng_longDescription_missing.yml similarity index 100% rename from testdata/v0.3/invalid/description_eng_longDescription_missing.yml rename to testdata/v0/invalid/description_eng_longDescription_missing.yml diff --git a/testdata/v0.3/invalid/description_eng_longDescription_too_long.yml b/testdata/v0/invalid/description_eng_longDescription_too_long.yml similarity index 100% rename from testdata/v0.3/invalid/description_eng_longDescription_too_long.yml rename to testdata/v0/invalid/description_eng_longDescription_too_long.yml diff --git a/testdata/v0.3/invalid/description_eng_longDescription_too_short.yml b/testdata/v0/invalid/description_eng_longDescription_too_short.yml similarity index 100% rename from testdata/v0.3/invalid/description_eng_longDescription_too_short.yml rename to testdata/v0/invalid/description_eng_longDescription_too_short.yml diff --git a/testdata/v0.3/invalid/description_eng_longDescription_too_short_grapheme_clusters.yml b/testdata/v0/invalid/description_eng_longDescription_too_short_grapheme_clusters.yml similarity index 100% rename from testdata/v0.3/invalid/description_eng_longDescription_too_short_grapheme_clusters.yml rename to testdata/v0/invalid/description_eng_longDescription_too_short_grapheme_clusters.yml diff --git a/testdata/v0.3/invalid/description_eng_screenshots_missing_file.yml b/testdata/v0/invalid/description_eng_screenshots_missing_file.yml similarity index 100% rename from testdata/v0.3/invalid/description_eng_screenshots_missing_file.yml rename to testdata/v0/invalid/description_eng_screenshots_missing_file.yml diff --git a/testdata/v0.3/invalid/description_eng_shortDescription_missing.yml b/testdata/v0/invalid/description_eng_shortDescription_missing.yml similarity index 100% rename from testdata/v0.3/invalid/description_eng_shortDescription_missing.yml rename to testdata/v0/invalid/description_eng_shortDescription_missing.yml diff --git a/testdata/v0.3/invalid/description_eng_videos_invalid.yml b/testdata/v0/invalid/description_eng_videos_invalid.yml similarity index 100% rename from testdata/v0.3/invalid/description_eng_videos_invalid.yml rename to testdata/v0/invalid/description_eng_videos_invalid.yml diff --git a/testdata/v0.3/invalid/description_eng_videos_invalid_oembed.yml b/testdata/v0/invalid/description_eng_videos_invalid_oembed.yml similarity index 100% rename from testdata/v0.3/invalid/description_eng_videos_invalid_oembed.yml rename to testdata/v0/invalid/description_eng_videos_invalid_oembed.yml diff --git a/testdata/v0.3/invalid/description_invalid_language.yml b/testdata/v0/invalid/description_invalid_language.yml similarity index 100% rename from testdata/v0.3/invalid/description_invalid_language.yml rename to testdata/v0/invalid/description_invalid_language.yml diff --git a/testdata/v0.3/invalid/developmentStatus_invalid.yml b/testdata/v0/invalid/developmentStatus_invalid.yml similarity index 100% rename from testdata/v0.3/invalid/developmentStatus_invalid.yml rename to testdata/v0/invalid/developmentStatus_invalid.yml diff --git a/testdata/v0.3/invalid/developmentStatus_missing.yml b/testdata/v0/invalid/developmentStatus_missing.yml similarity index 100% rename from testdata/v0.3/invalid/developmentStatus_missing.yml rename to testdata/v0/invalid/developmentStatus_missing.yml diff --git a/testdata/v0.3/invalid/developmentStatus_wrong_type.yml b/testdata/v0/invalid/developmentStatus_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/developmentStatus_wrong_type.yml rename to testdata/v0/invalid/developmentStatus_wrong_type.yml diff --git a/testdata/v0.3/invalid/file_encoding.yml b/testdata/v0/invalid/file_encoding.yml similarity index 100% rename from testdata/v0.3/invalid/file_encoding.yml rename to testdata/v0/invalid/file_encoding.yml diff --git a/testdata/v0.3/invalid/inputTypes_invalid.yml b/testdata/v0/invalid/inputTypes_invalid.yml similarity index 100% rename from testdata/v0.3/invalid/inputTypes_invalid.yml rename to testdata/v0/invalid/inputTypes_invalid.yml diff --git a/testdata/v0.3/invalid/inputTypes_wrong_type.yml b/testdata/v0/invalid/inputTypes_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/inputTypes_wrong_type.yml rename to testdata/v0/invalid/inputTypes_wrong_type.yml diff --git a/testdata/v0.3/invalid/intendedAudience_countries_invalid_country.yml b/testdata/v0/invalid/intendedAudience_countries_invalid_country.yml similarity index 100% rename from testdata/v0.3/invalid/intendedAudience_countries_invalid_country.yml rename to testdata/v0/invalid/intendedAudience_countries_invalid_country.yml diff --git a/testdata/v0.3/invalid/intendedAudience_countries_wrong_type.yml b/testdata/v0/invalid/intendedAudience_countries_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/intendedAudience_countries_wrong_type.yml rename to testdata/v0/invalid/intendedAudience_countries_wrong_type.yml diff --git a/testdata/v0.3/invalid/intendedAudience_scope_invalid_scope.yml b/testdata/v0/invalid/intendedAudience_scope_invalid_scope.yml similarity index 100% rename from testdata/v0.3/invalid/intendedAudience_scope_invalid_scope.yml rename to testdata/v0/invalid/intendedAudience_scope_invalid_scope.yml diff --git a/testdata/v0.3/invalid/intendedAudience_scope_wrong_type.yml b/testdata/v0/invalid/intendedAudience_scope_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/intendedAudience_scope_wrong_type.yml rename to testdata/v0/invalid/intendedAudience_scope_wrong_type.yml diff --git a/testdata/v0.3/invalid/intendedAudience_unsupportedCountries_invalid_country.yml b/testdata/v0/invalid/intendedAudience_unsupportedCountries_invalid_country.yml similarity index 100% rename from testdata/v0.3/invalid/intendedAudience_unsupportedCountries_invalid_country.yml rename to testdata/v0/invalid/intendedAudience_unsupportedCountries_invalid_country.yml diff --git a/testdata/v0.3/invalid/intendedAudience_unsupportedCountries_wrong_type.yml b/testdata/v0/invalid/intendedAudience_unsupportedCountries_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/intendedAudience_unsupportedCountries_wrong_type.yml rename to testdata/v0/invalid/intendedAudience_unsupportedCountries_wrong_type.yml diff --git a/testdata/v0.3/invalid/intendedAudience_wrong_type.yml b/testdata/v0/invalid/intendedAudience_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/intendedAudience_wrong_type.yml rename to testdata/v0/invalid/intendedAudience_wrong_type.yml diff --git a/testdata/v0.3/invalid/invalid_yaml.yml b/testdata/v0/invalid/invalid_yaml.yml similarity index 100% rename from testdata/v0.3/invalid/invalid_yaml.yml rename to testdata/v0/invalid/invalid_yaml.yml diff --git a/testdata/v0.3/invalid/isBasedOn_wrong_type.yml b/testdata/v0/invalid/isBasedOn_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/isBasedOn_wrong_type.yml rename to testdata/v0/invalid/isBasedOn_wrong_type.yml diff --git a/testdata/v0.3/invalid/it_riuso_codiceIPA_invalid.yml b/testdata/v0/invalid/it_riuso_codiceIPA_invalid.yml similarity index 100% rename from testdata/v0.3/invalid/it_riuso_codiceIPA_invalid.yml rename to testdata/v0/invalid/it_riuso_codiceIPA_invalid.yml diff --git a/testdata/v0.3/invalid/landingURL_invalid.yml b/testdata/v0/invalid/landingURL_invalid.yml similarity index 100% rename from testdata/v0.3/invalid/landingURL_invalid.yml rename to testdata/v0/invalid/landingURL_invalid.yml diff --git a/testdata/v0.3/invalid/landingURL_wrong_type.yml b/testdata/v0/invalid/landingURL_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/landingURL_wrong_type.yml rename to testdata/v0/invalid/landingURL_wrong_type.yml diff --git a/testdata/v0.3/invalid/legal_authorsFile_missing_file.yml b/testdata/v0/invalid/legal_authorsFile_missing_file.yml similarity index 100% rename from testdata/v0.3/invalid/legal_authorsFile_missing_file.yml rename to testdata/v0/invalid/legal_authorsFile_missing_file.yml diff --git a/testdata/v0.3/invalid/legal_license_invalid.yml b/testdata/v0/invalid/legal_license_invalid.yml similarity index 100% rename from testdata/v0.3/invalid/legal_license_invalid.yml rename to testdata/v0/invalid/legal_license_invalid.yml diff --git a/testdata/v0.3/invalid/legal_license_missing.yml b/testdata/v0/invalid/legal_license_missing.yml similarity index 100% rename from testdata/v0.3/invalid/legal_license_missing.yml rename to testdata/v0/invalid/legal_license_missing.yml diff --git a/testdata/v0.3/invalid/legal_missing.yml b/testdata/v0/invalid/legal_missing.yml similarity index 100% rename from testdata/v0.3/invalid/legal_missing.yml rename to testdata/v0/invalid/legal_missing.yml diff --git a/testdata/v0.3/invalid/legal_wrong_type.yml b/testdata/v0/invalid/legal_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/legal_wrong_type.yml rename to testdata/v0/invalid/legal_wrong_type.yml diff --git a/testdata/v0.3/invalid/localisation_availableLanguages_empty.yml b/testdata/v0/invalid/localisation_availableLanguages_empty.yml similarity index 100% rename from testdata/v0.3/invalid/localisation_availableLanguages_empty.yml rename to testdata/v0/invalid/localisation_availableLanguages_empty.yml diff --git a/testdata/v0.3/invalid/localisation_availableLanguages_invalid.yml b/testdata/v0/invalid/localisation_availableLanguages_invalid.yml similarity index 100% rename from testdata/v0.3/invalid/localisation_availableLanguages_invalid.yml rename to testdata/v0/invalid/localisation_availableLanguages_invalid.yml diff --git a/testdata/v0.3/invalid/localisation_availableLanguages_invalid_bcp47.yml.disabled b/testdata/v0/invalid/localisation_availableLanguages_invalid_bcp47.yml.disabled similarity index 100% rename from testdata/v0.3/invalid/localisation_availableLanguages_invalid_bcp47.yml.disabled rename to testdata/v0/invalid/localisation_availableLanguages_invalid_bcp47.yml.disabled diff --git a/testdata/v0.3/invalid/localisation_availableLanguages_missing.yml b/testdata/v0/invalid/localisation_availableLanguages_missing.yml similarity index 100% rename from testdata/v0.3/invalid/localisation_availableLanguages_missing.yml rename to testdata/v0/invalid/localisation_availableLanguages_missing.yml diff --git a/testdata/v0.3/invalid/localisation_localisationReady_missing.yml b/testdata/v0/invalid/localisation_localisationReady_missing.yml similarity index 100% rename from testdata/v0.3/invalid/localisation_localisationReady_missing.yml rename to testdata/v0/invalid/localisation_localisationReady_missing.yml diff --git a/testdata/v0.3/invalid/logo_missing_file.yml b/testdata/v0/invalid/logo_missing_file.yml similarity index 100% rename from testdata/v0.3/invalid/logo_missing_file.yml rename to testdata/v0/invalid/logo_missing_file.yml diff --git a/testdata/v0.3/invalid/logo_unsupported_extension.yml b/testdata/v0/invalid/logo_unsupported_extension.yml similarity index 100% rename from testdata/v0.3/invalid/logo_unsupported_extension.yml rename to testdata/v0/invalid/logo_unsupported_extension.yml diff --git a/testdata/v0.3/invalid/logo_wrong_type.yml b/testdata/v0/invalid/logo_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/logo_wrong_type.yml rename to testdata/v0/invalid/logo_wrong_type.yml diff --git a/testdata/v0.3/invalid/maintenance_contacts_email_invalid.yml b/testdata/v0/invalid/maintenance_contacts_email_invalid.yml similarity index 100% rename from testdata/v0.3/invalid/maintenance_contacts_email_invalid.yml rename to testdata/v0/invalid/maintenance_contacts_email_invalid.yml diff --git a/testdata/v0.3/invalid/maintenance_contacts_missing_with_type_community.yml b/testdata/v0/invalid/maintenance_contacts_missing_with_type_community.yml similarity index 100% rename from testdata/v0.3/invalid/maintenance_contacts_missing_with_type_community.yml rename to testdata/v0/invalid/maintenance_contacts_missing_with_type_community.yml diff --git a/testdata/v0.3/invalid/maintenance_contacts_missing_with_type_internal.yml b/testdata/v0/invalid/maintenance_contacts_missing_with_type_internal.yml similarity index 100% rename from testdata/v0.3/invalid/maintenance_contacts_missing_with_type_internal.yml rename to testdata/v0/invalid/maintenance_contacts_missing_with_type_internal.yml diff --git a/testdata/v0.3/invalid/maintenance_contacts_name_missing.yml b/testdata/v0/invalid/maintenance_contacts_name_missing.yml similarity index 100% rename from testdata/v0.3/invalid/maintenance_contacts_name_missing.yml rename to testdata/v0/invalid/maintenance_contacts_name_missing.yml diff --git a/testdata/v0.3/invalid/maintenance_contractors_email_invalid.yml b/testdata/v0/invalid/maintenance_contractors_email_invalid.yml similarity index 100% rename from testdata/v0.3/invalid/maintenance_contractors_email_invalid.yml rename to testdata/v0/invalid/maintenance_contractors_email_invalid.yml diff --git a/testdata/v0.3/invalid/maintenance_contractors_invalid_type.yml b/testdata/v0/invalid/maintenance_contractors_invalid_type.yml similarity index 100% rename from testdata/v0.3/invalid/maintenance_contractors_invalid_type.yml rename to testdata/v0/invalid/maintenance_contractors_invalid_type.yml diff --git a/testdata/v0.3/invalid/maintenance_contractors_missing_with_type_contract.yml b/testdata/v0/invalid/maintenance_contractors_missing_with_type_contract.yml similarity index 100% rename from testdata/v0.3/invalid/maintenance_contractors_missing_with_type_contract.yml rename to testdata/v0/invalid/maintenance_contractors_missing_with_type_contract.yml diff --git a/testdata/v0.3/invalid/maintenance_contractors_name_missing.yml b/testdata/v0/invalid/maintenance_contractors_name_missing.yml similarity index 100% rename from testdata/v0.3/invalid/maintenance_contractors_name_missing.yml rename to testdata/v0/invalid/maintenance_contractors_name_missing.yml diff --git a/testdata/v0.3/invalid/maintenance_contractors_until_invalid.yml b/testdata/v0/invalid/maintenance_contractors_until_invalid.yml similarity index 100% rename from testdata/v0.3/invalid/maintenance_contractors_until_invalid.yml rename to testdata/v0/invalid/maintenance_contractors_until_invalid.yml diff --git a/testdata/v0.3/invalid/maintenance_contractors_until_missing.yml b/testdata/v0/invalid/maintenance_contractors_until_missing.yml similarity index 100% rename from testdata/v0.3/invalid/maintenance_contractors_until_missing.yml rename to testdata/v0/invalid/maintenance_contractors_until_missing.yml diff --git a/testdata/v0.3/invalid/maintenance_contractors_website_invalid.yml b/testdata/v0/invalid/maintenance_contractors_website_invalid.yml similarity index 100% rename from testdata/v0.3/invalid/maintenance_contractors_website_invalid.yml rename to testdata/v0/invalid/maintenance_contractors_website_invalid.yml diff --git a/testdata/v0.3/invalid/maintenance_type_invalid.yml b/testdata/v0/invalid/maintenance_type_invalid.yml similarity index 100% rename from testdata/v0.3/invalid/maintenance_type_invalid.yml rename to testdata/v0/invalid/maintenance_type_invalid.yml diff --git a/testdata/v0.3/invalid/maintenance_type_missing.yml b/testdata/v0/invalid/maintenance_type_missing.yml similarity index 100% rename from testdata/v0.3/invalid/maintenance_type_missing.yml rename to testdata/v0/invalid/maintenance_type_missing.yml diff --git a/testdata/v0.3/invalid/monochromeLogo_missing_file.yml b/testdata/v0/invalid/monochromeLogo_missing_file.yml similarity index 100% rename from testdata/v0.3/invalid/monochromeLogo_missing_file.yml rename to testdata/v0/invalid/monochromeLogo_missing_file.yml diff --git a/testdata/v0.3/invalid/monochromeLogo_unsupported_extension.yml b/testdata/v0/invalid/monochromeLogo_unsupported_extension.yml similarity index 100% rename from testdata/v0.3/invalid/monochromeLogo_unsupported_extension.yml rename to testdata/v0/invalid/monochromeLogo_unsupported_extension.yml diff --git a/testdata/v0.3/invalid/monochromeLogo_wrong_type.yml b/testdata/v0/invalid/monochromeLogo_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/monochromeLogo_wrong_type.yml rename to testdata/v0/invalid/monochromeLogo_wrong_type.yml diff --git a/testdata/v0.3/invalid/mostly_empty.yml b/testdata/v0/invalid/mostly_empty.yml similarity index 100% rename from testdata/v0.3/invalid/mostly_empty.yml rename to testdata/v0/invalid/mostly_empty.yml diff --git a/testdata/v0.3/invalid/name_missing.yml b/testdata/v0/invalid/name_missing.yml similarity index 100% rename from testdata/v0.3/invalid/name_missing.yml rename to testdata/v0/invalid/name_missing.yml diff --git a/testdata/v0.3/invalid/name_nil.yml b/testdata/v0/invalid/name_nil.yml similarity index 100% rename from testdata/v0.3/invalid/name_nil.yml rename to testdata/v0/invalid/name_nil.yml diff --git a/testdata/v0.3/invalid/name_wrong_type.yml b/testdata/v0/invalid/name_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/name_wrong_type.yml rename to testdata/v0/invalid/name_wrong_type.yml diff --git a/testdata/v0.3/invalid/no-network/landingURL_invalid.yml b/testdata/v0/invalid/no-network/landingURL_invalid.yml similarity index 100% rename from testdata/v0.3/invalid/no-network/landingURL_invalid.yml rename to testdata/v0/invalid/no-network/landingURL_invalid.yml diff --git a/testdata/v0.3/invalid/no-network/logo_invalid_png.yml b/testdata/v0/invalid/no-network/logo_invalid_png.yml similarity index 100% rename from testdata/v0.3/invalid/no-network/logo_invalid_png.yml rename to testdata/v0/invalid/no-network/logo_invalid_png.yml diff --git a/testdata/v0.3/invalid/no-network/logo_missing_file.yml b/testdata/v0/invalid/no-network/logo_missing_file.yml similarity index 100% rename from testdata/v0.3/invalid/no-network/logo_missing_file.yml rename to testdata/v0/invalid/no-network/logo_missing_file.yml diff --git a/testdata/v0.3/invalid/no-network/monochromeLogo_invalid_png.yml b/testdata/v0/invalid/no-network/monochromeLogo_invalid_png.yml similarity index 100% rename from testdata/v0.3/invalid/no-network/monochromeLogo_invalid_png.yml rename to testdata/v0/invalid/no-network/monochromeLogo_invalid_png.yml diff --git a/testdata/v0.3/invalid/outputTypes_invalid.yml b/testdata/v0/invalid/outputTypes_invalid.yml similarity index 100% rename from testdata/v0.3/invalid/outputTypes_invalid.yml rename to testdata/v0/invalid/outputTypes_invalid.yml diff --git a/testdata/v0.3/invalid/outputTypes_wrong_type.yml b/testdata/v0/invalid/outputTypes_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/outputTypes_wrong_type.yml rename to testdata/v0/invalid/outputTypes_wrong_type.yml diff --git a/testdata/v0.3/invalid/platforms_missing.yml b/testdata/v0/invalid/platforms_missing.yml similarity index 100% rename from testdata/v0.3/invalid/platforms_missing.yml rename to testdata/v0/invalid/platforms_missing.yml diff --git a/testdata/v0.3/invalid/platforms_wrong_type.yml b/testdata/v0/invalid/platforms_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/platforms_wrong_type.yml rename to testdata/v0/invalid/platforms_wrong_type.yml diff --git a/testdata/v0.3/invalid/publiccodeYmlVersion_invalid.yml b/testdata/v0/invalid/publiccodeYmlVersion_invalid.yml similarity index 100% rename from testdata/v0.3/invalid/publiccodeYmlVersion_invalid.yml rename to testdata/v0/invalid/publiccodeYmlVersion_invalid.yml diff --git a/testdata/v0.3/invalid/publiccodeYmlVersion_missing.yml b/testdata/v0/invalid/publiccodeYmlVersion_missing.yml similarity index 100% rename from testdata/v0.3/invalid/publiccodeYmlVersion_missing.yml rename to testdata/v0/invalid/publiccodeYmlVersion_missing.yml diff --git a/testdata/v0.3/invalid/publiccodeYmlVersion_wrong_type.yml b/testdata/v0/invalid/publiccodeYmlVersion_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/publiccodeYmlVersion_wrong_type.yml rename to testdata/v0/invalid/publiccodeYmlVersion_wrong_type.yml diff --git a/testdata/v0.3/invalid/releaseDate_invalid.yml b/testdata/v0/invalid/releaseDate_invalid.yml similarity index 100% rename from testdata/v0.3/invalid/releaseDate_invalid.yml rename to testdata/v0/invalid/releaseDate_invalid.yml diff --git a/testdata/v0.3/invalid/releaseDate_missing.yml b/testdata/v0/invalid/releaseDate_missing.yml similarity index 100% rename from testdata/v0.3/invalid/releaseDate_missing.yml rename to testdata/v0/invalid/releaseDate_missing.yml diff --git a/testdata/v0.3/invalid/releaseDate_wrong_type.yml b/testdata/v0/invalid/releaseDate_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/releaseDate_wrong_type.yml rename to testdata/v0/invalid/releaseDate_wrong_type.yml diff --git a/testdata/v0.3/invalid/roadmap_invalid.yml b/testdata/v0/invalid/roadmap_invalid.yml similarity index 100% rename from testdata/v0.3/invalid/roadmap_invalid.yml rename to testdata/v0/invalid/roadmap_invalid.yml diff --git a/testdata/v0.3/invalid/roadmap_wrong_type.yml b/testdata/v0/invalid/roadmap_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/roadmap_wrong_type.yml rename to testdata/v0/invalid/roadmap_wrong_type.yml diff --git a/testdata/v0.3/invalid/softwareType_invalid.yml b/testdata/v0/invalid/softwareType_invalid.yml similarity index 100% rename from testdata/v0.3/invalid/softwareType_invalid.yml rename to testdata/v0/invalid/softwareType_invalid.yml diff --git a/testdata/v0.3/invalid/softwareType_missing.yml b/testdata/v0/invalid/softwareType_missing.yml similarity index 100% rename from testdata/v0.3/invalid/softwareType_missing.yml rename to testdata/v0/invalid/softwareType_missing.yml diff --git a/testdata/v0.3/invalid/softwareType_wrong_type.yml b/testdata/v0/invalid/softwareType_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/softwareType_wrong_type.yml rename to testdata/v0/invalid/softwareType_wrong_type.yml diff --git a/testdata/v0.3/invalid/softwareVersion_wrong_type.yml b/testdata/v0/invalid/softwareVersion_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/softwareVersion_wrong_type.yml rename to testdata/v0/invalid/softwareVersion_wrong_type.yml diff --git a/testdata/v0.3/invalid/url_invalid.yml b/testdata/v0/invalid/url_invalid.yml similarity index 100% rename from testdata/v0.3/invalid/url_invalid.yml rename to testdata/v0/invalid/url_invalid.yml diff --git a/testdata/v0.3/invalid/url_missing.yml b/testdata/v0/invalid/url_missing.yml similarity index 100% rename from testdata/v0.3/invalid/url_missing.yml rename to testdata/v0/invalid/url_missing.yml diff --git a/testdata/v0.3/invalid/url_wrong_type.yml b/testdata/v0/invalid/url_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/url_wrong_type.yml rename to testdata/v0/invalid/url_wrong_type.yml diff --git a/testdata/v0.3/invalid/usedBy_wrong_type.yml b/testdata/v0/invalid/usedBy_wrong_type.yml similarity index 100% rename from testdata/v0.3/invalid/usedBy_wrong_type.yml rename to testdata/v0/invalid/usedBy_wrong_type.yml diff --git a/testdata/v0.3/valid/dependsOn.yml b/testdata/v0/valid/dependsOn.yml similarity index 100% rename from testdata/v0.3/valid/dependsOn.yml rename to testdata/v0/valid/dependsOn.yml diff --git a/testdata/v0.3/valid/maintenance_contacts_phone.yml b/testdata/v0/valid/maintenance_contacts_phone.yml similarity index 100% rename from testdata/v0.3/valid/maintenance_contacts_phone.yml rename to testdata/v0/valid/maintenance_contacts_phone.yml diff --git a/testdata/v0.3/valid/no-network/dependsOn.yml b/testdata/v0/valid/no-network/dependsOn.yml similarity index 100% rename from testdata/v0.3/valid/no-network/dependsOn.yml rename to testdata/v0/valid/no-network/dependsOn.yml diff --git a/testdata/v0.3/valid/no-network/valid.yml b/testdata/v0/valid/no-network/valid.yml similarity index 100% rename from testdata/v0.3/valid/no-network/valid.yml rename to testdata/v0/valid/no-network/valid.yml diff --git a/testdata/v0.3/valid/valid.minimal.yml b/testdata/v0/valid/valid.minimal.yml similarity index 100% rename from testdata/v0.3/valid/valid.minimal.yml rename to testdata/v0/valid/valid.minimal.yml diff --git a/testdata/v0.3/valid/valid.yml b/testdata/v0/valid/valid.yml similarity index 100% rename from testdata/v0.3/valid/valid.yml rename to testdata/v0/valid/valid.yml diff --git a/testdata/v0.3/valid_with_warnings/unicode_grapheme_clusters.yml b/testdata/v0/valid_with_warnings/unicode_grapheme_clusters.yml similarity index 100% rename from testdata/v0.3/valid_with_warnings/unicode_grapheme_clusters.yml rename to testdata/v0/valid_with_warnings/unicode_grapheme_clusters.yml diff --git a/testdata/v0.2/valid/valid.minimal.yml b/testdata/v0/valid_with_warnings/valid.minimal.v0.2.yml similarity index 100% rename from testdata/v0.2/valid/valid.minimal.yml rename to testdata/v0/valid_with_warnings/valid.minimal.v0.2.yml