# Independent version requirements for each dependency to avoid downgrades?

**URL:** https://discourse.julialang.org/t/independent-version-requirements-for-each-dependency-to-avoid-downgrades/69089
**Category:** General Usage
**Created:** [October 2, 2021, 3:45am UTC](https://discourse.julialang.org/t/independent-version-requirements-for-each-dependency-to-avoid-downgrades/69089 "2021-10-02T03:45:01Z")
**Posts on this page:** 1
**Showing post:** 9

<div class="post-metadata">

### Author: ![Sukera](https://avatars.discourse-cdn.com/v4/letter/s/ce7236/32.png) [@Sukera](https://discourse.julialang.org/u/Sukera)
#### Post date: [October 2, 2021, 7:14am UTC](https://discourse.julialang.org/t/independent-version-requirements-for-each-dependency-to-avoid-downgrades/69089/9 "2021-10-02T07:14:30Z")

</div>

> [@Pkg3 vs. Go's vgo](https://discourse.julialang.org/t/pkg3-vs-gos-vgo/10154/2):
>
> People have brought up the prospect of allowing loading multiple different versions of the same Julia package at the same time—largely because that’s what npm does. However, this approach does not mix well with multiple dispatch because each different copy of a package creates different versions of its own types and generic functions, which all the other copies don’t know about. Thus, if you pass a type from one copy of the package to the generic function of another copy of the package, everything blows up—and in the most confusing way since you have an operation that looks like it should work. I don’t think this issue is lessened much by these different versions having different major version numbers, so I think in Julia there can really only be one copy of a given package. If you really want a package rewrite to be completely independent, then rename it and give it a new UUID.

> [@Pkg3 vs. Go's vgo](https://discourse.julialang.org/t/pkg3-vs-gos-vgo/10154/2):
>
> I’ve read the various vgo posts with interest and have mixed reactions. The described approach with “semantic import versioning” can be summarized like this: Your project can depend on two different major versions of the same package at the same time. However, it is impossible to express that you want to allow either of these major versions (not both) and don’t care which. Thus, it is impossible for projects to support adjacent incompatible versions of their dependencies, which strikes …

And there also was another post (which I can’t seem to find right now) where the conclusion was basically to fix the version bounds of the third package, since minor versions should be backwards compatible anyway (though not for 0.x releases, which should be an incentive for packages to release a proper major version 1.0 to make that part of dependency resolution work).

–

And since I accidentally posted in the wrong thread and discourse doesn’t just let me move posts, here is some extra text to fool discourse into thinking I wrote something different.

---

_[View the full topic](https://discourse.julialang.org/t/independent-version-requirements-for-each-dependency-to-avoid-downgrades/69089)._
