Skip to content

Conversation

@prabhu
Copy link
Contributor

@prabhu prabhu commented Aug 23, 2025

Fixes from gemini

  • Corrected Typos: The non-standard attribute is_case_sensitve has been corrected to the standard case_sensitive in both the namespace_definition and name_definition.
  • Required Components: The name_definition and version_definition now correctly state that they are "required" components.
  • Added Normalization Rules: To enforce the lowercasing requirement, normalization_rules have been added to the namespace_definition and name_definition.
  • Improved Descriptions: The native_name and note for the namespace have been updated to clarify its role for both Bitbucket Cloud (user/organization) and Server (project key). The version_definition note now explicitly warns against using mutable branch names.
  • Added Subpath and Qualifiers: The schema now includes a subpath_definition to support monorepos and a qualifiers_definition for the repository_url key, which is essential for self-hosted instances.
  • Enhanced Examples: The list of examples has been significantly expanded to cover various use cases, including packages identified by tags, those within a monorepo, and packages from self-hosted Bitbucket servers.

Signed-off-by: Prabhu Subramanian <[email protected]>
@prabhu prabhu marked this pull request as draft August 24, 2025 20:16
},
"version_definition": {
"note": "The version is a commit or tag.",
"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.

It is unnecessarily restricting the usefulness of PURL to require a version here.

Copy link
Member

Choose a reason for hiding this comment

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

Agreed, @prabhu let's not make versions required

"version_definition": {
"note": "The version is a commit or tag.",
"requirement": "required",
"note": "The version is an immutable commit hash (full or short) or a tag. Branch names (e.g., 'main') should not be used as they are mutable pointers.",
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 work. Tags are also mutable. Software that works with PURLs cannot reasonably knowing whether a reference is intended to be mutable.

Copy link
Member

Choose a reason for hiding this comment

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

Makes sense. The original wording is simple enough and does not specify too little nor too much IMHO

Comment on lines +46 to +48
"pkg:bitbucket/birkenfeld/pygments-main@244fd47e07d1014f0aed9c",
"pkg:bitbucket/atlassian/[email protected]",
"pkg:bitbucket/atlassian/[email protected]#packages/analytics",
Copy link
Contributor

Choose a reason for hiding this comment

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

None of these examples exist? Where did these new examples come from? The Pygments one might date back to when Bitbucket still supported Mercurial.

Copy link
Member

Choose a reason for hiding this comment

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

Good point, the pygments example should go since the project long moved to GitHub from Mercurial. ... for other examples too, let's use something real

Copy link
Member

@pombredanne pombredanne left a comment

Choose a reason for hiding this comment

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

@prabhu Thanks. Here are a few nitpickings for your consideration!

"is_case_sensitve": false
"case_sensitive": false,
"normalization_rules": [
"It is not case sensitive and must be lowercased."
Copy link
Member

Choose a reason for hiding this comment

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

This is redundant with case_sensitive, so we would not add this IMHO

"native_name": "user, organization, or project key",
"case_sensitive": false,
"normalization_rules": [
"It is not case sensitive and must be lowercased."
Copy link
Member

Choose a reason for hiding this comment

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

case_sensitive implies this alright

"version_definition": {
"note": "The version is a commit or tag.",
"requirement": "required",
"note": "The version is an immutable commit hash (full or short) or a tag. Branch names (e.g., 'main') should not be used as they are mutable pointers.",
Copy link
Member

Choose a reason for hiding this comment

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

Makes sense. The original wording is simple enough and does not specify too little nor too much IMHO

Comment on lines +46 to +48
"pkg:bitbucket/birkenfeld/pygments-main@244fd47e07d1014f0aed9c",
"pkg:bitbucket/atlassian/[email protected]",
"pkg:bitbucket/atlassian/[email protected]#packages/analytics",
Copy link
Member

Choose a reason for hiding this comment

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

Good point, the pygments example should go since the project long moved to GitHub from Mercurial. ... for other examples too, let's use something real

@maennchen
Copy link
Contributor

Needs to be rebased as of #640

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.

4 participants