# Does 0.7 support REQUIRE?

**URL:** https://discourse.julialang.org/t/does-0-7-support-require/13078
**Category:** General Usage
**Created:** [August 9, 2018, 10:13am UTC](https://discourse.julialang.org/t/does-0-7-support-require/13078 "2018-08-09T10:13:40Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![Federico\_Calboli](https://avatars.discourse-cdn.com/v4/letter/f/c0e974/32.png) [@Federico\_Calboli](https://discourse.julialang.org/u/Federico_Calboli)
#### Post date: [August 9, 2018, 10:13am UTC](https://discourse.julialang.org/t/does-0-7-support-require/13078/1 "2018-08-09T10:13:40Z")

</div>

Hi All,

until 0.6 I had a file in ~/.julia/v0.6 named REQUIRE with a list of packages I want. Pkg.update would automagically look up the list and keep stuff up to date, or, actually install stuff I had added to the list. This approach is not working for me on 0.7. How do I proceed? I just use julia in a shell.

Also, I noticed there a package manager I can call up with ] – how do I get out of it (short of ctrl-C)?

---

<div class="post-metadata">

### Author: ![kevbonham](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kevbonham/32/216165_2.png) [@kevbonham](https://discourse.julialang.org/u/kevbonham)
#### Post date: [August 9, 2018, 10:53am UTC](https://discourse.julialang.org/t/does-0-7-support-require/13078/2 "2018-08-09T10:53:01Z")

</div>

> [@Federico\_Calboli](#):
>
> Also, I noticed there a package manager I can call up with ] – how do I get out of it (short of ctrl-C)?

Backspace.

> [@Federico\_Calboli](#):
>
> until 0.6 I had a file in ~/.julia/v0.6 named REQUIRE with a list of packages I want. Pkg.update would automagically look up the list and keep stuff up to date, or, actually install stuff I had added to the list. This approach is not working for me on 0.7. How do I proceed? I just use julia in a shell

Are you doing `Pkg.update()` or are you using the PKG REPL and typing `update`? The later is more straightforward, but if you want to keep doing the former I think doing `using Pkg` before hand works.

Also, check out the juliacon video about the new package manager - it clarified a lot of things for me.

---

<div class="post-metadata">

### Author: ![Federico\_Calboli](https://avatars.discourse-cdn.com/v4/letter/f/c0e974/32.png) [@Federico\_Calboli](https://discourse.julialang.org/u/Federico_Calboli)
#### Post date: [August 9, 2018, 11:10am UTC](https://discourse.julialang.org/t/does-0-7-support-require/13078/3 "2018-08-09T11:10:47Z")

</div>

I am using `Pkg.update()`. I should have mentioned I created `~/.julia/v0.7` with the same `REQUIRE` file in it (i.e. I have `~/.julia/v0.7/REQUIRE`), but `using Pkg` followed by `Pkg.update()` does not install any of the packages in the list (which might be in the wrong pace?). Thanks anyway!

---

<div class="post-metadata">

### Author: ![kevbonham](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kevbonham/32/216165_2.png) [@kevbonham](https://discourse.julialang.org/u/kevbonham)
#### Post date: [August 9, 2018, 2:23pm UTC](https://discourse.julialang.org/t/does-0-7-support-require/13078/4 "2018-08-09T14:23:50Z")

</div>

Oh, I see. This might be the sort of thing that is now handled by a Manifest file, but I’m not sure. A hack you could try is to make a dummy module and put the REQUIRE file in it. Then `] dev "path/to/dummy"`. I think that will work?

---

<div class="post-metadata">

### Author: ![Federico\_Calboli](https://avatars.discourse-cdn.com/v4/letter/f/c0e974/32.png) [@Federico\_Calboli](https://discourse.julialang.org/u/Federico_Calboli)
#### Post date: [August 9, 2018, 2:33pm UTC](https://discourse.julialang.org/t/does-0-7-support-require/13078/5 "2018-08-09T14:33:59Z")

</div>

From the manual a Manifest file would need me to specify the version of each package, so it might work, but it would defeat my goal of automagically tracking and keeping stuff to the latest version. I will look into making a module – hopefully that will sort things globally and not just make a locale that needs regeneration every time. Thanks for your suggestions!

---

<div class="post-metadata">

### Author: ![kevbonham](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kevbonham/32/216165_2.png) [@kevbonham](https://discourse.julialang.org/u/kevbonham)
#### Post date: [August 9, 2018, 2:38pm UTC](https://discourse.julialang.org/t/does-0-7-support-require/13078/6 "2018-08-09T14:38:58Z")

</div>

Right, but you can do `] up` and upgrade anything that’s not pinned. This also modifies the Manifest (I’m pretty sure). I think the goal is that you wouldn’t usually make the Manifest by hand, but if you do `] add MyPackage` it puts the current version of `MyPackage` into the Manifest. That doesn’t stop you from upgrading it.

---

<div class="post-metadata">

### Author: ![kevbonham](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kevbonham/32/216165_2.png) [@kevbonham](https://discourse.julialang.org/u/kevbonham)
#### Post date: [August 9, 2018, 2:46pm UTC](https://discourse.julialang.org/t/does-0-7-support-require/13078/7 "2018-08-09T14:46:16Z")

</div>

In fact, you can do:

```julia
(v0.7) pkg> activate NewEnv
[ Info: new environment will be placed at /Users/kev/julia/NewEnv

julia> using Pkg

julia> for p in readlines(expanduser("~/.julia/v0.6/REQUIRE")
           Pkg.add(p)
       end

```

And it will install all the packages in your v0.6 REQUIRE file and build a manifest.

Edit: note that the `] activate NewEnv` isn’t strictly necessary, if you just leave it in the base `v0.7` environment it’ll work too

---

<div class="post-metadata">

### Author: ![Federico\_Calboli](https://avatars.discourse-cdn.com/v4/letter/f/c0e974/32.png) [@Federico\_Calboli](https://discourse.julialang.org/u/Federico_Calboli)
#### Post date: [August 9, 2018, 3:01pm UTC](https://discourse.julialang.org/t/does-0-7-support-require/13078/8 "2018-08-09T15:01:58Z")

</div>

Thanks, it did work, though it strikes me as a substantially more complicated way of doing stuff that I would have hoped for (I did not activate a new environment btw).

---

<div class="post-metadata">

### Author: ![kevbonham](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kevbonham/32/216165_2.png) [@kevbonham](https://discourse.julialang.org/u/kevbonham)
#### Post date: [August 9, 2018, 3:06pm UTC](https://discourse.julialang.org/t/does-0-7-support-require/13078/9 "2018-08-09T15:06:32Z")

</div>

> [@Federico\_Calboli](#):
>
> Thanks, it did work, though it strikes me as a substantially more complicated way of doing stuff that I would have hoped for

I’ve thought this about a few things, but if you think about it not from the perspective of moving from the old system, but a new user starting from scratch, I think it makes a lot of sense. I’m guessing a lot of the stuff in your `REQUIRE` file came from doing `Pkg.add` at some point. The new manifest is no different, except that it preserves exact state.

If you were using git to track your `REQUIRE` file and jumped back 2 months, it might not have changed even as all of the packages were updated. So if you go back and try to use code you wrote 2 months ago, there’s no way to know if it will work or why it broke.

---

<div class="post-metadata">

### Author: ![Federico\_Calboli](https://avatars.discourse-cdn.com/v4/letter/f/c0e974/32.png) [@Federico\_Calboli](https://discourse.julialang.org/u/Federico_Calboli)
#### Post date: [August 9, 2018, 3:23pm UTC](https://discourse.julialang.org/t/does-0-7-support-require/13078/10 "2018-08-09T15:23:36Z")

</div>

You are giving me far too much credit in terms of how much effort and knowledge I bother to put in _managing_ julia and packages (close to 0 if I can get away with) – I am in fact one of those people with 0 interest in development (i.e. a ‘pure user’). I just want to use the language with the least amount of effort an hassle. In fact it would be simple for me to reinstall from 0 julia and packages (provided it is straightforward and requires little effort – reinstalling julia was, the packages less so) than to have to figure out how to migrate. I do not mean this to be a rant, but as much as all this stuff gives lots of power to developers it is also a non welcome complication to me (and possibly other people with my same usage goals).

---

<div class="post-metadata">

### Author: ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)
#### Post date: [August 9, 2018, 3:26pm UTC](https://discourse.julialang.org/t/does-0-7-support-require/13078/11 "2018-08-09T15:26:17Z")

</div>

Give JuliaPro a shot: it should come fully loaded for casual use.

---

<div class="post-metadata">

### Author: ![Federico\_Calboli](https://avatars.discourse-cdn.com/v4/letter/f/c0e974/32.png) [@Federico\_Calboli](https://discourse.julialang.org/u/Federico_Calboli)
#### Post date: [August 9, 2018, 5:32pm UTC](https://discourse.julialang.org/t/does-0-7-support-require/13078/12 "2018-08-09T17:32:25Z")

</div>

I did in fact look at JuliaPro a few months ago, but I just found it too much – I just want to open a terminal, type `julia` and be done. In 0.6.x the way to manage packages was simple, elegant and required the least amount of hassle. I do get that development breaks stuff and that developer need a fine grained control, but I am not a developer and I do not care. I do not want to develop julia, I just want to use it. Managing it is a chore I accept, but I like small chores.

---

<div class="post-metadata">

### Author: ![alejandromerchan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/alejandromerchan/32/10500_2.png) [@alejandromerchan](https://discourse.julialang.org/u/alejandromerchan)
#### Post date: [August 9, 2018, 5:45pm UTC](https://discourse.julialang.org/t/does-0-7-support-require/13078/13 "2018-08-09T17:45:31Z")

</div>

I think we’re at an awkward point for that, because the update from 0.6 to 0.7 and eventually 1.0 changed a lot of thing. Package developers and maintainers are scrambling, with different levels of success, to patch and update their packages and a lot of things are not working smoothly in 0.7. So, I understand your pain, but that phase should pass and your wish to just download and use should happen. I’m also a “pure user”, although I might have more interest than you in developing, but I believe everybody wants to get to the point you want. This is, in essence, a business and the creators do want to benefit from all their work. And they realize a seamless user experience for new users is very important.

---

<div class="post-metadata">

### Author: ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)
#### Post date: [August 9, 2018, 5:46pm UTC](https://discourse.julialang.org/t/does-0-7-support-require/13078/14 "2018-08-09T17:46:12Z")

</div>

Add the packages you want with `Pkg.add("...")`. Support for `REQUIRE` as in `.julia/v0.x` does not exit.

---

<div class="post-metadata">

### Author: ![jebej](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jebej/32/1784_2.png) [@jebej](https://discourse.julialang.org/u/jebej)
#### Post date: [August 9, 2018, 8:10pm UTC](https://discourse.julialang.org/t/does-0-7-support-require/13078/15 "2018-08-09T20:10:19Z")

</div>

It needs to be clearer somehow that people should not be modifying the Manifest file.

---

<div class="post-metadata">

### Author: ![Federico\_Calboli](https://avatars.discourse-cdn.com/v4/letter/f/c0e974/32.png) [@Federico\_Calboli](https://discourse.julialang.org/u/Federico_Calboli)
#### Post date: [August 9, 2018, 8:26pm UTC](https://discourse.julialang.org/t/does-0-7-support-require/13078/16 "2018-08-09T20:26:39Z")

</div>

Do not get me wrong, if there is a different way of getting what I want I am happy to learn it – what I find a bit off-putting is that I see a highly complex, fine grained, powerful and yet complicated and incomprehensible new approach that does every thing under the sun but does not give me a simple straightforward line ‘if you do not care and just want your packages do X’. At the risk of mentioning the competition, in R I just have one version, and one straightforward way to install packages with their dependencies. Is this great for developers? I would not know. Possibly not. But it is straightforward.

---

<div class="post-metadata">

### Author: ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)
#### Post date: [August 9, 2018, 8:30pm UTC](https://discourse.julialang.org/t/does-0-7-support-require/13078/17 "2018-08-09T20:30:16Z")

</div>

> [@Federico\_Calboli](#):
>
> does not give me a simple straightforward line ‘if you do not care and just want your packages do X

> [@kristoffer.carlsson](#):
>
> Add the packages you want with `Pkg.add("...")` .

It is literally what one did in 0.6 so not sure what the problem is.

---

<div class="post-metadata">

### Author: ![favba](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/favba/32/2735_2.png) [@favba](https://discourse.julialang.org/u/favba)
#### Post date: [August 9, 2018, 8:38pm UTC](https://discourse.julialang.org/t/does-0-7-support-require/13078/18 "2018-08-09T20:38:35Z")

</div>

You only need to add packages once. Once they are installed doing `Pkg.update()` will still track your packages and update all to a more recent version, if available.

If you want to use the REQUIRE file you already have just do

```julia
using Pkg
for p in readlines(homedir()*"/.julia/v0.7/REQUIRE")
    Pkg.add(p)
end

```

But then you should just add any other package you want through the terminal, not through the REQUIRE file.

---

<div class="post-metadata">

### Author: ![Federico\_Calboli](https://avatars.discourse-cdn.com/v4/letter/f/c0e974/32.png) [@Federico\_Calboli](https://discourse.julialang.org/u/Federico_Calboli)
#### Post date: [August 9, 2018, 8:45pm UTC](https://discourse.julialang.org/t/does-0-7-support-require/13078/19 "2018-08-09T20:45:22Z")

</div>

This is not what I did. As I said above, I had `~/.julia/v0.6/REQUIRE` specifying what to add and keep up to date, and all I used to do was `Pkg.update()` which would read REQUIRE, keep stuff up to date and add stuff that I added to the REQUIRE list.

---

<div class="post-metadata">

### Author: ![favba](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/favba/32/2735_2.png) [@favba](https://discourse.julialang.org/u/favba)
#### Post date: [August 9, 2018, 8:54pm UTC](https://discourse.julialang.org/t/does-0-7-support-require/13078/20 "2018-08-09T20:54:54Z")

</div>

Every package that you once `Pkg.add`ed will be updated when you do `Pkg.update()`, the only change you have to make on your “workflow” is, instead of adding new packages to the REQUIRE list, you should now open a julia session and `Pkg.add` that pkg.

[Next page](https://discourse.julialang.org/t/does-0-7-support-require/13078.md?page=2)
