Package Dev Workflow with Multiple Dev Machines?

I’m running into issues with what I think is a pretty common workflow and looking for advice on how to manage this workflow. My situation is:

  1. I’m working on a Julia project - in this case a Genie app
  2. I need to modify one of my dependencies to add features/fix a bug etc. I’ve been doing this from Pkg using dev <dependency> then modifying the source in ~/.julia/dev/<dependency>
  3. I want to be able to develop on a different machine using my modified copy of the dependency. Ideally, this would be as easy as opening a project with unmodified dependencies.

What’s the best way to track modified dev dependencies across different machines? Things I’ve tried include:

  1. Fork the dependency on Github. Add fork as origin for ~/.julia/dev local copy of package. Push local changes to branch of fork.
  2. Remove official package with rm <dependency> then add forked copy with add <fork of dependency>#branch. Ideally I want to use dev <fork of dependency>#branch but that fails and says to try using add with a local repo instead. Using add would require me to manually clone all modified dependencies to the same spot on a new machine as best I can tell so I’d like to avoid that if possible.
  3. Project.toml doesn’t seem to store package source URLs or branch info and I’m currently git ignoring Manifest.toml, so my other dev machine has no way to track modified dependencies.

What’s the best way to manage this workflow? Should I be committing Manifest.toml? Should I be using pkg add instead of pkg dev and including dependencies as git submodules of my project?

Thanks for any tips!

Have you found a solution to this problem? I am running in a similar issue, where I have a shared folder between my local machine and a remote cluster. I want to ] dev a package in my local machine, modify it and use the modified version in the cluster. The problem is that in the Project.toml file, the path to the package is hardcoded and instantiate does not recognise it in one of the two machines.