# Handling various types of dependencies

**URL:** <https://discourse.julialang.org/t/handling-various-types-of-dependencies/27850>\
**Category:** General Usage\
**Created:** [August 22, 2019, 2:45pm UTC](https://discourse.julialang.org/t/handling-various-types-of-dependencies/27850 "2019-08-22T14:45:38Z")\
**Posts on this page:** 1\
**Showing post:** 3

<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:** [August 23, 2019, 8:38am UTC](https://discourse.julialang.org/t/handling-various-types-of-dependencies/27850/3 "2019-08-23T08:38:30Z")

</div>

> [@Tamas\_Papp](#):
>
> AFAIU the distinction between `[deps]` and `[extras]` is only relevant when you are working on a package.

Yes, I’m mostly speaking of packages here. Sorry if that was not clear.

> [@Tamas\_Papp](#):
>
> If this is a “project”, I would just **put everything in `[deps]`** so that `pkg> instantiate` gets everything — this is otherwise costless if you are not loading a package in a particular script.

Even in the case of a simple non-package project, the same problem could happen. Think for example of a research paper (like in this [thread](https://discourse.julialang.org/t/best-practice-modules-and-scripts-for-publishing/25375)), where you might have a program to reproduce the results themselves and store them in data files, and another program to produce the plots shown in the paper.

Depending on the system where you want your program to run (for example on a supercomputer), it might not be convenient to install plotting packages there. The post-processing and plotting stage can then be run on an other system, where graphics dependencies are easier to install.

---

_[View the full topic](https://discourse.julialang.org/t/handling-various-types-of-dependencies/27850)._
