Is there a way to separate development dependencies from runtime dependencies in Project.toml?

Suppose I’m working on a project that depends on DataFrames.jl and Gadfly.jl to run and I decide to work on it using Pluto.jl or IJulia.jl. As far as I know, I can create Pkg.activate an environment for this project and add all these packages, but I would like to specify that the “real” dependencies are just the former two (somewhat like pipenv or poetry for python). Is it possible?

1 Like

Maybe not the most clean way, but you can work on your project keeping your default environment (or an other one), and switch to the in-development environment just to add the really-needed packages.

What I do, maybe not the best, but it works for me. I have an environment where I develop the package and it has the package dependencies. And I also open another VSCode window in another environment where I can play with the package I’m developing, using packages that are not direct dependencies but they go into that environment. I do that a lot because I connect with a database and a lot of my packages need data from the DB. So, I have a Playground environment with all the things that I need to connect and get data, and I can test my package. I don’t remember now if Revise works this way, which can be annoying because you need to reload the package constantly.