jupyter / nbgrader

A system for assigning and grading notebooks
https://nbgrader.readthedocs.io/
BSD 3-Clause "New" or "Revised" License
1.28k stars 317 forks source link

Port the notebook extensions to JupyterLab #1006

Closed fperez closed 2 years ago

fperez commented 6 years ago

This is so we can discuss whether this is the right path to follow for nbgrader, I'm not 100% sure yet but at least we can come to a decision here...

We're still using nbgrader at Cal quite a bit, and as I consider moving the students more to JupyterLab as their "daily driver", the absence of the student-facing extension for submitting notebooks is becoming a more relevant issue.

Curious what @jhamrick @ellisonbg think in this context - how realistic would it be to put some cycles into porting the extension? This is more of an nbgrader than a Lab issue, but it's turning out to be kind of a blocker to our use of Lab by default (which I really want to do :).

CC @jasongrout @ian-r-rose as per recent discussions on blockers and extensions...

davidbrochart commented 2 years ago

Great @eliaswimmer! Is is going to be a port of nbgrader, or something new?

eliaswimmer commented 2 years ago

It's nbgrader/nbconvert based and works well with Kubernetes. Autograding tasks can be spawned in Kubernetes pods. It's using git for managing the assignments, allows group exercises etc.

brichet commented 2 years ago

There are already several extensions working for JupyterLab from @Lawrence37 and @aalmanza1998 contribution in https://github.com/LibreTexts/nbgrader-to-jupyterlab/tree/lab-common. These extensions are able to query the existing server extensions, if we fix #1465. The formgrader extension remains to be done for now, but could be ported (for a first version) by integrating the existing one in a JupyterLab tab.

orboan commented 2 years ago

We are working on a new grader service for JupyterHub/Jupyterlab, I hope we will soon be able to publish it.

Any updates on this?

eliaswimmer commented 2 years ago

https://github.com/TU-Wien-dataLAB/Grader-Service This is still mainly untested, I hope we will be able to use our new service for the winter term. Testing and contribution welcome!

jhamrick commented 2 years ago

Hi all, as of #1588 JupyterLab is now officially supported! Please test it out, and if you run into any problems open some issues---the plan is to iterate a bit on main before releasing 0.8.0 which will be the official release supporting JupyterLab.

orboan commented 2 years ago

Congrats Jessica, very good news indeed. I am looking forward to test it in my school. Thanks for your hard work and to all contributors.

jhamrick commented 2 years ago

Don't thank me---all the hard work was done by @brichet, @fcollonval, @lxylxy123456, @Lawrence37, and @aalmanza1998 ! I just reviewed the PR 😉

orboan commented 2 years ago

Don't thank me---all the hard work was done by @brichet, @fcollonval, @lxylxy123456, @Lawrence37, and @aalmanza1998 ! I just reviewed the PR 😉

Thanks for the clarification !

Then lots of thanks and big congratulations to @brichet, @fcollonval, @lxylxy123456, @Lawrence37, and @aalmanza1998

Today is a happy day !!

fperez commented 2 years ago

Indeed, huge thanks to all the team who made this possible (@jhamrick very much included 😄) - it's fantastic to see key tools like nbgrader move forward to the JupyterLab-based infrastructure, which will bring us a number of benefits.

It would be great to have input once a release is made on how the real-world experience of regular users is, in case there are any rough edges that warrant attention; we want the transition to be a happy process for all involved!

hoffm386 commented 2 years ago

@jhamrick this is great news! Do you have a prediction of when the 0.8 release will be? We are starting on a project of updating our environments and would love to use JupyterLab if possible, but that will depend on the timing

spsuri commented 2 years ago

Hi all, as of #1588 JupyterLab is now officially supported! Please test it out, and if you run into any problems open some issues---the plan is to iterate a bit on main before releasing 0.8.0 which will be the official release supporting JupyterLab.

I have tried taking the pull from a commit but unable to integrate it. Can you guide on how to port nbgrader extension to jupyterlab

brichet commented 2 years ago

The simplest way may be to install it from the prerelease : pip install --pre nbgrader.

You should install it in a fresh environment, some dependencies are not compatible with the notebook version.

You can find some information about settings here... except for the installation command where the --pre argument is missing.

jhamrick commented 2 years ago

@hoffm386 as @brichet mentioned there is a pre-release out already, so you could consider using that! In terms of the full release, I'm not sure. I think once there's been "sufficient" testing we can convert it to a full release, but I am not sure if we're at that point yet, or if there's anything else pressing that needs to get done first. Perhaps @brichet and @jtpio could comment on the status?

brichet commented 2 years ago

We are currently working on making it compatible with the future versions of Jupyterlab (4) and Notebook (7). I don't know if we should wait for the release of these projects (and I don't know when it will be, maybe @jtpio knows more about it).

The two options I see are :

jhamrick commented 2 years ago

If it's unclear what the timeline is for jupyterlab 4 and notebook 7, releasing nbgrader 8 now seems like a good option to me. That'll also get a wider range of people starting to use the jupyterlab extensions allowing us to battle-test them more.

jtpio commented 2 years ago

The best estimate for now would be a JupyterLab 4.0 beta some time in September. Since it is based on JupyterLab, Notebook v7 will be updated a couple of days after each JupyterLab release. After that it'll probably be a couple of weeks more (at least 2 weeks beta, 2 weeks rc) before the final release.

If we're happy with the current state of main we could indeed proceed with the nbgrader 8 final release.

jasongrout commented 2 years ago

releasing nbgrader 8 as compatible with notebook < 7 and jupyterlab < 4, and start a version 9 for the compatibility with jupyterlab 4 and notebook 7.

From the peanut gallery: given that it may take people a while to migrate to jlab 4 even after it is released (for many probably not until next academic year?), and some may want to stay on notebook 6 for a while, I think it makes a lot of sense to release for jlab 3 and notebook 6 if possible.

jhamrick commented 2 years ago

I'm happy then to do the full release now, if you'd like to go ahead with it @brichet !

brichet commented 2 years ago

Version v0.8.0 is released : https://github.com/jupyter/nbgrader/releases/tag/v0.8.0.

rubdos commented 2 years ago

Version v0.8.0 is released : https://github.com/jupyter/nbgrader/releases/tag/v0.8.0.

Any chance we'll see this on conda? It currently still lists 0.7.1, and I'd like to test it thoroughly before the academic year starts :-D

jtpio commented 2 years ago

Any chance we'll see this on conda? It currently still lists 0.7.1, and I'd like to test it thoroughly before the academic year starts :-D

Looks like there is a draft PR to update to 0.8.0: https://github.com/conda-forge/nbgrader-feedstock/pull/56

brichet commented 2 years ago

Good new, nbgrader v0.8.1 is available on conda, thanks to @blink1073.