Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

0.8 Release Plan #1566

Closed
5 tasks done
brichet opened this issue Apr 28, 2022 · 30 comments
Closed
5 tasks done

0.8 Release Plan #1566

brichet opened this issue Apr 28, 2022 · 30 comments

Comments

@brichet
Copy link
Contributor

brichet commented Apr 28, 2022

This is an issue for 0.8 release plan, to port nbgrader extensions to notebook 7

Classic notebook extensions system and notebook 7 extensions system (labextension) are not compatibles.
Consequently, the first step would be to move the current master branch to a 0.7.x branch (a branch which keep compatibility with Classic Notebook), and use the master branch for 0.8 release (compatible with Notebook 7 and Jupyterlab).

That 0.8 release would have the following steps :

@jtpio
Copy link
Member

jtpio commented Apr 29, 2022

Thanks @brichet for starting this!

move current master branch to 0.6.x branch

It would also be great to take the opportunity to rename the master branch to main. So it's consistent with most of the other Jupyter repos.

@jtpio
Copy link
Member

jtpio commented May 2, 2022

It looks like there is already a 0.7.0 milestone, with a couple of PRs merged in master: https://github.com/jupyter/nbgrader/milestone/23?closed=1

@BertR or anyone else recently active, do you know if there was a plan to make a 0.7.0 release with these changes?

If so, maybe we'll want to make the release before branching and continuing further work as mentioned in the comment above?

@jtpio
Copy link
Member

jtpio commented May 3, 2022

@BertR or anyone else recently active, do you know if there was a plan to make a 0.7.0 release with these changes?

cc @jhamrick who might also know about a previous 0.7.0 release plan.

@brichet
Copy link
Contributor Author

brichet commented May 3, 2022

Thanks @jtpio, I had not seen that 0.7.0 milestone.
If this is still planned, fixing nbconvert dependency could be there as it is an interesting feature for both notebook classic and jupyterlab/notebook 7.

@jhamrick
Copy link
Member

jhamrick commented May 5, 2022

IIRC, the main plan for 0.7.0 was to fix the breakage with nbconvert (which I started with #1421 but was unable to complete). I think doing effectively a maintenance release for 0.7.0 that fixes that breakage (and any others that might have popped up) would be fantastic, and then do a subsequent release that does the update for JupyterLab extensions could make sense---then there's one final release with up-to-date dependencies without JupyterLab, and a second release that does the migration to JupyterLab.

Thanks so much to everyone working on this, it's fantastic to see some progress towards this 😄

@jhamrick
Copy link
Member

jhamrick commented May 5, 2022

Actually looking into things a bit more, I am now reminded that there's been a lot of work for 0.7.0 and #1421 was basically the last blocking thing---so I would definitely recommend doing that fix, then releasing 0.7.0, then starting the new functionality for 0.8.0.

I'll update the labels for various PRs to make it clearer that everything merged so far should be for the 0.7.0 release...

@brichet
Copy link
Contributor Author

brichet commented May 5, 2022

@jhamrick #1567 was merged yesterday to fix the breakage with nbconvert. It should have start from #1421 but it seems that I didn't seen how advanced it was.
I guess this means we can release 0.7.0 and start 0.8.0 release for jupyterlab extensions.

@brichet brichet changed the title 0.7 Release Plan 0.8 Release Plan May 5, 2022
@brichet
Copy link
Contributor Author

brichet commented May 5, 2022

I renamed the issue to 0.8 release plan as the 0.7 already exists.

@jhamrick
Copy link
Member

jhamrick commented May 5, 2022

Fantastic, thanks! Yeah I initially missed #1567 too but really glad you were able to get it fixed. Exciting to see things moving forward 😄

@jhamrick
Copy link
Member

jhamrick commented May 5, 2022

I am not sure, but perhaps it is worth trying to resolve #1557 for 0.7 as well? Just wanted to flag it as I noticed it caused the tests to break as well.

@brichet
Copy link
Contributor Author

brichet commented May 5, 2022

The tests pass on my side with python 3.8 and 3.9, and jupyter-client==7.3.0.
Is it possible to redo these tests with the latest master version or do we need to open a PR ?

@jhamrick
Copy link
Member

jhamrick commented May 6, 2022

Ah that's great. We should be able to do it with dependabot commands.

@jtpio
Copy link
Member

jtpio commented May 6, 2022

So as a summary, how about the following?

  • merge Update jupyter-client requirement from <7 to <8 #1557 if ready
  • check if other PRs should go in 0.7.0
  • release 0.7.0 from master, or maybe a pre-release first
  • rename master to main
  • create the 0.7.x branch to continue making releases for the 0.7.x series
  • main targets 0.8.0 and we continue there for the JupyterLab related work

Maybe 0.7.0 can be released manually as before. And we switch to the releaser (#1570) for 0.8.0?

@jhamrick
Copy link
Member

jhamrick commented May 6, 2022

Sounds like a good plan to me!

@jhamrick
Copy link
Member

jhamrick commented May 6, 2022

I created #1573 to prepare the 0.7.0 release. I will try to actually make the release tomorrow, though I am not 100% sure I'll have the time. If not, feel free to go ahead and do the release in my absence @jtpio (basically after this PR is merged following all steps from https://nbgrader.readthedocs.io/en/stable/contributor_guide/releasing.html#clean-all-untracked-files onwards).

@jhamrick
Copy link
Member

jhamrick commented May 7, 2022

0.7.0 is released! I still have to do the conda package but otherwise you should be good to proceed with all the stuff for 0.8.0 😄

@jtpio
Copy link
Member

jtpio commented May 9, 2022

Nice, thanks @jhamrick!

@brichet
Copy link
Contributor Author

brichet commented Jun 23, 2022

@jhamrick @jtpio do you think there are missing features for a pre-release ?

@jtpio
Copy link
Member

jtpio commented Jun 23, 2022

A first 0.8.0a0 pre-release sounds good, so it can more easily be tested outside of the repo 👍

@jhamrick
Copy link
Member

Sure, sounds good to me. Perhaps it's also worth doing a release for 0.7.1 now too... I can do the 0.7.1 release and feel free to go ahead with the 0.8.0a0 pre-release.

@jtpio
Copy link
Member

jtpio commented Jun 23, 2022

go ahead with the 0.8.0a0 pre-release.

Looking into it with the Jupyter Releaser.

@jtpio
Copy link
Member

jtpio commented Jun 28, 2022

The first 0.8.0a0 is out! https://github.com/jupyter/nbgrader/releases/tag/v0.8.0a0

Try it with pip install --pre nbgrader.

@brichet
Copy link
Contributor Author

brichet commented Jun 28, 2022

Thanks @jtpio.
And the next one should be easier now !

@brichet
Copy link
Contributor Author

brichet commented Jun 28, 2022

It seems that the labextension published with the package kept the version 0.8.0.dev0, according to that error message (which also have to be adapted to labextension... #1616) :
The version of the Assignment List nbextension does not match the server extension; the nbextension version is 0.8.0.dev0 while the server version is 0.8.0a0

@jtpio
Copy link
Member

jtpio commented Jun 28, 2022

Ah thanks @brichet for catching this.

For reference here is the log of the Full Release run: https://github.com/jtpio/jupyter_releaser/runs/7090980402?check_suite_focus=true

A guess would be that it's because the extension was built during the setup step, which produced the static assets for the prebuilt extension. And later the extension build would be skipped because of the skip-if-exists option from jupyter-packaging.

For notebook we use this releaser hook to make sure to start from a clean state before building the Python wheel and sdist, which is probably related iirc:

https://github.com/jupyter/notebook/blob/b9bab689c9a2f33eb3b2cca1383c2d99baa7a2e8/package.json#L70-L72

@brichet
Copy link
Contributor Author

brichet commented Jun 28, 2022

There is already something similar in nbgrader which clean the lib and the nbgrader/labextension directories :

nbgrader/package.json

Lines 104 to 106 in 09e632b

"before-build-python": [
"jlpm clean:all"
]

@jtpio
Copy link
Member

jtpio commented Jun 28, 2022

Ah ok then maybe it's just because this hook defined in pyproject.toml was not triggered?

nbgrader/pyproject.toml

Lines 19 to 20 in 09e632b

[tool.jupyter-releaser.hooks]
after-bump-version = ["python tools/post-bump.py"]

If there is already some releaser configuration in package.json.

We should keep the configuration in one place only, for example pyproject.toml.

@brichet
Copy link
Contributor Author

brichet commented Jun 28, 2022

You're right, it's necessarily better to keep all the hooks in only one place.
I just opened #1617.

@jtpio jtpio pinned this issue Jul 4, 2022
@brichet
Copy link
Contributor Author

brichet commented Jul 6, 2022

Pre-release 0.8.0a2 is out, pip install --pre nbgrader to try it.

@brichet
Copy link
Contributor Author

brichet commented Jul 12, 2022

The release can also be tested on https://mybinder.org/v2/gh/jupyter/nbgrader.git/main
Thanks @jtpio for help.

@jupyter jupyter locked and limited conversation to collaborators Jul 13, 2022
@jhamrick jhamrick converted this issue into discussion #1634 Jul 13, 2022
@brichet brichet unpinned this issue Feb 15, 2024

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Projects
None yet
Development

No branches or pull requests

3 participants