Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion purl-types-index.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,6 @@
"qpkg",
"rpm",
"swid",
"swift"
"swift",
"vscode"
]
211 changes: 211 additions & 0 deletions tests/types/vscode-test.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,211 @@
{
"$schema": "https://packageurl.org/schemas/purl-test.schema-1.0.json",
"tests": [
{
"description": "Parse test for basic VS Code Extension PURL with version",
"test_group": "base",
"test_type": "parse",
"input": "pkg:vscode/redhat/java@1.46.2025091308",
"expected_output": {
"type": "vscode",
"namespace": "redhat",
"name": "java",
"version": "1.46.2025091308",
"qualifiers": null,
"subpath": null
},
"expected_failure": false,
"expected_failure_reason": null
},
{
"description": "Roundtrip test for basic VS Code Extension PURL with version",
"test_group": "base",
"test_type": "roundtrip",
"input": "pkg:vscode/redhat/java@1.46.2025091308",
"expected_output": "pkg:vscode/redhat/java@1.46.2025091308",
"expected_failure": false,
"expected_failure_reason": null
},
{
"description": "Build test for basic VS Code Extension PURL with version",
"test_group": "base",
"test_type": "build",
"input": {
"type": "vscode",
"namespace": "redhat",
"name": "java",
"version": "1.46.2025091308",
"qualifiers": null,
"subpath": null
},
"expected_output": "pkg:vscode/redhat/java@1.46.2025091308",
"expected_failure": false,
"expected_failure_reason": null
},
{
"description": "Parse test for VS Code Extension PURL with platform qualifier",
"test_group": "base",
"test_type": "parse",
"input": "pkg:vscode/redhat/java@1.46.2025091308?platform=linux-x64",
"expected_output": {
"type": "vscode",
"namespace": "redhat",
"name": "java",
"version": "1.46.2025091308",
"qualifiers": {
"platform": "linux-x64"
},
"subpath": null
},
"expected_failure": false,
"expected_failure_reason": null
},
{
"description": "Roundtrip test for VS Code Extension PURL with platform qualifier",
"test_group": "base",
"test_type": "roundtrip",
"input": "pkg:vscode/redhat/java@1.46.2025091308?platform=linux-x64",
"expected_output": "pkg:vscode/redhat/java@1.46.2025091308?platform=linux-x64",
"expected_failure": false,
"expected_failure_reason": null
},
{
"description": "Build test for VS Code Extension PURL with platform qualifier",
"test_group": "base",
"test_type": "build",
"input": {
"type": "vscode",
"namespace": "redhat",
"name": "java",
"version": "1.46.2025091308",
"qualifiers": {
"platform": "linux-x64"
},
"subpath": null
},
"expected_output": "pkg:vscode/redhat/java@1.46.2025091308?platform=linux-x64",
"expected_failure": false,
"expected_failure_reason": null
},
{
"description": "Parse test for VS Code Extension PURL without version",
"test_group": "base",
"test_type": "parse",
"input": "pkg:vscode/ms-python/python",
"expected_output": {
"type": "vscode",
"namespace": "ms-python",
"name": "python",
"version": null,
"qualifiers": null,
"subpath": null
},
"expected_failure": false,
"expected_failure_reason": null
},
{
"description": "Roundtrip test for VS Code Extension PURL without version",
"test_group": "base",
"test_type": "roundtrip",
"input": "pkg:vscode/ms-python/python",
"expected_output": "pkg:vscode/ms-python/python",
"expected_failure": false,
"expected_failure_reason": null
},
{
"description": "Build test for VS Code Extension PURL without version",
"test_group": "base",
"test_type": "build",
"input": {
"type": "vscode",
"namespace": "microsoft",
"name": "python",
"version": null,
"qualifiers": null,
"subpath": null
},
"expected_output": "pkg:vscode/microsoft/python",
"expected_failure": false,
"expected_failure_reason": null
},
{
"description": "Parse test for VS Code Extension PURL with darwin-arm64 platform",
"test_group": "base",
"test_type": "parse",
"input": "pkg:vscode/microsoft/python@2024.10.0?platform=darwin-arm64",
"expected_output": {
"type": "vscode",
"namespace": "microsoft",
"name": "python",
"version": "2024.10.0",
"qualifiers": {
"platform": "darwin-arm64"
},
"subpath": null
},
"expected_failure": false,
"expected_failure_reason": null
},
{
"description": "Parse test for VS Code Extension PURL with win32-x64 platform",
"test_group": "base",
"test_type": "parse",
"input": "pkg:vscode/golang/go@0.39.1?platform=win32-x64",
"expected_output": {
"type": "vscode",
"namespace": "golang",
"name": "go",
"version": "0.39.1",
"qualifiers": {
"platform": "win32-x64"
},
"subpath": null
},
"expected_failure": false,
"expected_failure_reason": null
},
{
"description": "Parse test for VS Code Extension PURL without namespace should fail",
"test_group": "base",
"test_type": "parse",
"input": "pkg:vscode/java@1.46.2025091308",
"expected_output": null,
"expected_failure": true,
"expected_failure_reason": "VS Code Extension PURLs require a namespace (publisher)"
},
{
"description": "Build test for VS Code Extension PURL without namespace should fail",
"test_group": "base",
"test_type": "build",
"input": {
"type": "vscode",
"namespace": null,
"name": "java",
"version": "1.46.2025091308",
"qualifiers": null,
"subpath": null
},
"expected_output": null,
"expected_failure": true,
"expected_failure_reason": "VS Code Extension PURLs require a namespace (publisher)"
},
{
"description": "Parse test for VS Code Extension PURL with platform=universal (default)",
"test_group": "base",
"test_type": "parse",
"input": "pkg:vscode/redhat/java@1.46.2025091308?platform=universal",
"expected_output": {
"type": "vscode",
"namespace": "redhat",
"name": "java",
"version": "1.46.2025091308",
"qualifiers": {
"platform": "universal"
},
"subpath": null
},
"expected_failure": false,
"expected_failure_reason": null
}
]
}
55 changes: 55 additions & 0 deletions types-doc/vscode-definition.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
<!-- NOTE: Auto-generated from the JSON PURL type definition.
Do not manually edit this file. Edit the JSON type definition instead. -->

# PURL Type Definition: vscode

- **Type Name:** VS Code Extension packages
- **Description:** VS Code Extension packages
- **Schema ID:** `https://packageurl.org/types/vscode-definition.json`

## PURL Syntax

The structure of a PURL for this package type is:

pkg:vscode/<namespace>/<name>@<version>?<qualifiers>#<subpath>

## Repository Information

- **Use Repository:** Yes
- **Default Repository URL:** https://marketplace.visualstudio.com/vscode

## Namespace definition

- **Requirement:** Required
- **Native Label:** publisher
- **Note:** `The namespace is the publisher or vendor of the extension (e.g., 'redhat', 'microsoft'). This corresponds to the 'Publisher' property of the 'Identity' element in the package's .vsixmanifest file.`

## Name definition

- **Requirement:** Required
- **Native Label:** name
- **Note:** `The extension name. This corresponds to the 'Id' property of the 'Identity' element in the package's .vsixmanifest file.`

## Version definition

- **Requirement:** Optional
- **Native Label:** version
- **Note:** `The extension version. This corresponds to the 'Version' property of the 'Identity' element in the package's .vsixmanifest file.`

## Qualifiers Definition

| Key | Requirement | Native name | Default Value | Description |
|------|-------------|-------------|---------------|-------------|
| platform | Optional | targetPlatform | universal | The target platform for the extension. Common values include 'universal', 'linux-x64', 'linux-arm64', 'darwin-x64', 'darwin-arm64', 'win32-x64', 'win32-arm64', etc. |

## Examples

- `pkg:vscode/ms-python/python@2023.25.10292213`
- `pkg:vscode/muhammad-sammy/csharp@2.15.30?repository_url=https://open-vsx.org`
- `pkg:vscode/golang/go@0.39.1?platform=win32-x64`

## Reference URLs

- `https://open-vsx.org/`
- `https://github.com/eclipse/openvsx`
- `https://code.visualstudio.com/api/working-with-extensions/publishing-extension#platformspecific-extensions`
48 changes: 48 additions & 0 deletions types/vscode-definition.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
{
"$schema": "https://packageurl.org/schemas/purl-type-definition.schema-1.0.json",
"$id": "https://packageurl.org/types/vscode-definition.json",
"type": "vscode",
"type_name": "VS Code Extension packages",
"description": "VS Code Extension packages",
"repository": {
"use_repository": true,
"default_repository_url": "https://marketplace.visualstudio.com/vscode"
},
"namespace_definition": {
"requirement": "required",
"case_sensitive": false,
"native_name": "publisher",
"note": "The namespace is the publisher or vendor of the extension (e.g., 'redhat', 'microsoft'). This corresponds to the 'Publisher' property of the 'Identity' element in the package's .vsixmanifest file."
},
"name_definition": {
"requirement": "required",
"case_sensitive": false,
"native_name": "name",
"note": "The extension name. This corresponds to the 'Id' property of the 'Identity' element in the package's .vsixmanifest file."
},
"version_definition": {
"requirement": "optional",
"case_sensitive": false,
"native_name": "version",
"note": "The extension version. This corresponds to the 'Version' property of the 'Identity' element in the package's .vsixmanifest file."
},
"qualifiers_definition": [
{
"key": "platform",
"requirement": "optional",
"description": "The target platform for the extension. Common values include 'universal', 'linux-x64', 'linux-arm64', 'darwin-x64', 'darwin-arm64', 'win32-x64', 'win32-arm64', etc.",
"default_value": "universal",
"native_name": "targetPlatform"
}
],
"examples": [
"pkg:vscode/ms-python/python@2023.25.10292213",
Comment thread
pombredanne marked this conversation as resolved.
Outdated
"pkg:vscode/muhammad-sammy/csharp@2.15.30?repository_url=https://open-vsx.org",
Comment thread
pombredanne marked this conversation as resolved.
Outdated
"pkg:vscode/golang/go@0.39.1?platform=win32-x64"
],
"reference_urls": [
"https://open-vsx.org/",
"https://github.com/eclipse/openvsx",
"https://code.visualstudio.com/api/working-with-extensions/publishing-extension#platformspecific-extensions"
]
}