jupyterlab-contrib / jupyterlab-vim

Vim notebook cell bindings for JupyterLab
https://jupyterlab-contrib.github.io/jupyterlab-vim.html
MIT License
661 stars 43 forks source link

New versioning system? #88

Closed ianhi closed 9 months ago

ianhi commented 11 months ago

Would it make any sense to match out versioning to jupyterlab. i.e. a release supporting jupyterlab 4 would have version 4.x

I'm not sure if there's any value in continuing to use minor numbers only. The only major feature that I think is now missing is the ability to also use vim in the document editor. Perhaps after a PR adding that we should bump to a major version.

Thoughts?

firai commented 11 months ago

If #85 is backwards incompatible with JL 3.x, which I assume it is, I would propose using a new major version number for this release, even without file editor vim mode support. I think it's not uncommon to pin by major version numbers, i.e., <1, however unwise this may be. You could use a beta version number if you don't want to use a full major version number without file editor support.

This extension probably could have been 1.0 a long time ago. If it feels weird to make adding support of JL 4 the "1.0" release, then skipping some numbers and matching the major version number of JL that is being supported makes sense as you said.

krassowski commented 11 months ago

No strong opinions on matching lab version or not, but definitely +1 for graduating to 1.0+

ianhi commented 11 months ago

Ok. After the merge of #90 and #92 I will jump as to at least 1.0 possibly, 4.0 tbd

working on the fileeditor as well feels necessary to be a complete (1.0 level) extension

ianhi commented 11 months ago

Going to 4.0:

pros

cons


I lean towards going to 4.0 for user clarity in installation which I think is important.

fcollonval commented 11 months ago

@ianhi it seems that version from 0.17.0 are broken:

image

The reason is that the JavaScript assets are now only package once in the share folder and no more in the python package. So trying to read the package.json file fails. Should those versions be yanked on pypi?

fcollonval commented 11 months ago

I opened #99 to fix it.

krassowski commented 11 months ago

It's only source installs which are broken and wheels work fine, right? If so - probably no need to yank.

I wonder why is there this issue with packaging. The package followed the template and all release tests passed. Should we add more release tests on source builds?

krassowski commented 11 months ago

Ah, I see init was not updated. Thanks!

ianhi commented 11 months ago

It's only source installs which are broken and wheels work fine, right? If so - probably no need to yank.

Can confirm that the released wheels are functional. I made sure to test them before releasing. It seems as though issue only occurs when you try to import the python package.

Should we add more release tests on source builds?

It would definitely be good to do that, as our only test is importting the python package, which can fail even when the extension is working :/

fcollonval commented 11 months ago

Ja this is indeed actually the weird case of a pure frontend extension the method _jupyter_labextension_paths is actually not used; frontend code are loaded if found in the labextension folder - not introspecting the Python package for metadata. So indeed the error was not seen previously and the wheels works.

We only test for import in conda-forge recipe at https://github.com/conda-forge/jupyterlab_vim-feedstock/blob/0b5e6d848fe044d863b2f476839d5362ea27c019/recipe/meta.yaml#L29

fcollonval commented 11 months ago

I added a patch to apply #99 on the conda-forge recipe. So I can publish: 0.17.0, 4.0.0 and 4.0.1.

Sharing the info for awareness. For the next version, we will need to remove the patch :wink:

firai commented 9 months ago

I understand that both versioning and the __init__.py issue have been resolved.

krassowski commented 8 months ago

I am releasing 4.1.0 with the intent of bumping minor version being that downgrading from this release back to 4.0.x could break settings for users.

Also, I would argue that there is a public API which is:

firai commented 8 months ago

I've been loosely following https://github.com/jupyterlab/jupyterlab/pull/14115, which I understand will be going into JL 4.1. Is that going to require us to rewire a number of shortcut selectors? Do we need a pin on JL <4.1?

krassowski commented 8 months ago

That's a good question. I hope not, and we should probably test this extension with the next alpha release of JupyterLab after the PR you linked is merged. If there are any breakages for extensions JupyterLab should aim to mitigate them before final release of JupyterLab 4.1.