diff --git a/src/api/json/catalog.json b/src/api/json/catalog.json index 24f4321a540..28c2246c9f9 100644 --- a/src/api/json/catalog.json +++ b/src/api/json/catalog.json @@ -3207,7 +3207,7 @@ "fileMatch": [ "{.lefthook,lefthook,lefthook-local,.lefthook-local}.{yml,yaml,toml,json}" ], - "url": "https://json.schemastore.org/lefthook.json" + "url": "https://raw.githubusercontent.com/evilmartians/lefthook/master/schema.json" }, { "name": "lego.json", @@ -3353,6 +3353,12 @@ "fileMatch": ["**/modules/*/metadata.json"], "url": "https://raw.githubusercontent.com/bazelbuild/bazel-central-registry/main/metadata.schema.json" }, + { + "name": "Metatype Configuration", + "description": "Metatype configuration file", + "fileMatch": ["metatype.yml", "metatype.yaml"], + "url": "https://raw.githubusercontent.com/metatypedev/metatype/main/tools/schema/metatype.json" + }, { "name": "MetricsHub Configuration", "description": "MetricsHub configuration file", @@ -5074,6 +5080,16 @@ "fileMatch": ["swagger.json"], "url": "https://json.schemastore.org/swagger-2.0.json" }, + { + "name": "Synadia Connect Component", + "description": "Synadia Connect component definition", + "fileMatch": [ + "**/.connect/scanners/*.yml", + "**/.connect/sources/*.yml", + "**/.connect/sinks/*.yml" + ], + "url": "https://raw.githubusercontent.com/synadia-io/connect/main/schemas/component.json" + }, { "name": "task.json", "description": "VSCode Task file", @@ -6566,7 +6582,7 @@ "url": "https://json.schemastore.org/mongodb-atlas-search-index-definition.json" }, { - "name": "KoDE/CI build.yaml", + "name": "KODE/CI build.yaml", "description": "yaml kode/ci build", "fileMatch": ["**/.kode/*.yaml"], "url": "https://json.schemastore.org/kode-ci-build-1.0.0.json" @@ -7029,12 +7045,6 @@ "fileMatch": ["*.ksy"], "url": "https://raw.githubusercontent.com/kaitai-io/ksy_schema/master/ksy_schema.json" }, - { - "name": "JSON-WF", - "description": "A blogroll interchange format", - "fileMatch": [], - "url": "https://www.json-wf.org.uk/json-wf-schema-1.0.json" - }, { "name": "Cloud Foundry Application Manifest", "description": "A manifest describes a Cloud Foundry application and can be used to deploy it to a Foundation", @@ -7355,6 +7365,12 @@ "fileMatch": [".ctfd.yaml"], "url": "https://json.schemastore.org/ctfd.json" }, + { + "name": "AMX Muse Program Descriptor", + "description": "A MUSE program descriptor file", + "fileMatch": [], + "url": "https://json.schemastore.org/amx-muse.json" + }, { "name": "DonateCaseBetterCasino menu", "description": "Configuration file for dcbc addon menus", diff --git a/src/negative_test/pyproject/poetry-invalid-package.toml b/src/negative_test/pyproject/poetry-invalid-package.toml deleted file mode 100644 index 9145b76deb2..00000000000 --- a/src/negative_test/pyproject/poetry-invalid-package.toml +++ /dev/null @@ -1,3 +0,0 @@ -#:schema ../../schemas/json/pyproject.json -[tool.poetry.dependencies] -python = "~3.12" diff --git a/src/schemas/json/amx-muse.json b/src/schemas/json/amx-muse.json new file mode 100644 index 00000000000..c48a3a41b29 --- /dev/null +++ b/src/schemas/json/amx-muse.json @@ -0,0 +1,52 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/amx-muse.json", + "description": "A MUSE program descriptor file", + "additionalProperties": true, + "type": "object", + "properties": { + "id": { + "title": "Program ID", + "description": "Globally unique program ID, special characters are not allowed", + "type": "string", + "pattern": "^[a-zA-z0-9_-]+$" + }, + "description": { + "title": "Program Description", + "description": "A description of the program that may be used by user interfaces", + "type": "string" + }, + "disabled": { + "title": "Auto-start Disabled", + "description": "Disable the auto-start of the script on system boot", + "type": "boolean", + "default": false + }, + "envvars": { + "title": "Environment Variables", + "description": "Name/Value pairs that can be used to set configuration of a program", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "scope": { + "title": "Program Scope", + "description": "The scope (location) to which the script belongs. Leave blank for global scope", + "type": "string", + "pattern": "^[a-zA-z0-9_\\.-]*$" + }, + "provider": { + "title": "Programming Language", + "description": "The language the program is written in", + "enum": ["groovy", "javascript", "python"] + }, + "script": { + "title": "Program File Name", + "description": "The file name of the main entry point of the program. Defaults to index.", + "type": "string", + "default": "index.{groovy,js,py}" + } + }, + "required": ["id", "provider"] +} diff --git a/src/schemas/json/kode-ci-build-1.0.0.json b/src/schemas/json/kode-ci-build-1.0.0.json index bf5c53be72d..eac602d3fb9 100644 --- a/src/schemas/json/kode-ci-build-1.0.0.json +++ b/src/schemas/json/kode-ci-build-1.0.0.json @@ -1,5 +1,6 @@ { - "$schema": "http://json-schema.org/draft-04/schema#", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/kode-ci-build-1.0.0.json", "additionalProperties": false, "definitions": { "env": { @@ -153,6 +154,36 @@ } }, "additionalProperties": false + }, + "schedule": { + "type": "object", + "description": "스케줄에 의한 조건", + "required": ["cron", "branches"], + "properties": { + "cron": { + "type": "string", + "description": "cron 표현식. unix 표현식과 quartz 표현식 사용가능" + }, + "branches": { + "type": "array", + "items": { + "type": "string" + }, + "description": "스케줄 빌드의 branch 조건", + "minItems": 1 + }, + "zone": { + "type": "string", + "default": ["Asia/Seoul"], + "description": "스케줄 빌드 zone" + }, + "build-if-changed": { + "type": "boolean", + "default": true, + "description": "변경된 파일이 있을때만 빌드" + } + }, + "additionalProperties": false } } }, @@ -219,6 +250,7 @@ "items": { "type": "object", "additionalProperties": false, + "required": ["key", "path"], "properties": { "key": { "type": "string", @@ -228,6 +260,16 @@ "path": { "type": "string", "description": "캐시할 파일 혹은 디렉토리 경로" + }, + "upload": { + "type": "boolean", + "description": "캐시 업로드 여부", + "default": true + }, + "download": { + "type": "boolean", + "description": "캐시 다운로드 여부", + "default": true } } } @@ -249,9 +291,6 @@ "description": "빌드 후처리기 설정", "additionalProperties": true, "properties": { - "app-center-release": { - "$ref": "#/definitions/app-center-release" - }, "app-center-releases": { "$ref": "#/definitions/app-center-releases" }, @@ -259,6 +298,27 @@ "$ref": "#/definitions/git-ops" } } + }, + "html-reports": { + "type": "array", + "description": "html report 설정. path 경로의 html 파일을 업로드", + "default": [], + "items": { + "type": "object", + "required": ["name", "path"], + "additionalProperties": false, + "properties": { + "name": { + "type": "string", + "description": "report 이름", + "pattern": "[a-zA-Z0-9_-]+" + }, + "path": { + "type": "string", + "description": "report 경로. html 확장자만 지정 가능" + } + } + } } } }, @@ -323,7 +383,7 @@ "default": [], "items": { "type": "string", - "enum": ["docker", "mobil-keystore"] + "const": "docker" } }, "platform": { @@ -354,40 +414,13 @@ } } }, - "app-center-release": { - "type": "object", - "description": "artifact로 지정된 .apk/.ipa 파일을 appcenter로 릴리즈", - "required": ["app-id", "release-group-tag"], - "additionalProperties": true, - "properties": { - "app-id": { - "type": "string", - "description": "App ID", - "pattern": "[a-zA-Z0-9_-]+" - }, - "release-group-tag": { - "type": "string", - "description": "릴리즈 그룹에 대한 Tag 지정", - "pattern": "[a-zA-Z0-9_-]+" - }, - "testers": { - "type": "array", - "description": "테스터 지정(@, @@, corp@@)", - "items": { - "type": "string", - "description": "@, @@, corp@@", - "pattern": "^(@[.a-zA-Z0-9_-]+|@@[.a-zA-Z0-9_-]+|corp@@[.a-zA-Z0-9_-]+)$" - } - } - } - }, "app-center-releases": { "type": "array", "description": "artifact로 지정된 .apk/.ipa 파일을 appcenter로 릴리즈", "items": { "type": "object", "description": "appcenter release 설정", - "required": ["app-id", "release-group-tags"], + "required": ["app-id"], "additionalProperties": false, "properties": { "app-id": { @@ -395,7 +428,7 @@ "description": "App ID", "pattern": "[a-zA-Z0-9_-]+" }, - "release-group-tags": { + "tags": { "type": "array", "description": "릴리즈 그룹에 대한 Tag들을 지정", "items": { @@ -403,15 +436,6 @@ "description": "릴리즈 그룹에 대한 Tag 값", "pattern": "[a-zA-Z0-9_-]+" } - }, - "testers": { - "type": "array", - "description": "테스터 지정(@, @@, corp@@)", - "items": { - "type": "string", - "description": "@, @@, corp@@", - "pattern": "^(@[.a-zA-Z0-9_-]+|@@[.a-zA-Z0-9_-]+|corp@@[.a-zA-Z0-9_-]+)$" - } } } } @@ -463,7 +487,6 @@ } } }, - "id": "https://json.schemastore.org/kode-ci-build-1.0.0.json", "properties": { "on": { "$ref": "#/definitions/build-condition", @@ -486,5 +509,6 @@ }, "required": ["jobs"], "title": "KoDE/CI Build Spec", - "type": "object" + "type": "object", + "description": "KoDE/CI 빌드 스펙에 사용되는 yaml의 스키마를 정의" } diff --git a/src/schemas/json/package.json b/src/schemas/json/package.json index d1adcd5605f..b6df5e893d5 100644 --- a/src/schemas/json/package.json +++ b/src/schemas/json/package.json @@ -187,6 +187,73 @@ } ] }, + "packageImportsEntryPath": { + "type": [ + "string", + "null" + ], + "description": "The module path that is resolved when this specifier is imported. Set to `null` to disallow importing this module." + }, + "packageImportsEntryObject": { + "type": "object", + "description": "Used to specify conditional exports, note that Conditional exports are unsupported in older environments, so it's recommended to use the fallback array option if support for those environments is a concern.", + "properties": { + "require": { + "$ref": "#/definitions/packageImportsEntryOrFallback", + "description": "The module path that is resolved when this specifier is imported as a CommonJS module using the `require(...)` function." + }, + "import": { + "$ref": "#/definitions/packageImportsEntryOrFallback", + "description": "The module path that is resolved when this specifier is imported as an ECMAScript module using an `import` declaration or the dynamic `import(...)` function." + }, + "node": { + "$ref": "#/definitions/packageImportsEntryOrFallback", + "description": "The module path that is resolved when this environment is Node.js." + }, + "default": { + "$ref": "#/definitions/packageImportsEntryOrFallback", + "description": "The module path that is resolved when no other export type matches." + }, + "types": { + "$ref": "#/definitions/packageImportsEntryOrFallback", + "description": "The module path that is resolved for TypeScript types when this specifier is imported. Should be listed before other conditions." + } + }, + "patternProperties": { + "^[^.0-9]+$": { + "$ref": "#/definitions/packageImportsEntryOrFallback", + "description": "The module path that is resolved when this environment matches the property name." + } + }, + "additionalProperties": false + }, + "packageImportsEntry": { + "oneOf": [ + { + "$ref": "#/definitions/packageImportsEntryPath" + }, + { + "$ref": "#/definitions/packageImportsEntryObject" + } + ] + }, + "packageImportsFallback": { + "type": "array", + "description": "Used to allow fallbacks in case this environment doesn't support the preceding entries.", + "items": { + "$ref": "#/definitions/packageImportsEntry" + } + }, + "packageImportsEntryOrFallback": { + "oneOf": [ + { + "$ref": "#/definitions/packageImportsEntry" + }, + { + "$ref": "#/definitions/packageImportsFallback" + } + ] + }, "fundingUrl": { "type": "string", "format": "uri", @@ -349,7 +416,7 @@ "type": "object", "patternProperties": { "^#.+$": { - "$ref": "#/definitions/packageExportsEntryOrFallback", + "$ref": "#/definitions/packageImportsEntryOrFallback", "description": "The module path that is resolved when this environment matches the property name." } }, diff --git a/src/schemas/json/partial-poetry.json b/src/schemas/json/partial-poetry.json index 68b7e17cd00..837db121b5e 100644 --- a/src/schemas/json/partial-poetry.json +++ b/src/schemas/json/partial-poetry.json @@ -707,29 +707,5 @@ } } } - }, - "if": { - "properties": { - "package-mode": { - "const": true - } - } - }, - "then": { - "required": ["name", "version", "description", "authors"], - "properties": { - "name": { - "$ref": "#/definitions/poetry-name" - }, - "version": { - "$ref": "#/definitions/poetry-version" - }, - "description": { - "$ref": "#/definitions/poetry-description" - }, - "authors": { - "$ref": "#/definitions/poetry-authors" - } - } } } diff --git a/src/schemas/json/ruff.json b/src/schemas/json/ruff.json index 6982a9df4b8..effd5048699 100644 --- a/src/schemas/json/ruff.json +++ b/src/schemas/json/ruff.json @@ -2370,6 +2370,7 @@ "B9", "B90", "B901", + "B903", "B904", "B905", "B909", @@ -3313,7 +3314,6 @@ "RUF022", "RUF023", "RUF024", - "RUF025", "RUF026", "RUF027", "RUF028", @@ -3326,6 +3326,7 @@ "RUF034", "RUF035", "RUF036", + "RUF037", "RUF038", "RUF039", "RUF04", @@ -3334,6 +3335,7 @@ "RUF043", "RUF046", "RUF048", + "RUF049", "RUF05", "RUF051", "RUF052", @@ -3596,6 +3598,7 @@ "UP042", "UP043", "UP044", + "UP045", "W", "W1", "W19", diff --git a/src/test/amx-muse/complete.json b/src/test/amx-muse/complete.json new file mode 100644 index 00000000000..110c51caabb --- /dev/null +++ b/src/test/amx-muse/complete.json @@ -0,0 +1,9 @@ +{ + "description": "An AMX Muse Program", + "disabled": false, + "envvars": {}, + "id": "amx-muse", + "provider": "javascript", + "scope": "", + "script": "index.js" +} diff --git a/src/test/amx-muse/minimal.json b/src/test/amx-muse/minimal.json new file mode 100644 index 00000000000..513887c8012 --- /dev/null +++ b/src/test/amx-muse/minimal.json @@ -0,0 +1,4 @@ +{ + "id": "amx-muse", + "provider": "groovy" +} diff --git a/src/test/kode-ci-build-1.0.0/app-release.yaml b/src/test/kode-ci-build-1.0.0/app-release.yaml index 3be6d0f9b1c..755c2353a36 100644 --- a/src/test/kode-ci-build-1.0.0/app-release.yaml +++ b/src/test/kode-ci-build-1.0.0/app-release.yaml @@ -18,17 +18,7 @@ jobs: - artifact/* set-proxy: [gradle, shell] post-process: - app-center-release: - app-id: b66a8b62-2259-45e5-9bdb-e32e65b0be53 - release-group-tag: prod - testers: - - '@@kode-team' app-center-releases: - app-id: b66a8b62-2259-45e5-9bdb-e32e65b0be53 - release-group-tags: [dev, cbt] - testers: - - '@@kode-team' + tags: [dev, cbt] - app-id: b66a8b62-2259-45e5-9bdb-e32e65b0be53 - release-group-tags: [prod] - testers: - - '@@kode-team' diff --git a/src/test/kode-ci-build-1.0.0/ci-build.yaml b/src/test/kode-ci-build-1.0.0/ci-build.yaml index 7b4da21197d..56d68c8012a 100644 --- a/src/test/kode-ci-build-1.0.0/ci-build.yaml +++ b/src/test/kode-ci-build-1.0.0/ci-build.yaml @@ -34,6 +34,8 @@ jobs: caches: - key: gradle-caches path: ~/.gradle/caches + upload: true + download: false - key: gradle-wrapper path: ~/.gradle/wrapper set-proxy: [gradle, shell] diff --git a/src/test/kode-ci-build-1.0.0/schedule-report.yaml b/src/test/kode-ci-build-1.0.0/schedule-report.yaml new file mode 100644 index 00000000000..19c2f852572 --- /dev/null +++ b/src/test/kode-ci-build-1.0.0/schedule-report.yaml @@ -0,0 +1,15 @@ +# yaml-language-server: $schema=../../schemas/json/kode-ci-build-1.0.0.json +on: + schedule: + cron: '0 0 6,12,20 * * ?' + branches: + - develop + zone: Asia/Seoul + build-if-changed: true +jobs: + - name: test + execute: + - ./gradlew clean test -Dspring.profile.active=ci + html-reports: + - name: test-report + path: module1/build/reports/tests/testAll/index.html diff --git a/src/test/package/imports-test4.json b/src/test/package/imports-test4.json new file mode 100644 index 00000000000..240ba637773 --- /dev/null +++ b/src/test/package/imports-test4.json @@ -0,0 +1,7 @@ +{ + "description": "different package", + "imports": { + "#foo": "different-package" + }, + "name": "my-mod" +}