Skip to content

Manifest.toml files are outdated #495

Closed
@penelopeysm

Description

@penelopeysm

The Manifest.toml files on the master branch still point to 0.32.0 of Turing, which leads to e.g. this UndefVarError: https://turinglang.org/docs/tutorials/docs-12-using-turing-guide/#maximum-likelihood-and-maximum-a-posterior-estimates

[[deps.Turing]]
deps = ["ADTypes", "AbstractMCMC", "Accessors", "AdvancedHMC", "AdvancedMH", "AdvancedPS", "AdvancedVI", "BangBang", "Bijectors", "DataStructures", "Distributions", "DistributionsAD", "DocStringExtensions", "DynamicPPL", "EllipticalSliceSampling", "ForwardDiff", "Libtask", "LinearAlgebra", "LogDensityProblems", "LogDensityProblemsAD", "MCMCChains", "NamedArrays", "Printf", "Random", "Reexport", "Requires", "SciMLBase", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"]
git-tree-sha1 = "cfb3b446a5e52e1da4cc71b77a9350c309c581f0"
uuid = "fce5fe82-541a-59a6-adf8-730c64b5f9a0"
version = "0.32.0"

I notice that there used to be a weekly GitHub Action to update the manifests, which was removed as part of #441. So a quick fix would be to re-enable that workflow and run it.

However, I think a more robust solution for the long term would be to:

  1. Use a single environment for building all the docs, rather than one environment per notebook. I don't think there is any use case for having separate environments, and even if there were I think that it would not be the right thing to do — it would be very confusing to the user if the code on separate pages could not be run in the same environment.

  2. Pin the version of Turing with a [compat] block in the Project.toml file (on both the master and backport branches)

  3. In the main documentation workflow (using on: push), add a check to make sure that the version of Turing specified in Project.toml matches the version specified in _quarto.yml

  4. Gitignore the manifest, only regenerating it when building the docs. IMO it makes more sense to let Julia resolve to the latest compatible versions (e.g. in order to use the latest bugfix version of Turing; and after all, a user reading the docs and running the code is, in all likelihood, going to fetch the latest versions anyway instead of looking for the manifest in this repo). Also, this spares us this issue of having to update the manifest when a new version of Turing is released.

Overall, this proposal means that when a new version of Turing is launched, only three files (_quarto.yml, Project.toml, and Manifest.toml) need to be changed; and GitHub will tell you right away if you forget to change one of them. (Of course, the list of old versions will also need to be updated, but that is a separate matter, unrelated to this issue.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions