Packages for "my own" code

It seems like “project” has some Julia specific meaning.

I am getting very lost among modules, packages, and projects. Well, modules are pretty simple really.

So, going from a module to a package is mystifying in the extreme. And every IDE and build system seems to have its own notion of project.

Here is my understanding:

  1. module = namespace
  2. package = one way of defining an environment
  3. project = another way of defining an environment (could be a package)

where

environment = a collection of directories where Julia looks for Project.toml files to resolve dependencies.

Then

package = a directory with a Project.toml and a bunch of other standardized things that make the code contained inside it self-contained and reusable. See Code Loading · The Julia Language

project = also a directory with a Project.toml, but not necessarily all the other stuff that defines a package.

This would be a good opportunity for those who really understand the details to correct what I just wrote.