Skip to content

Enable myst builds to be more reproducible #2586

@ryanlovett

Description

@ryanlovett

Proposal

When myst build runs, it pulls down various assets from the internet if they're not cached locally. Documentation mentions that the latest version of the template will be downloaded. Based upon build output in jupyter book docs referencing /refs/heads/main.zip, it sounds like themes also pull from the latest version. (if I knew the relationship between templates and themes, I've forgotten)

As a result, if someone builds a myst project several months apart and doesn't change anything, even pinning mystmd, they still might get different results based on what has changed upstream.

It'd be nice if there was an easy way for users to be aware of all of the upstream run-time dependencies, and also pin their versions somehow.

Additional notes

Perhaps one way is to fork the upstream theme and reference that in the project? Is there an easier way? (i.e. for users who develop their own myst sites but know less about the whole architecture of myst)

In this particular issue I'm focused on the myst machinery and less so on the execution environment. (#1265) Perhaps they can be addressed in the same way though.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions