Skip to content

Conversation

remram44
Copy link
Member

@remram44 remram44 commented Sep 2, 2016

Need to think about what this means, but something can probably be done.

@remram44 remram44 added T-enhancement Type: En enhancement to existing code, or a new feature A-question Attention: There is an open question for which more input is requested labels Aug 10, 2015
@remram44 remram44 added this to the 0.x milestone Aug 10, 2015
@remram44
Copy link
Member Author

Current idea:

Run the kernel component of Jupyter (could be IPython, could be any other supported kernel) in a wrapper script that traces and then pack. Jupyter works as normal, but when you are done you get a RPZ file with Python, the kernel components, and all the libraries and data that are used in the notebook.

This should work with a wrapper script; we can provide a custom KernelSpecManager that would use that wrapper for each existing kernel.

Re-running a packed environment would need some trickery, since we need to change the connection file. A different wrapper is necessary to start the kernel via reprounzip.

Relevant: jupyter/jupyter_client#157 (Jupyter needs to leave time for ReproZip to finish packing once kernel is done)

@remram44 remram44 modified the milestones: 1.0.6, 1.x May 20, 2016
@remram44 remram44 modified the milestones: 1.1, 1.0.6 Jun 23, 2016
@remram44
Copy link
Member Author

remram44 commented Sep 2, 2016

New idea: trace/pack notebook file offline. Re-running still needs trickery, but the tracer can be written to place the connection file in a saner place? (it should probably still appear as an input file)

@remram44 remram44 changed the title Notebook integration/mode Jupyter notebook integration/mode Sep 7, 2016
@remram44
Copy link
Member Author

remram44 commented Sep 7, 2016

Question we discussed today: how to deal with the separate notebook+reprozip files?

  • Having to distribute both together is awkward
  • Putting a link in the notebook to the package is difficult because there needs to be a permanent URL and the user needs to put it in there (but it's the easiest to use)
  • Putting the notebook in the package is awkward; unpacker could show them but someone not using ReproZip wouldn't be able to look at them, and changing them means they still have to be distributed separately

@remram44 remram44 removed the A-question Attention: There is an open question for which more input is requested label Sep 13, 2016
@remram44
Copy link
Member Author

remram44 commented Jul 5, 2017

Working on the Jupyter extension to do this from the notebook UI. Goal for SciPy: one-click trace-and-pack, and save in the client side.

  • Trace & pack on server
  • Notebook extension
  • File tree extension

@remram44 remram44 force-pushed the jupyter branch 2 times, most recently from 9ce865e to 0edde47 Compare July 6, 2017 17:58
@remram44
Copy link
Member Author

remram44 commented Jul 7, 2017

Fixes:

  • From GUI, open notebook server in the right directory (that ipynb is in)
  • Add option to Kernel menu (with "...")
  • Handle notebook execution fail (user code failed)
  • Add box for config file/pack filename
  • Add button from the tree view too
  • Warn if cells are out of order before tracing?

@remram44 remram44 added the C-jupyter Component: The Jupyter notebook integration (reprozip-jupyter) label Jul 7, 2017
@remram44 remram44 merged commit 69ee903 into 1.0.x Jul 7, 2017
@remram44 remram44 deleted the jupyter branch July 7, 2017 21:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

C-jupyter Component: The Jupyter notebook integration (reprozip-jupyter) T-enhancement Type: En enhancement to existing code, or a new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant