Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Solve dependency hell: link with more than one versions of the same project #51
Let's see that in project X you use an XML parser of v1. This XML parser depends on a collections library with v1. Now, however, the team decides to a add a JSON parser too, but this one depends on a newer version of the collections library with v2. The result is that the team can't use the JSON parser in their project and currently the only viable strategies are:
(1) is very cumbersome, requires a lot of manual work and makes it hard to sync up with upstream. (2) is often not possible.
Hence, the aim of this project is to allow people to use v1 and v2 of collections in parallel in their dub projects. Rust allows to fix this dependency hell problem by appending a unique suffix to each symbol of the conflicting versions. This works as long as each dependency only uses one direct version of a dependency. This is a very reasonable assumption and this approach should work for D too.
What are rough milestones of this project?
How does this project help the D community?
It is a first milestone and a requirement to moving the standard library Phobos to Dub. Additionally, it will have a massive impact on the D community as any bigger D project that has a non-trivial amount of dependencies runs into a dependency hell.
What can students expect to get out of doing this project?
Point of Contact