这是indexloc提供的服务,不要输入任何密码
Skip to content

Some PEP440 versions appear to not be supported #30929

@rarkins

Description

@rarkins

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

Metadata

Metadata

Assignees

Labels

manager:poetryPoetry package managerpriority-3-mediumDefault priority, "should be done" but isn't prioritised ahead of others

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions