Skip to content

Some PEP440 versions appear to not be supported #30929

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
rarkins opened this issue Aug 21, 2024 Discussed in #30566 · 3 comments · Fixed by #36083
Closed

Some PEP440 versions appear to not be supported #30929

rarkins opened this issue Aug 21, 2024 Discussed in #30566 · 3 comments · Fixed by #36083
Assignees
Labels
manager:poetry Poetry package manager priority-3-medium Default priority, "should be done" but isn't prioritised ahead of others

Comments

@rarkins
Copy link
Collaborator

rarkins commented Aug 21, 2024

Discussed in #30566

Originally posted by tuturiffic August 2, 2024

What would you like help with?

I think I found a bug

How are you running Renovate?

Mend Renovate hosted app on github.com

If you're self-hosting Renovate, tell us which platform (GitHub, GitLab, etc) and which version of Renovate.

No response

Please tell us more about your question or problem

The OpenTelemetry project publishes their packages using PEP440 as a versioning scheme. Most of these versions also happen to follow semver -- <major>.<minor>.<patchlevel> -- but some of them follow a PEP440-specific "pre-release" format: <major>.<minor>b0

It seems that Renovate does not properly parse these pre-release versions, thus is unable to identify these versions nor identify any potential updates.

To illustrate this issue, I've put up a minimal reproduction.

Logs (if relevant)

Logs

DEBUG: packageFiles with updates
{
  "baseBranch": "main"
  "config": {
    "pep621": [
      {
        "deps": [
          {
            "currentValue": ">=1.22.0, <2.0",
            "currentVersion": "1.26.0",
            "currentVersionTimestamp": "2024-07-25T04:01:38.000Z",
            "datasource": "pypi",
            "depName": "opentelemetry-api",
            "depType": "project.dependencies",
            "packageName": "opentelemetry-api",
            "registryUrl": "https://pypi.org/pypi",
            "versioning": "pep440",
            "warnings": [],
            "updates": []
          },
          {
            "currentValue": ">=1.22.0, <2.0",
            "currentVersion": "1.26.0",
            "currentVersionTimestamp": "2024-07-25T04:01:59.000Z",
            "datasource": "pypi",
            "depName": "opentelemetry-sdk",
            "depType": "project.dependencies",
            "packageName": "opentelemetry-sdk",
            "registryUrl": "https://pypi.org/pypi",
            "versioning": "pep440",
            "warnings": [],
            "updates": []
          },
          {
            "currentValue": ">=1.22.0, <2.0",
            "currentVersion": "1.26.0",
            "currentVersionTimestamp": "2024-07-25T04:01:41.000Z",
            "datasource": "pypi",
            "depName": "opentelemetry-exporter-otlp",
            "depType": "project.dependencies",
            "packageName": "opentelemetry-exporter-otlp",
            "registryUrl": "https://pypi.org/pypi",
            "versioning": "pep440",
            "warnings": [],
            "updates": []
          },
          {
            "currentValue": ">=0.43b0, <1.0",
            "datasource": "pypi",
            "depName": "opentelemetry-instrumentation",
            "depType": "project.dependencies",
            "packageName": "opentelemetry-instrumentation",
            "registryUrl": "https://pypi.org/pypi",
            "skipReason": "invalid-value",
            "versioning": "pep440",
            "warnings": [],
            "updates": []
          },
          {
            "currentValue": ">=0.43b0, <1.0",
            "datasource": "pypi",
            "depName": "opentelemetry-instrumentation-asyncpg",
            "depType": "project.dependencies",
            "packageName": "opentelemetry-instrumentation-asyncpg",
            "registryUrl": "https://pypi.org/pypi",
            "skipReason": "invalid-value",
            "versioning": "pep440",
            "warnings": [],
            "updates": []
          },
          {
            "currentValue": ">=0.43b0, <1.0",
            "datasource": "pypi",
            "depName": "opentelemetry-instrumentation-fastapi",
            "depType": "project.dependencies",
            "packageName": "opentelemetry-instrumentation-fastapi",
            "registryUrl": "https://pypi.org/pypi",
            "skipReason": "invalid-value",
            "versioning": "pep440",
            "warnings": [],
            "updates": []
          },
          {
            "currentValue": ">=0.43b0, <1.0",
            "datasource": "pypi",
            "depName": "opentelemetry-instrumentation-httpx",
            "depType": "project.dependencies",
            "packageName": "opentelemetry-instrumentation-httpx",
            "registryUrl": "https://pypi.org/pypi",
            "skipReason": "invalid-value",
            "versioning": "pep440",
            "warnings": [],
            "updates": []
          },
          {
            "currentValue": ">=0.43b0, <1.0",
            "datasource": "pypi",
            "depName": "opentelemetry-instrumentation-logging",
            "depType": "project.dependencies",
            "packageName": "opentelemetry-instrumentation-logging",
            "registryUrl": "https://pypi.org/pypi",
            "skipReason": "invalid-value",
            "versioning": "pep440",
            "warnings": [],
            "updates": []
          },
          {
            "datasource": "pypi",
            "depName": "setuptools",
            "depType": "build-system.requires",
            "packageName": "setuptools",
            "skipReason": "unspecified-version",
            "updates": []
          },
          {
            "datasource": "pypi",
            "depName": "setuptools_scm",
            "depType": "build-system.requires",
            "packageName": "setuptools_scm",
            "skipReason": "unspecified-version",
            "updates": []
          }
        ],
        "extractedConstraints": {
          "python": "~=3.9"
        },
        "packageFile": "pyproject.toml"
      }
    ]
  }
}

Reproduction forked to https://github.com/renovate-reproductions/30566

@rarkins rarkins added type:bug priority-3-medium Default priority, "should be done" but isn't prioritised ahead of others manager:poetry Poetry package manager labels Aug 21, 2024
@rarkins rarkins added type:bug and removed type:bug labels Jan 19, 2025
@mgroenbroek
Copy link
Contributor

I deal with this issue frequently in multiple projects at work. I'd love to take a stab at fixing this.

@rarkins
Copy link
Collaborator Author

rarkins commented May 21, 2025

@mgroenbroek PR welcome!

@renovate-release
Copy link
Collaborator

🎉 This issue has been resolved in version 40.30.2 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
manager:poetry Poetry package manager priority-3-medium Default priority, "should be done" but isn't prioritised ahead of others
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants