Managing package dependencies while developing

I’m working on a PR 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] section states

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?

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.

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.