Good guide to setting up a reproducible julia project?

NHDaly
Tue, 16 Aug 2022 21:18:01 +0000
General Usage

Hello,

I was looking for a good guide on how to set up a new julia project/application, so that it is reproducible, and stays up to date with its dependencies.

My coworkers were setting up a new julia project, and I couldn’t find any good “getting started setting up a new project” advice online. Does anyone know of any existing guides like this?

Here is what I recommended to them:

commit your *.toml files (created when you Pkg.add() dependencies)

Project.toml

Manifest.toml (This provides reproducible builds)

Add this CompatHelper file to your .github/workflows directory: Example.jl/CompatHelper.yml at master · JuliaLang/Example.jl · GitHub

this will open a PR to your repo whenever there is a breaking change released in your dependencies.

You should test these PRs and merge them only if everything still works

Ideally you should also set up automated CI tests, to make sure that your project continues working as you update the SDK and make other changes.

finally, you’ll want to run Pkg.update() every once in a while and commit the changes (after testing) to keep up to date with patch releases of your dependencies

Does a guide already exist that covers these kinds of steps? It’s especially important to me to recommend that they include CompatHelper (and ideally CI.yml as well).

Also, I should say:
I looked at these two pages in the Manual, but I don’t feel that they sufficiently covered the “extra stuff” I mentioned above:

9. Glossary · Pkg.jl

10. Project.toml and Manifest.toml · Pkg.jl

13 posts - 7 participants