Skip to content

Allow to provide environment at notebook start #1788

@j-fu

Description

@j-fu

I think about something like Pluto.run(notebook=..., project=... ) . This would start the notebook with the environment provided under project instead of the notebook environment. A similar option to Pluto.SessionActions.open and corresponding methods of PlutoSliderServer.jl would be nice.

The main use case is the use of Pluto notebooks as package tutorials which at once are used in the documentation and in CI.

  • Disable PlutoPkg when working in the tree of a package under development. This allows to develop notebook and package in parallel and to take advantage of updates in the package via Revise.jl .
  • Eventually run the notebook during unit tests for a dev'ed package(though this could be achieved by running the notebook as a script)
  • Batch generation of html pages from Pluto notebooks using a not yet registered version of the package during documentation development and deployment.

Outside of these contexts, and without providing an environment, the notebook should run in "reproducible mode" using PlutoPkg with a fixed version of the package.
I find it important that switching between these two modes is possible without changes in the notebook
(like e.g. "markdowning" a cell with Pkg.activate.

In the moment I achieve this behavior in a quite hackish way.
The the initial proposal in #1281 seems to have a similar effect.

A slightly related discussion is found here. EDIT: May be @kellertuer is interested in this as well.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions