# Workflow for local packages with local dependencies

**URL:** <https://discourse.julialang.org/t/workflow-for-local-packages-with-local-dependencies/30636>\
**Category:** New to Julia\
**Tags:** pkg, git, workflow\
**Created:** [November 2, 2019, 6:32pm UTC](https://discourse.julialang.org/t/workflow-for-local-packages-with-local-dependencies/30636 "2019-11-02T18:32:18Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![ffevotte](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ffevotte/32/6587_2.png) [@ffevotte](https://discourse.julialang.org/u/ffevotte)\
**Post date:** [November 2, 2019, 9:08pm UTC](https://discourse.julialang.org/t/workflow-for-local-packages-with-local-dependencies/30636/2 "2019-11-02T21:08:07Z")

</div>

(I’m assuming you need to commit the Manifest file because your packages are not registered. Is that correct?)

I think the situation is a bit tricky here, because as soon as you want to publicly release both packages, you’ll have to ensure that the publicly available versions are compatible. In other words, you’ll have to avoid situations where the released version of A depends on a not-yet-released (but available on your machine) version of B.

One thing you could do is (let me rename A and B to `App` and `Lib` respectively):

1. commit a clean version of `Lib` and release it on `http://git.server/Lib.jl.git` (possibly in a `dev` branch if you don’t want to advertize it as the new `master` version)
2. make `App` depend on the public release of `Lib`:

```julia
] add http://git.server/Lib.jl.git#dev

```

3. commit a clean version of `App` and publicly release it (again, possibly in a specific branch). While doing so, make sure its Manifest file does not contain any local reference to `Lib`. This way, anybody cloning or `add`ing `App` from its public git repository will get a clean dependency on the publicly available version of `Lib`.
4. In order to easily develop `App`, temporarily switch to `develop`ing `Lib` again:

```julia
] dev /local/path/to/Lib.jl

```

5. do as many local changes as you want in `App` and `Lib`, but don’t commit anything at this stage. (otherwise you’d risk having inconsistent commits in your repos)
6. whenever you get to a working version of both packages and want to commit, go back to step 1.

---

_[View the full topic](https://discourse.julialang.org/t/workflow-for-local-packages-with-local-dependencies/30636)._
