# Share package enviroments between 1.0 and master

**URL:** https://discourse.julialang.org/t/share-package-enviroments-between-1-0-and-master/15988
**Category:** Internals & Design
**Tags:** question
**Created:** [October 7, 2018, 7:17am UTC](https://discourse.julialang.org/t/share-package-enviroments-between-1-0-and-master/15988 "2018-10-07T07:17:36Z")
**Posts on this page:** 13
**Page:** 1

<div class="post-metadata">

### Author: ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)
#### Post date: [October 7, 2018, 7:17am UTC](https://discourse.julialang.org/t/share-package-enviroments-between-1-0-and-master/15988/1 "2018-10-07T07:17:36Z")

</div>

Since I use both `master` and 1.0, I was wondering if I could somehow maintain a consistent environment of packages (ie the global `Project.toml` and `Manifest.toml` in `~/.julia/environments/VERSION`) between the two, to make it easier to switch back and forth.

1. Just checking, could this have any unintended downsides I am not seeing?

2. Regarding the implementation, can I just symlink `~/.julia/environments/v1.1` etc to `~/.julia/environments/v1.1`, or is there a more canonical way of doing this?

---

<div class="post-metadata">

### Author: ![yakir12](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yakir12/32/297_2.png) [@yakir12](https://discourse.julialang.org/u/yakir12)
#### Post date: [October 7, 2018, 8:40am UTC](https://discourse.julialang.org/t/share-package-enviroments-between-1-0-and-master/15988/2 "2018-10-07T08:40:18Z")

</div>

I was interested in this for bridging 0.7 and 1.x since I still test things in 0.7 to find out what library I’m missing.

---

<div class="post-metadata">

### Author: ![oxinabox](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oxinabox/32/206603_2.png) [@oxinabox](https://discourse.julialang.org/u/oxinabox)
#### Post date: [October 7, 2018, 8:47am UTC](https://discourse.julialang.org/t/share-package-enviroments-between-1-0-and-master/15988/3 "2018-10-07T08:47:51Z")

</div>

Why bother?  
Installing packages is instantaneous if you already have that version installed in another environment.

It is because of this that I can  
Use new environments almost every time I do anything,  
even with Australian Internet

---

<div class="post-metadata">

### Author: ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)
#### Post date: [October 7, 2018, 8:50am UTC](https://discourse.julialang.org/t/share-package-enviroments-between-1-0-and-master/15988/4 "2018-10-07T08:50:32Z")

</div>

> [@oxinabox](#):
>
> Why bother?

Primarily so that the packages I `dev` are consistent.

---

<div class="post-metadata">

### Author: ![oxinabox](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oxinabox/32/206603_2.png) [@oxinabox](https://discourse.julialang.org/u/oxinabox)
#### Post date: [October 7, 2018, 8:53am UTC](https://discourse.julialang.org/t/share-package-enviroments-between-1-0-and-master/15988/5 "2018-10-07T08:53:31Z")

</div>

That is fair, good point.

Though option when deving is to just activate the package dir, or your working environment (if `dev --local`) in each by name/command line arg.  
Which is l what I almost do, since I never use default environment at all.

---

<div class="post-metadata">

### Author: ![tim.holy](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tim.holy/32/52_2.png) [@tim.holy](https://discourse.julialang.org/u/tim.holy)
#### Post date: [October 7, 2018, 8:56am UTC](https://discourse.julialang.org/t/share-package-enviroments-between-1-0-and-master/15988/6 "2018-10-07T08:56:09Z")

</div>

First thing I’d try is moving `~/.julia/environments/v1.1` somewhere temporary and replacing it with a symlink to `~/.julia/environments/v1.0`. Probably want to make a back up of that directory first, though, since some of its contents will be modified.

Though a safer (but harder) option might be to create a script that scans the manifests and syncs them.

---

<div class="post-metadata">

### Author: ![fredrikekre](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fredrikekre/32/1688_2.png) [@fredrikekre](https://discourse.julialang.org/u/fredrikekre)
#### Post date: [October 7, 2018, 9:37am UTC](https://discourse.julialang.org/t/share-package-enviroments-between-1-0-and-master/15988/7 "2018-10-07T09:37:54Z")

</div>

Personally I have just symlinked `environments/v1.0` and `environments/v1.1` to `environments/v1`. Works perfectly fine. See also [https://github.com/JuliaLang/julia/pull/28631](https://github.com/JuliaLang/julia/pull/28631)

---

<div class="post-metadata">

### Author: ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)
#### Post date: [October 7, 2018, 11:24am UTC](https://discourse.julialang.org/t/share-package-enviroments-between-1-0-and-master/15988/8 "2018-10-07T11:24:00Z")

</div>

This works fine.

The version in the `]` prompt shows up as the directory of the real path, but I have not decided whether to think of this as a bug or a feature:

```julia
               _
   _ _ _(_)_ | Documentation: https://docs.julialang.org
  (_) | (_) (_) |
   _ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` | |
  | | |_| | | | (_| | | Version 1.1.0-DEV.427 (2018-10-06)
 _/ |\ __'_|_|_|\__'_| | Commit cfc967bf93 (0 days old master)
|__/ |

(v1.0) pkg> 

```

---

<div class="post-metadata">

### Author: ![fredrikekre](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fredrikekre/32/1688_2.png) [@fredrikekre](https://discourse.julialang.org/u/fredrikekre)
#### Post date: [October 7, 2018, 8:04pm UTC](https://discourse.julialang.org/t/share-package-enviroments-between-1-0-and-master/15988/9 "2018-10-07T20:04:29Z")

</div>

> [@Tamas\_Papp](#):
>
> The version in the `]` prompt shows up as the directory of the real path, but I have not decided whether to think of this as a bug or a feature:

Then I don’t think you did what I suggested? I have the real path at `environments/v1` and link all `environments/v1.X` to it. My prompt is thus

```julia
(v1) pkg>

```

which I kinda like.

---

<div class="post-metadata">

### Author: ![sdanisch](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sdanisch/32/1406_2.png) [@sdanisch](https://discourse.julialang.org/u/sdanisch)
#### Post date: [October 7, 2018, 10:34pm UTC](https://discourse.julialang.org/t/share-package-enviroments-between-1-0-and-master/15988/10 "2018-10-07T22:34:06Z")

</div>

I cd’ed to where the v1 project.toml file is located, started julia master and executed `]activate .` - which should activate the same set of packages (dev’ed and not dev’ed) for master!

---

<div class="post-metadata">

### Author: ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)
#### Post date: [October 7, 2018, 11:25pm UTC](https://discourse.julialang.org/t/share-package-enviroments-between-1-0-and-master/15988/11 "2018-10-07T23:25:13Z")

</div>

Nice, I like that. Mine says `v1.1` — this is better.

---

<div class="post-metadata">

### Author: ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)
#### Post date: [October 8, 2018, 6:47am UTC](https://discourse.julialang.org/t/share-package-enviroments-between-1-0-and-master/15988/12 "2018-10-08T06:47:33Z")

</div>

Indeed I missed the common `/v1` part, I will do that instead, thanks for pointing it out.

---

<div class="post-metadata">

### Author: ![maleadt](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/maleadt/32/10097_2.png) [@maleadt](https://discourse.julialang.org/u/maleadt)
#### Post date: [October 9, 2018, 6:39am UTC](https://discourse.julialang.org/t/share-package-enviroments-between-1-0-and-master/15988/13 "2018-10-09T06:39:28Z")

</div>

Maybe another alternative; I have a separate `depot/environments/common` and use `JULIA_LOAD_PATH="@common::"`. Could use `::@common` if you want the `v1.1` prompt, but then installing stuff into the `common` environment is annoying (unless there’s a way to switch?)
