jupyenv icon indicating copy to clipboard operation
jupyenv copied to clipboard

What is the status of this project?

Open knl opened this issue 1 year ago • 9 comments

What's missing?

I'm looking for a solution to build my jupyter kernels. I like Nix as I can keep track of the changes and have a centralized place to describe dependencies.

After surveying options, I saw this project, but it does not seem maintained. The last commit is 8 months old, while PRs are not merged, not even ones coming from dependabot, let alone from individual contributors.

Thus, would like to know the status of the project, is it worth investing time in it?

Possible solution

No response

Alternatives

No response

Additional context

No response

knl avatar Jun 14 '24 08:06 knl

@MMesch As you are still at tweag, care to comment?

FlorianFranzen avatar Aug 06 '24 08:08 FlorianFranzen

Hi @FlorianFranzen , I don't work on this project anymore already for several years—in some sense it's unfortunate because I fully believe in the Jupyter + Nix approach and think much can be done here to simplify and improve lives of many users. I may get involved again in this project, or a similar one, in one way or another soon but it's unclear yet.

Until then, I'm tagging @aspiwack to get an update what the current status is.

MMesch avatar Aug 06 '24 12:08 MMesch

I think the project is pretty dormant at the moment, unfortunately. Some of the choices we've made in the latest iteration seem to have not panned out, and the project lost steam. However, let me, in turn, pass the ball to @balsoft who leads our Nix group, and can probably get you a fresher point of view.

aspiwack avatar Aug 07 '24 06:08 aspiwack

I've been busy with a lot of other things, and as such didn't pay any attention to this project. I apologize for that. I've now granted maintainer status to @GTrunSec. Hopefully, now jupyenv will get the development it deserves :)

balsoft avatar Aug 08 '24 04:08 balsoft

Just wanna add, the website is down.

ShalokShalom avatar Nov 25 '24 06:11 ShalokShalom

There was a merge yesterday for the first time in a long time. Perhaps it broke the website.

anpin avatar Nov 25 '24 08:11 anpin

@anpin Could you fix the problem with the website? I need time to think about how to rewrite the jupyenv. #559

GTrunSec avatar Nov 25 '24 10:11 GTrunSec

I will try now, but not sure if I'll have enough time to finish today.

Was banging my head for the last hour trying to fix ihaskel imports, this branch seems to work.

anpin avatar Nov 25 '24 11:11 anpin

I used to use this repo and was checking in on the status- but swapped a little over a year ago when I started using marimo (basically pluto.jl for python) for my PhD and just got hired to their team.

I wanted to open a discussion topic but didn't see the option on the repo. If anyone from tweag or contributors want to share with their experience developing this, I would love to hear about some of the issues you faced specifically. Reproducible environments should not be hard, and a little sad development has stopped on this project.

Mark this as off topic if it's seen as over the top self promotion

but I'll share my experience in a details block so it doesn't come off as an ad

Note juv is also a potential solution if you're looking for python sandboxing and jupyter. However, I feel like IPython is inherently the wrong environment


I don't think I need to emphasize reproducibility to nix users, but Jupyter makes it pretty hard carrying state around in an interactive session. Reproducibility for me went beyond just packages (which jupyenv does well) it got to a point where I was losing weeks of work because my notebooks were not deterministic and I did not have confidence in the my analysis. It's easy to say checkpoint to disk, and continually restart and run all but when you are interactively exploring a large dataset and restarting would cost hours- you have no guarantees of whether unexpected mutation has occurred in a notebook environment.

This isn't new, it's why lots of people hate notebooks.

but marimo makes it difficult to carry mutable state, it's reactive, has builtin checkpointing tied to working memory and execution path (I put this in and borrowed some ideas from Eelco's thesis), and native sandboxing with uv out of the box. I've used nix as a sandbox mechanism w/ shebang but it's hard to argue for dev time for a native integration when such a small share of users use Nix lol (and maybe a bit of the reason I'm writing here). It also runs natively in WASM

Other pros: Notebooks are serialized as python and can be run (or deployed as a script), there's a markdown serialization too. It's FOSS (Apache 2), there are apps, widgets, slides, blah, blah, blah - this isn't meant as a sales pitch you can look at our splash page for more features.

I more so wanted to highlight the pain points I felt with Jupyter, highlight some of the things we've tried to reimagine- and open up for discussion the issues Tweag and others have faced, when trying to utilize notebooks from a reproducibility first mindset.

There are some cons:

  • Some of the "correctness" constructs mean that marimo is very tied to the AST of python and it would be non-trivial to incorporate other languages. Great if python is your tool of choice, but may be less of a draw if you've gotten used to haskell in a repl etc. Though I personally believe in the power of FFI, pybind11, etc... as python becomes more of a defacto.
  • It's hard to unlearn Jupyter, or be willing to migrate. I'd equate it to migrating from Javascript to TypeScript. A little painful if you've been writing code a little loosely- but ultimately protections (like typing) are a good thing.
  • Your IPython widgets might not work out of the box- but we've adhered to AnyWidget standards, so you're not vendor locked if you did migrate widgets.

marimo is also on nixpkgs if you are interested (though normally lags a few versions on unstable)

If you want to share thoughts, open up a discussion in our repo (I'll find you 😄), or just email me (I also just relocated to SF if anyone wants to grab a coffee doesn't live in Europe) - I don't want to add more noise to the thread

dmadisetti avatar May 03 '25 06:05 dmadisetti