Skip to content

Conversation

prabhu
Copy link
Contributor

@prabhu prabhu commented Aug 23, 2025

Fixes from gemini

  • Corrected Metadata: The $id attribute was updated from a placeholder value to the correct URI for the apk type definition.
  • Required Components: The name_definition and version_definition now correctly state that they are "required" components for a valid apk purl.
  • Added Normalization Rules: To enforce consistency, normalization_rules have been added to both the namespace_definition and name_definition to ensure their values are lowercased.
  • Improved Version Description: The note in the version_definition has been updated with more specific details about the expected version format, including the common pkgver-rX pattern.
  • Expanded Qualifiers: The schema now includes definitions for the distro and repository_url qualifiers, and examples have been added for all defined qualifiers to provide clearer guidance.
  • Enhanced Examples: The list of examples has been expanded to better illustrate the variety of valid apk purls, including packages from different vendors and those with version suffixes.

prabhu and others added 2 commits August 23, 2025 15:26
Signed-off-by: Prabhu Subramanian <[email protected]>
@prabhu prabhu marked this pull request as draft August 24, 2025 20:16
Comment on lines +24 to +27
"case_sensitive": false,
"normalization_rules": [
"It is not case sensitive and must be lowercased."
]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"case_sensitive": false,
"normalization_rules": [
"It is not case sensitive and must be lowercased."
]
"case_sensitive": true
ERROR: unable to select packages:
  FIGLET (no such package):
    required by: world[FIGLET]
/ # apk add figlet
(1/1) Installing figlet (2.2.5-r3)
Executing busybox-1.37.0-r18.trigger
OK: 8 MiB in 17 packages

},
"version_definition": {
"note": "The version is a package version as expected by apk.",
"requirement": "required",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"requirement": "required",

Installed packages have versions, but I don't understand why the PURL spec should be limited to talking about only specific versions of installed packages, especially if vers is going to be a related standard. How would you use vers if you can't name the package?

Comment on lines +40 to +44
{
"key": "distro",
"requirement": "optional",
"description": "The distribution name when using multiple distributions"
},
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't make sense. I don't know if the problem is just that it's not defined properly. The distribution goes in the namespace. What does it mean if a PURL has a distribution in the namespace and in the qualifier? If it makes sense for there two be two distributions, what if there are more than two?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants