# Managing package dependencies while developing

**URL:** <https://discourse.julialang.org/t/managing-package-dependencies-while-developing/88899>\
**Category:** Package Management\
**Tags:** question\
**Created:** [October 18, 2022, 9:30am UTC](https://discourse.julialang.org/t/managing-package-dependencies-while-developing/88899 "2022-10-18T09:30:51Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![ettersi](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ettersi/32/6829_2.png) [@ettersi](https://discourse.julialang.org/u/ettersi)\
**Post date:** [October 18, 2022, 9:30am UTC](https://discourse.julialang.org/t/managing-package-dependencies-while-developing/88899/1 "2022-10-18T09:30:51Z")

</div>

I’m working on a [PR](https://github.com/JuliaDocs/Documenter.jl/pull/1970) for Documenter and would like to locally build its documentation. So I

1. activate `Documenter.jl/docs/Project.toml`,
2. type `] dev ..` to make sure my newest version of `Documenter` is used, and
3. run `] instantiate` to assemble all other packages.

This works mostly fine, but now the version of DocumenterTools.jl is 0.1.2 instead of the newest (0.1.16), and it turns out Documenter.jl’s documentation does not compile with this outdated version. After a lot of headbanging, I finally figured out why DocumenterTools refuses to update: DocumenterTools@0.1.16 [`[compat]`](https://github.com/JuliaDocs/DocumenterTools.jl/blob/3937ab51d9dbc73da9788b695216307c1b6df32a/Project.toml#L19) section states

```julia
Documenter = "0.20, 0.21, 0.22, 0.23, 0.24, 0.25, 0.26, 0.27"

```

Therefore, the development version 0.28-DEV of Documenter is not compatible with any recent version of DocumenterTools.

Ok, so finally my question: what is the recommended way to resolve this? For now, I just temporarily changed the Documenter development version to 0.27. That seems fairly workable, but also a little bit dirty. Is there a better way?

---

<div class="post-metadata">

**Author:** ![lmiq](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lmiq/32/18314_2.png) [@lmiq](https://discourse.julialang.org/u/lmiq)\
**Post date:** [October 18, 2022, 11:14am UTC](https://discourse.julialang.org/t/managing-package-dependencies-while-developing/88899/2 "2022-10-18T11:14:16Z")

</div>

I would “dev” DocumenterTools as well, and change the compat entry for documenter there. In particular because, once your new Documenter version is released, you will need to make a PR to DocumenterTools to support that.

---

<div class="post-metadata">

**Author:** ![ettersi](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ettersi/32/6829_2.png) [@ettersi](https://discourse.julialang.org/u/ettersi)\
**Post date:** [October 19, 2022, 1:54am UTC](https://discourse.julialang.org/t/managing-package-dependencies-while-developing/88899/3 "2022-10-19T01:54:14Z")

</div>

That makes sense. I guess the best way to do this is to follow up on every release with a minor release in all packages under your purview which updates their compat sections so they include the next version of the just-released package. This way, you can happily continue developing the just released package, and the other packages will automatically start using the next version once it is released.
