-
Notifications
You must be signed in to change notification settings - Fork 2k
New glm version in recipes/glm/all/conandata.yml #11452
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
New glm version in recipes/glm/all/conandata.yml #11452
Conversation
Thanks Paul Harris for the hand-holding and bug hunting. * recipes/glm/all/conandata.yml (sources): Add a source for the latest commit of 20220420. * recipes/glm/config.yml: Also mention new version here. * recipes/glm/all/conanfile.py (GlmConan.package): Tweak for "cci.*" versions.
This comment has been minimized.
This comment has been minimized.
0.9.9.8 is from April 2020, not 2018. Could you ask upstream to release a new version instead? cci versions can be confusing when there are also proper releases, and here I'm not sure that fixing a warning is good reason to package a cci version. |
that issue already exists. g-truc/glm#1108 by @paulharris
I guess, but it's better than the current situation? The warning is annoying enough to break anyone who has |
You're right, sorry. I was looking at the last commit of the 0.9.9.8 branch, that does seem to be from 2018. https://github.com/g-truc/glm/tree/0.9.8. I guess I don't understand how they do versioning around those parts. Pretty good library though. |
I was wondering how best to handle an "intermediate" version number. Perhaps instead, we do 0.9.9.8-cci.date So at least conan users can see the version ordering. Debian do this a lot with their ~version suffixes. |
How do you consume glm? You should use |
It's header only. I simply
|
Seems Conan's Cmake integration doesn't use
|
Add |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Barely maintained projects are a pain... this matches with our policy https://github.com/conan-io/conan-center-index/blob/master/docs/faqs.md#what-version-should-packages-use-for-libraries-without-official-releases
So it's fine... there's lost of other fixes and improvements that are going to be added which is good
@paulharris thanks for help @joaotavora, was reading the slack convo 🤗 |
Isn't there an alternative that doesn't involve me adding "package-x"-specific stuff to my Because avoiding solutions like yours is kind of the reason I started using Conan in the first place: to separate concerns. I might as well go back to Just speaking as a beginner Conan user, but I've experience with other package repositories. I don't understand why given a half-decent way to deal with a library that hasn't gotten a new version in 2+ years, there's resistance to this. I don't understand what can possibly be confusing about having Anyway, I leave this here in good faith. My problem is solved for the moment, and I can always host my own artifact repository I guess. |
This comment has been minimized.
This comment has been minimized.
Your way to inject libraries with |
Yes, @paulharris has let me know as well. Well I hope do hope there's the usual generous deprecation period between now and "removal". I mean, the "current way" is still the one recommended in the tutorial today.
I think you answered exactly in the preceding sentence :-). "Separate concerns" means the same as "agnostic CMakeLists.txt". Like the one I have now. A package-agnostic one. IOW, a CMakeLists.txt where the names of the dependencies can be completely absent. So currently, if I add a new dependency, say So if there are other, more modern 2.0 ways to write "agnostic CMakeLists.txt", I'm in. It's just that your earlier suggestion didn't seem to point in that direction. |
By agnostic CMakeLists, I mean not dependent to a specific package manager, something like this: cmake_minimum_required(VERSION 3.12)
project(myproject CXX)
find_package(glm REQUIRED)
add_executable(myapp ...)
target_compile_features(myapp PRIVATE cxx_std_20)
target_link_libraries(myapp PRIVATE glm::glm) By separation of concerns, you mean a generic CMakeLists for all your projects without explicit link of your targets to their dependencies. It's not the direction taken by conan v2, it's not even recommended in conan v1 I think, and it's a good thing. |
Interesting. I prefer being tied to a package manager than tied to a specific package in multiple places. That's because I change package managers much less often than I do dependencies.
Well, it is the version recommended in the "Getting Started" document. As I am also "getting started" I though that would be good place to start :-).
Sure, we can disagree. Personally, I hate repeating myself. This is why I like things like package-agnostic CMakeLists , file-agnostic CMakeLists (using |
The beauty of Conan is that you can do almost anything. That being said the "default" or "provided" solutions are aimed towards the majority and as you pointed out is not the flavor you like (which is perfectly okay). The industry has been moving towards CMake targets and the toolchain integration is what Kitware is recommending which is why that is the approach taken for 2.0.
You'll want to move into the custom generators which is definitely a more advanced approach but gives you the flexibility to do unique creative solutions. It gives you deps info and you can globally set the include directories for instance. My job is to educate and share Conan, so it you ever go down that road please ping me I'd love to help and write up a blog post because it will help others too. |
As I use Conan more and more, and in larger projects, those problems will presumably arise, and I will definitely remember to research these new techniques you linked to. But if you write a blog post tomorrow explaining why one should seriously consider -- even in a simple project -- increasing the minimum amount of mentions of a given dependency in checked-in sources from 2 to 3 (+50%), I'll be very happy to read it asap.
Wholeheartedly agree. I like systems (like Conan) that makes the simple things easy and complex things possible. Even better a system where complex things are rarely needed. But we are focusing too much on my personal use case for this PR. Isn't it good to have an updated version of glm anyway, for features and bugfixes? It doesn't look like there's much progress on the g-truc/glm#1108 front, so maybe more people should approve this? |
This comment has been minimized.
This comment has been minimized.
All green in build 4 (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I understand the need for cci.<date>
version, it's 2 years without a release...
Thanks Paul Harris for the hand-holding and bug hunting.
recipes/glm/all/conandata.yml (sources): Add a source for the latest
commit of 20220420.
recipes/glm/config.yml: Also mention new version here.
recipes/glm/all/conanfile.py (GlmConan.package): Tweak for
"cci.*" versions.
Specify library name and version: glm/cci.20220420 built from GitHub's on-demand per-commit zip service.
Oh, just because the latest tagged verion 0.9.9.8 is from
20182020 but it has a nagging warning (which converts to error with-Werror
with C++20 that has been fixed 2 years ago. They should really make a new version tag.I'm afraid I didn't do any of the below items 👇 😬 I'm very new to conan and I also don't have much time.