Skip to content
Open
Show file tree
Hide file tree
Changes from all 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
1 change: 0 additions & 1 deletion docs/candidate-purl-types.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
- ``meteor`` for Meteor JavaScript packages
- ``nim`` for Nim packages
- ``nix`` for Nixos packages
- ``opam`` for OCaml packages
- ``openwrt`` for OpenWRT packages
- ``osgi`` for OSGi bundle packages
- ``p2`` for Eclipse p2 packages
Expand Down
1 change: 1 addition & 0 deletions purl-types-index.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
"npm",
"nuget",
"oci",
"opam",
"otp",
"pub",
"pypi",
Expand Down
89 changes: 89 additions & 0 deletions tests/types/opam-test.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
{
"$schema": "https://packageurl.org/schemas/purl-test.schema-0.1.json",
"tests": [
{
"description": "valid opam purl. Roundtrip an input purl to canonical.",
"test_group": "advanced",
"test_type": "roundtrip",
"input": "pkg:opam/[email protected]",
"expected_output": "pkg:opam/[email protected]",
"expected_failure": false,
"expected_failure_reason": null
},
{
"description": "valid opam purl",
"test_group": "base",
"test_type": "parse",
"input": "pkg:opam/[email protected]",
"expected_output": {
"type": "opam",
"namespace": null,
"name": "conex",
"version": "1.0.0",
"qualifiers": null,
"subpath": null
},
"expected_failure": false,
"expected_failure_reason": null
},
{
"description": "valid opam purl. Roundtrip a canonical input to canonical output.",
"test_group": "base",
"test_type": "roundtrip",
"input": "pkg:opam/[email protected]",
"expected_output": "pkg:opam/[email protected]",
"expected_failure": false,
"expected_failure_reason": null
},
{
"description": "valid opam purl",
"test_group": "base",
"test_type": "build",
"input": {
"type": "opam",
"namespace": null,
"name": "conex",
"version": "1.0.0",
"qualifiers": null,
"subpath": null
},
"expected_output": "pkg:opam/[email protected]",
"expected_failure": false,
"expected_failure_reason": null
},
{
"description": "name and version are always required",
"test_group": "base",
"test_type": "parse",
"input": "pkg:opam",
"expected_output": null,
"expected_failure": true,
"expected_failure_reason": "Should fail to parse a PURL from invalid purl input"
},
{
"description": "name and version are always required",
"test_group": "base",
"test_type": "parse",
"input": "pkg:opam",
"expected_output": null,
"expected_failure": true,
"expected_failure_reason": "Should fail to parse a PURL from invalid canonical purl input"
},
{
"description": "name and version are always required",
"test_group": "base",
"test_type": "build",
"input": {
"type": "opam",
"namespace": null,
"name": null,
"version": null,
"qualifiers": null,
"subpath": null
},
"expected_output": null,
"expected_failure": true,
"expected_failure_reason": "Should fail to build a PURL from invalid input components"
}
]
}
30 changes: 30 additions & 0 deletions types/opam-definition.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"$schema": "https://packageurl.org/schemas/purl-type-definition.schema-1.0.json",
"$id": "https://packageurl.org/types/opam-definition.json",
"type": "opam",
"type_name": "Opam package",
"description": "Opam packages",
"repository": {
"use_repository": true,
"default_repository_url": "https://opam.ocaml.org"
},
"namespace_definition": {
"requirement": "prohibited",
"note": "there is no namespace"
},
"name_definition": {
"requirement": "required",
"case_sensitive": true,
"native_name": "name",
"note": "The name is case sensitive."
},
"version_definition": {
"requirement": "optional",
"native_name": "version",
"note": "The version is package version."
},
"examples": [
"pkg:opam/[email protected]",
"pkg:opam/git@3/16.1"
]
}