-
Notifications
You must be signed in to change notification settings - Fork 6.6k
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
Enable multiple package versions side-by-side. #1481
Comments
I think the way offered to use older version is to move back in git history, which means working with older versions of all libraries in the project. Mixing versions of different history levels is more involved but possible, if the versions combine ;). I know of no way to control versioning e.g. as part of defining a "triplet", it would all have to be handled via git history. I think that option is avoided for now, as you say it leads to considerable complications. For foundational libraries like boost and qt it would be nice to be able to address versions, but it's not trivial to implement that ;) |
I think the proposal is brilliant. Just like PyPI where I can do |
Not only older versions of libraries, but fewer libraries because more get added over time. |
This would also help to people who provide library and are making a large breaking change in next version: I want to provide both current stable version and a semi-stable preview of the next version, so people who want features that are breaking can keep using vcpkg. I could probably create a different port folder and ask for it to be accepted into the repository, but it seems like a crude workaround, and I fear we would end up with
|
@horenmar I thought of the same rudimentary workaround. I like the idea that the port structure is very simple, but I think versions could be added in a simple way. Perhaps the port tree could look like
Adding a new version would require copying the previous folder, and updating the commit ref and version information in the portfile and control. A patch update could just adjust the commit id of an existing version. Users could still lock their patch by saving the ports directory. |
Its already difficult enough to fix problems with the most recent packages and keep momentum. So I don't think it's the best idea to add support for multiple minor versions (despite major changes of course, as python2/3 qt4/5 etc) I proposed a way to enable users to "freeze" their ports some time ago: Also we stay with the vcpck design and use multiple vcpck installations to manage different versions of our library-set. We use following approach for switching, and it works also very well: |
Thanks for posting this issue. Closed as duplicate of #1681. |
This sounds like it might be tricky, but it's much needed for many projects that rely on a specific version of a library. Take Boost, for example, its public APIs can change significantly from version to version and many projects find a version that works for them & stick with it. And as of now, those projects are alienated from participating in this vcpkg ecosystem.
The text was updated successfully, but these errors were encountered: