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

[not-bug] "conan list" prints letter Z instead of a last digit when printing dependency versions e.g. "zlib/1.3.Z" #16810

Closed
ViliusSutkus89 opened this issue Aug 10, 2024 · 2 comments
Assignees

Comments

@ViliusSutkus89
Copy link

Describe the bug

OS: Ubuntu-22.04
Conan version: 2.6.0

I was debugging an issue and looked into the output of conan list and got confused by it. Is it normal to be seeing the letter Z instead of the last version number? I'm pretty sure this is not a version range, because glib depends on exact version of libffi and zlib.

I don't parse the output of conan list, so I don't really care if this is just an output formatting issue of conan list and not some issue in artifactory.

How to reproduce it

$ conan list --remote=conancenter "glib/2.81.0:*"
                [...]
                requires
                  libffi/3.4.Z
                  libgettext/0.22.Z
                  pcre2/10.42.Z
                  zlib/1.3.Z
@jcar87 jcar87 self-assigned this Aug 10, 2024
@jcar87
Copy link
Contributor

jcar87 commented Aug 10, 2024

Hi @ViliusSutkus89

this is expected, although it will depend on the options (whether libraries are shared or static). Taking the zlib dependency as an example here.

zlib/1.3.Z means that if that specific binary of glib/2.81.0 was built with zlib/1.3.0, and in the future, zlib/1.3.1 is released - a build in the future where the graph solver considers zlib/1.3.1, will take this binary package as valid ad compatible - this is under "semver" assumptions that a patch release is still fully binary compatible.

This reflects the fact that if both glib and zlib are shared libraries, and zlib/1.3.1 has exactly the same symbols as 1.3.0 - the generated binaries for glib against the new versions would actually be "the same" - so there's no need to rebuild it.

This avoids unnecessary rebuilds (or missing binaries) when new versions are released.

it is a different case when a binary "embeds" the contents of a static library, or header only libraries.
You can read more about this here: https://docs.conan.io/2/reference/binary_model/dependencies.html

@ViliusSutkus89 ViliusSutkus89 changed the title [bug] "conan list" prints letter Z instead of a last digit when printing dependency versions e.g. "zlib/1.3.Z" [not-bug] "conan list" prints letter Z instead of a last digit when printing dependency versions e.g. "zlib/1.3.Z" Aug 11, 2024
@ViliusSutkus89
Copy link
Author

Hello @jcar87 ,

Thanks for the explanation. Somehow I've missed that part in the documentation. I've looked into semver versioning in Conan and thought that this needed to be asked for explicitly. Anyways, sorry for the wrong bug report.

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

No branches or pull requests

2 participants