# Dependency problem with FIllArrays

**URL:** <https://discourse.julialang.org/t/dependency-problem-with-fillarrays/23238>\
**Category:** General Usage\
**Tags:** pkg\
**Created:** [April 17, 2019, 12:34pm UTC](https://discourse.julialang.org/t/dependency-problem-with-fillarrays/23238 "2019-04-17T12:34:38Z")\
**Posts on this page:** 2\
**Page:** 3

<div class="post-metadata">

**Author:** ![tkf](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tkf/32/17635_2.png) [@tkf](https://discourse.julialang.org/u/tkf)\
**Post date:** [April 19, 2019, 12:25am UTC](https://discourse.julialang.org/t/dependency-problem-with-fillarrays/23238/41 "2019-04-19T00:25:01Z")

</div>

@StefanKarpinski I hope you don’t take my comments as complaint. I think it is a great step forward that the new Pkg.jl is raising awareness of package compatibility in the community by making the semver-based constraint [1] the default behavior in `[compat]` section.

My question is a rather technical one; i.e., if

> [@StefanKarpinski](#):
>
> The script conservatively translates your REQUIRE bounds as literally as possible.

is true for `gen_project.jl` and the current state of `General`. First of all, I’m supposing that I can replace the word “literally” in your sentence with “semantics-preserving” or “faithful.” I don’t see it how it connects with the next sentence if not.

> [@StefanKarpinski](#):
>
> Otherwise I’m sure you can see that someone would be complaining that their package which previously installed just fine now won’t install because the generated compat section is much more restrictive than the REQUIRE file was.

Isn’t this what is happening here? And isn’t it because `Package = "x.y.z"` is not semantically equivalent to `Package x.y.z`? Why it is done this way even though `[compat]` can represent it as `Package = ">= x.y.z"`? Or maybe my assumption is wrong because the dependency resolver is changed?

But you also said

> [@StefanKarpinski](#):
>
> It seems like some degree of human judgement about compat bounds is required here which is why I’m not very enthusiastic about automatic translation of the old bounds to the new ones

So maybe it’s rather a “social” or “pedagogical” issue rather than a technical one? That is to say, the decision was made to give a _narrower_ range of compatibility so that package authors are forced to think about the compatibility issue seriously?

[1] Side note: I’m not sure talking about compatibility in sub-1.0 software is strictly semver compliant. At lease I think the use of `Package = ">= 0.y"` does not have to be so frowned upon if your package is sub-1.0 as well.

---

<div class="post-metadata">

**Author:** ![dlfivefifty](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dlfivefifty/32/1959_2.png) [@dlfivefifty](https://discourse.julialang.org/u/dlfivefifty)\
**Post date:** [April 26, 2019, 8:41pm UTC](https://discourse.julialang.org/t/dependency-problem-with-fillarrays/23238/42 "2019-04-26T20:41:32Z")

</div>

> [@StefanKarpinski](#):
>
> Yes, I’m damned if I do and damned if I don’t, which is why I’m mostly ignoring complaints

I don’t know if it’s damned if do or don’t, but definitely if you do _and_ don’t, especially in a random way. So far we have:

1. Upper bounds _added_ when moved from METADATA to General
2. No upper bounds when generating Project.toml from REQUIRE
3. Upper bounds _ignored_ by Registrator.jl ([Surprising loading of unsupported dependencies · Issue #1177 · JuliaLang/Pkg.jl · GitHub](https://github.com/JuliaLang/Pkg.jl/issues/1177#event-2304129269))

I thought I understood what to do (use `MyPackage = "0.3"` in a tagged release to only support `0.3.x` and retag when MyPackage.jl v0.4 comes out) but now I have no idea what we are supposed to be doin…

[Previous page](https://discourse.julialang.org/t/dependency-problem-with-fillarrays/23238.md?page=2)
