dlang / project-ideas

Collection of impactful projects in the D ecosystem
36 stars 12 forks source link

Solve dependency hell: link with more than one versions of the same project #51

Open wilzbach opened 5 years ago

wilzbach commented 5 years ago

Description

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?

0) investigate solutions used in other languages or active research 1) create two DMD PR

Optional improvements:

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.

Recommended skills

What can students expect to get out of doing this project?

Rating

Medium

Project Type

Infrastructure/Automation

Point of Contact/Possible Mentors

@wilzbach @maxhaton

References

andre2007 commented 3 years ago

This topic becomes more and more important, I add the gsoc2021 label.

RazvanN7 commented 3 years ago

I'm going to remove this from GSOC 2021 as we don't have a mentor for it.

ahmetsait commented 3 years ago

I got frustrated by this before so I would be interested in solving this :)

maxhaton commented 3 years ago

Added GSOC '21 since I am available to mentor it

ahmetsait commented 3 years ago

Alright so D Language Foundation wasn't able to participate in GSoC 2021 but there is SAoC coming up next.

I would like to ask if this project would be a good fit for SAoC, do you think 4 months time frame of SAoC lines up with the work expected from this project or would it fall short (i.e. too easy) ?

RazvanN7 commented 3 years ago

This is a good fit for SAoC.