What is the status of this project?
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
@MMesch As you are still at tweag, care to comment?
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.
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.
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 :)
Just wanna add, the website is down.
There was a merge yesterday for the first time in a long time. Perhaps it broke the website.
@anpin Could you fix the problem with the website? I need time to think about how to rewrite the jupyenv. #559
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.
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