Skip to content
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

Failed to resolve this package in environment where pre-releases are not allowed. #4219

Open
prudnikov opened this issue Oct 10, 2024 · 4 comments
Labels
bug Something isn't working

Comments

@prudnikov
Copy link

Describe your environment

OS: MacOS
Python version: 3.11
SDK version: 1.27
API version: 1.27

What happened?

opentelemetry-semantic-conventions package is published with version like 0.48b0, which treated as BETA version.
https://packaging.python.org/en/latest/discussions/versioning/

This package also is a peer dependency from apache-airflow.

As a result, opentelemetry-semantic-conventions package can't be resolved in the environments where pre-release packages are not allowed.

Steps to Reproduce

We use PDM.

pdm init

Add the following section to the pyproject.toml

[tool.pdm.resolution]
allow-prereleases = false

then run

pdm add opentelemetry-semantic-conventions==0.48b0

Expected Result

Package resolved and installed.
This will work if package version will not include b0 suffix, so instead of 0.48b0 it should be 0.48.

Actual Result

❯ pdm add opentelemetry-semantic-conventions==0.48b0
Adding packages to default dependencies: opentelemetry-semantic-conventions==0.48b0
  0:00:00 🔒 Lock failed.  ERROR: Unable to find a resolution for opentelemetry-semantic-conventions
Please make sure the package name is correct.
  0:00:00 🔒 Lock failed.
See /Users/XXXX/Library/Logs/pdm/pdm-lock-58p93c2u.log for detailed debug log.
[ResolutionImpossible]: Unable to find a resolution
WARNING: Add '-v' to see the detailed traceback

Additional context

No response

Would you like to implement a fix?

None

@prudnikov prudnikov added the bug Something isn't working label Oct 10, 2024
@prudnikov prudnikov changed the title Failed to resolve this package in environment where pre-releases are now allowed. Failed to resolve this package in environment where pre-releases are not allowed. Oct 10, 2024
@lzchen
Copy link
Contributor

lzchen commented Oct 17, 2024

Given the decision to make incubating and stable namespaces for semantic conventions, we should theoretically not have anymore breaking changes going forward for the semconv package. Would it make sense to mark the package as stable?

It looks like Java has separate artifacts for stable and incubating.

@xrmx @aabmass thoughts?

@prudnikov
Copy link
Author

Hello, team. Are there any updates on this?

@xrmx
Copy link
Contributor

xrmx commented Nov 7, 2024

Given the decision to make incubating and stable namespaces for semantic conventions, we should theoretically not have anymore breaking changes going forward for the semconv package. Would it make sense to mark the package as stable?

It looks like Java has separate artifacts for stable and incubating.

@xrmx @aabmass thoughts?

I don't think beta or not makes a difference for semantic versioning when the version is < 1.0.0 right?

@prudnikov
Copy link
Author

Given the decision to make incubating and stable namespaces for semantic conventions, we should theoretically not have anymore breaking changes going forward for the semconv package. Would it make sense to mark the package as stable?
It looks like Java has separate artifacts for stable and incubating.
@xrmx @aabmass thoughts?

I don't think beta or not makes a difference for semantic versioning when the version is < 1.0.0 right?

Not really. 0.1.0 is also release. It's <1.0.0 but it's not beta. Not everything <1.0.0 is beta. After BETA usually comes release. It can be <1.0.0 but it's release. And opentelemetry-semantic-conventions has only BETA releases.

Generally, <1.0.0 means that the API is not stable yet.

Also from SemVer docs

How do I know when to release 1.0.0?
If your software is being used in production, it should probably already be 1.0.0. If you have a stable API on which users have come to depend, you should be 1.0.0. If you’re worrying a lot about backwards compatibility, you should probably already be 1.0.0.

opentelemetry-sdk 1.26.0 depends on this. So according to Semantic Versioning this package should be >1.0.0.
I have no direct dependency from opentelemetry-semantic-conventions, but it comes from apache-airflow which is also >1.0.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants