# Package Dev Workflow with Multiple Dev Machines?

**URL:** <https://discourse.julialang.org/t/package-dev-workflow-with-multiple-dev-machines/114520>\
**Category:** General Usage\
**Tags:** package, git\
**Created:** [May 21, 2024, 5:16pm UTC](https://discourse.julialang.org/t/package-dev-workflow-with-multiple-dev-machines/114520 "2024-05-21T17:16:28Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![zacharyneveu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/zacharyneveu/32/34771_2.png) [@zacharyneveu](https://discourse.julialang.org/u/zacharyneveu)\
**Post date:** [May 21, 2024, 5:16pm UTC](https://discourse.julialang.org/t/package-dev-workflow-with-multiple-dev-machines/114520/1 "2024-05-21T17:16:28Z")

</div>

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!

---

<div class="post-metadata">

**Author:** ![PetrosStefanou](https://avatars.discourse-cdn.com/v4/letter/p/a88e57/32.png) [@PetrosStefanou](https://discourse.julialang.org/u/PetrosStefanou)\
**Post date:** [July 26, 2024, 3:10pm UTC](https://discourse.julialang.org/t/package-dev-workflow-with-multiple-dev-machines/114520/2 "2024-07-26T15:10:16Z")

</div>

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.
