# Revise.jl doesn't appear to do anything

**URL:** https://discourse.julialang.org/t/revise-jl-doesnt-appear-to-do-anything/54788
**Category:** New to Julia
**Tags:** question
**Created:** [February 7, 2021, 1:07pm UTC](https://discourse.julialang.org/t/revise-jl-doesnt-appear-to-do-anything/54788 "2021-02-07T13:07:57Z")
**Posts on this page:** 20
**Page:** 3

<div class="post-metadata">

### Author: ![thofma](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thofma/32/1691_2.png) [@thofma](https://discourse.julialang.org/u/thofma)
#### Post date: [February 7, 2021, 7:21pm UTC](https://discourse.julialang.org/t/revise-jl-doesnt-appear-to-do-anything/54788/42 "2021-02-07T19:21:38Z")

</div>

It adds the package at the path to your environment. Since you were following the Revise documentation on how to work with `dev`ed packages, it seemed that this was what you were trying to do.

It seems what you are trying to do is rather non-standard. Not sure how well the usual tooling works for this.

---

<div class="post-metadata">

### Author: ![alice](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/alice/32/20895_2.png) [@alice](https://discourse.julialang.org/u/alice)
#### Post date: [February 7, 2021, 7:25pm UTC](https://discourse.julialang.org/t/revise-jl-doesnt-appear-to-do-anything/54788/43 "2021-02-07T19:25:00Z")

</div>

My current structure follows this example

```plaintext
my_package_repo
└── MyFirstPackage
    ├── Project.toml
    └── src
        ├── MyFirstPackage.jl
        ├── types.jl
        ├── mainalgorithm.jl
        ├── FileFormatA
        │ ├── FileFormatA.jl
        │ ├── reader.jl
        │ └── writer.jl
        ├── FileFormatB
        │ ├── FileFormatB.jl
        │ ├── reader.jl
        │ └── writer.jl
        └── display.jl

```

from [this post](https://discourse.julialang.org/t/how-does-the-module-system-actually-work/53548/3).

> [@thofma](#):
>
> It seems what you are trying to do is rather non-standard.

I don’t know… If I’m going to have a separate package for every file, I’m either going to have some very long files, or a lot of packages.

---

<div class="post-metadata">

### Author: ![alice](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/alice/32/20895_2.png) [@alice](https://discourse.julialang.org/u/alice)
#### Post date: [February 7, 2021, 7:30pm UTC](https://discourse.julialang.org/t/revise-jl-doesnt-appear-to-do-anything/54788/44 "2021-02-07T19:30:39Z")

</div>

Like, the thing that I am explicitly trying to do right now is to change my structure into something more standard.

---

<div class="post-metadata">

### Author: ![thofma](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thofma/32/1691_2.png) [@thofma](https://discourse.julialang.org/u/thofma)
#### Post date: [February 7, 2021, 7:33pm UTC](https://discourse.julialang.org/t/revise-jl-doesnt-appear-to-do-anything/54788/45 "2021-02-07T19:33:17Z")

</div>

Hm, what is the name of your package? `VCLR`? What about `CRL`? Is it a separate package or is it contained in `VCLR`?

---

<div class="post-metadata">

### Author: ![alice](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/alice/32/20895_2.png) [@alice](https://discourse.julialang.org/u/alice)
#### Post date: [February 7, 2021, 7:34pm UTC](https://discourse.julialang.org/t/revise-jl-doesnt-appear-to-do-anything/54788/46 "2021-02-07T19:34:09Z")

</div>

CLR is an existing algorithm, and VCLR is a modified version of that algorithm. I have an implementation of both that differ only in what happens inside the branch-and-bound nodes, and the implementations share the branch-and-bound part of the algorithm.

---

<div class="post-metadata">

### Author: ![pdeffebach](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdeffebach/32/10320_2.png) [@pdeffebach](https://discourse.julialang.org/u/pdeffebach)
#### Post date: [February 7, 2021, 7:35pm UTC](https://discourse.julialang.org/t/revise-jl-doesnt-appear-to-do-anything/54788/47 "2021-02-07T19:35:19Z")

</div>

Are you coming from python? You might be over-using separate modules. You can have code that reads in two different file formats in the same `module`.

On the other hand, if they are entirely separate implementations, then yes I would suggest having them be separate folders entirely.

---

<div class="post-metadata">

### Author: ![alice](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/alice/32/20895_2.png) [@alice](https://discourse.julialang.org/u/alice)
#### Post date: [February 7, 2021, 7:35pm UTC](https://discourse.julialang.org/t/revise-jl-doesnt-appear-to-do-anything/54788/48 "2021-02-07T19:35:33Z")

</div>

No, I come from Rust. The CLR and VCLR folders are entirely separate. The code that they both use is in the Shared folder.

Let me just post my structure again, since it got far up:

```julia
/home/alice/src/VoronoiCLR
├── data
│ └── ...
├── Manifest.toml
├── Project.toml
├── README.md
├── src
│ ├── CLR
│ │ ├── CLR.jl
│ │ ├── ...
│ ├── delaunay.jl
│ ├── Generators
│ │ ├── Generators.jl
│ │ └── ...
│ ├── Loaders
│ │ ├── Loaders.jl
│ │ └── ...
│ ├── Shared
│ │ ├── Shared.jl
│ │ └── ...
│ ├── VCLR
│ │ ├── VCLR.jl
│ │ └── ...
│ └── VoronoiCLR.jl

```

---

<div class="post-metadata">

### Author: ![alice](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/alice/32/20895_2.png) [@alice](https://discourse.julialang.org/u/alice)
#### Post date: [February 7, 2021, 7:42pm UTC](https://discourse.julialang.org/t/revise-jl-doesnt-appear-to-do-anything/54788/49 "2021-02-07T19:42:14Z")

</div>

I mean, in principle I could split it into a bunch of separate packages, but it seems somewhat unnatural — those pieces are just implementation details.

---

<div class="post-metadata">

### Author: ![pdeffebach](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdeffebach/32/10320_2.png) [@pdeffebach](https://discourse.julialang.org/u/pdeffebach)
#### Post date: [February 7, 2021, 7:43pm UTC](https://discourse.julialang.org/t/revise-jl-doesnt-appear-to-do-anything/54788/50 "2021-02-07T19:43:59Z")

</div>

If they are implementation details, they don’t necessarily need to live in separate packages, certainly not with their own `Project.toml` files.

If the user is going to have `CLR` and `VCLR` in the same environment anyways, then it’s an unnecessary complication to have them as separate packages entirely, rather than sub-modules in the same larger repo.

---

<div class="post-metadata">

### Author: ![thofma](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thofma/32/1691_2.png) [@thofma](https://discourse.julialang.org/u/thofma)
#### Post date: [February 7, 2021, 7:44pm UTC](https://discourse.julialang.org/t/revise-jl-doesnt-appear-to-do-anything/54788/51 "2021-02-07T19:44:16Z")

</div>

> [@alice](#):
>
> `/home/alice/src/VoronoiCLR`

This looks good. You can just fire up julia, do `dev /home/alice/src/VoronoiCLR` and then `using Revise, VoronoiCLR` will load your package and track local changes.

(I would not have done it any other way.)

---

<div class="post-metadata">

### Author: ![alice](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/alice/32/20895_2.png) [@alice](https://discourse.julialang.org/u/alice)
#### Post date: [February 7, 2021, 7:45pm UTC](https://discourse.julialang.org/t/revise-jl-doesnt-appear-to-do-anything/54788/52 "2021-02-07T19:45:03Z")

</div>

So the `dev` command is just to an alternative to using `cd` to navigate into the right directory and calling `julia --project`?

Assuming I have a single package.

---

<div class="post-metadata">

### Author: ![pdeffebach](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdeffebach/32/10320_2.png) [@pdeffebach](https://discourse.julialang.org/u/pdeffebach)
#### Post date: [February 7, 2021, 7:48pm UTC](https://discourse.julialang.org/t/revise-jl-doesnt-appear-to-do-anything/54788/53 "2021-02-07T19:48:12Z")

</div>

Kind of. As mentioned above you probably shouldn’t have each of these sub-modules as their own project. Just have one top-level `Project.toml` for `VoronoiCLR`.

---

<div class="post-metadata">

### Author: ![alice](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/alice/32/20895_2.png) [@alice](https://discourse.julialang.org/u/alice)
#### Post date: [February 7, 2021, 7:49pm UTC](https://discourse.julialang.org/t/revise-jl-doesnt-appear-to-do-anything/54788/54 "2021-02-07T19:49:31Z")

</div>

I have only a single `Project.toml`, namely the one you see in the tree I posted. The folders are accessible becaues the `/home/alice/src/VoronoiCLR/src/VoronoiCLR.jl` file contains this:

```julia
include("Shared/Shared.jl")
include("delaunay.jl")
include("CLR/CLR.jl")
include("VCLR/VCLR.jl")

include("Loaders/Loaders.jl")
include("Generators/Generators.jl")

```

Those files have additional `include` statements for other files in the same folder.

---

<div class="post-metadata">

### Author: ![pdeffebach](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdeffebach/32/10320_2.png) [@pdeffebach](https://discourse.julialang.org/u/pdeffebach)
#### Post date: [February 7, 2021, 7:52pm UTC](https://discourse.julialang.org/t/revise-jl-doesnt-appear-to-do-anything/54788/55 "2021-02-07T19:52:40Z")

</div>

Okay. This is slightly beyond my skills at this point.

I am not 100% sure the limits of Revise with respect to including sub-modules in that way. Hopefully someone with more expertise can chime in. In general, you don’t need to use modules that much, and using more than one module per package can complicate things. But it’s not impossible and I will defer to someone who knows more than me.

---

<div class="post-metadata">

### Author: ![alice](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/alice/32/20895_2.png) [@alice](https://discourse.julialang.org/u/alice)
#### Post date: [February 7, 2021, 7:53pm UTC](https://discourse.julialang.org/t/revise-jl-doesnt-appear-to-do-anything/54788/56 "2021-02-07T19:53:50Z")

</div>

Am I supposed to be including the other files in my project in some other manner than with an `include(...)` statement?

---

<div class="post-metadata">

### Author: ![alice](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/alice/32/20895_2.png) [@alice](https://discourse.julialang.org/u/alice)
#### Post date: [February 7, 2021, 7:55pm UTC](https://discourse.julialang.org/t/revise-jl-doesnt-appear-to-do-anything/54788/57 "2021-02-07T19:55:31Z")

</div>

Revise.jl appears to work just fine in the sub-modules.

---

<div class="post-metadata">

### Author: ![thofma](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thofma/32/1691_2.png) [@thofma](https://discourse.julialang.org/u/thofma)
#### Post date: [February 7, 2021, 7:58pm UTC](https://discourse.julialang.org/t/revise-jl-doesnt-appear-to-do-anything/54788/58 "2021-02-07T19:58:37Z")

</div>

I think you are doing everything right. I personally don’t do it the `julia --project=` way. I just do the `dev`, then it is in my standard environment and I can do the short and sweet `using Revise, VoronoiCLR` after starting julia.

---

<div class="post-metadata">

### Author: ![pdeffebach](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdeffebach/32/10320_2.png) [@pdeffebach](https://discourse.julialang.org/u/pdeffebach)
#### Post date: [February 7, 2021, 7:58pm UTC](https://discourse.julialang.org/t/revise-jl-doesnt-appear-to-do-anything/54788/59 "2021-02-07T19:58:55Z")

</div>

If Revise is working, then I think you should be all set.

Your folder structure is unusual, and could maybe be “flatter” with more things split out into separate folders and relying on one another via `dev`, but if things are working at this point that’s good.

---

<div class="post-metadata">

### Author: ![pdeffebach](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdeffebach/32/10320_2.png) [@pdeffebach](https://discourse.julialang.org/u/pdeffebach)
#### Post date: [February 7, 2021, 7:59pm UTC](https://discourse.julialang.org/t/revise-jl-doesnt-appear-to-do-anything/54788/60 "2021-02-07T19:59:21Z")

</div>

That will cause compatability issues. See the initial discussion in this thread.

---

<div class="post-metadata">

### Author: ![alice](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/alice/32/20895_2.png) [@alice](https://discourse.julialang.org/u/alice)
#### Post date: [February 7, 2021, 8:03pm UTC](https://discourse.julialang.org/t/revise-jl-doesnt-appear-to-do-anything/54788/61 "2021-02-07T20:03:04Z")

</div>

I find it pretty surprising that making use of sub-modules at all is considered unusual, but ok. Splitting my submodules into separate packages doesn’t seem like it makes my life easier, so I’ll keep this setup.

Thanks everyone! I think all my confusions have been addressed now.

[Previous page](https://discourse.julialang.org/t/revise-jl-doesnt-appear-to-do-anything/54788.md?page=2)

[Next page](https://discourse.julialang.org/t/revise-jl-doesnt-appear-to-do-anything/54788.md?page=4)
