We have a use-case which should not be totally uncommon: We have a couple of julia scripts that illustrate / simulate something in a research paper. In our case it reproduces some figures in the paper. In order for a reader to easily try out the script, we want to provide it as a tar-ball on a web-page (our own web page, not a github). The correct package versions is crucial. Someone indicated that the right way to do get the right package version is with toml-files.
Given a script, how can I generate toml-files with the requirements of what it runs. Since the goal is reproducibility, the exact version number of the current packages would probably be the best choice. I would prefer not to have edit toml-files by hand.
How does a reader of the paper install exactly the same versions of the packages as specified in the toml-file?
I’d recommend spending a little bit of time and wrap your project in DrWatson.jl which was made exactly for this purpose. In the documentation you also find a very nice overview how such a project can be initialised with ease.
But in general, yes, a Project.toml will describe the environment and the dependencies and a Manifest.toml will even set each of them to a very specific version, so your environment will be fully reproducible.