jupyterlab-contrib / jupyterlab-topbar

JupyterLab Top Bar extensions
BSD 3-Clause "New" or "Revised" License
108 stars 17 forks source link

Bump top-level version on release #98

Closed jtpio closed 1 year ago

jtpio commented 1 year ago

Attempting to make a release after https://github.com/jupyterlab-contrib/jupyterlab-topbar/pull/95 specifying 1.0.0 as the version spec creates a v0.6.1 draft GitHub Release:

image

This is likely related to the version specified in the top-level package.json:

https://github.com/jupyterlab-contrib/jupyterlab-topbar/blob/fee0500eacf8961d1373a3f1ebf8e3fdaf07ee7b/package.json#L3

cc @mahendrapaipuri

mahendrapaipuri commented 1 year ago

Hmm! That is strange. I will check it. Cheers for creating the issue!

jtpio commented 1 year ago

Probably it's because the version is then read with the hatch version command, which picks up the version from the top-level package.json.

So maybe we can add the top-level path to python-packages here and that would to the bump automatically:

https://github.com/jupyterlab-contrib/jupyterlab-topbar/blob/fee0500eacf8961d1373a3f1ebf8e3fdaf07ee7b/pyproject.toml#L20-L24

mahendrapaipuri commented 1 year ago

That could be it. I will do some testing and put up a PR.

mahendrapaipuri commented 1 year ago

I think your suggestion should fix it. Actually, we did include top level package in jupyter-releaser packages. But, we removed it eventually as it will create an unnecessary artifact.

jtpio commented 1 year ago

Ah good catch. If it's not picked up by the releaser when publishing the packages then we could leave it since it should be private.

mahendrapaipuri commented 1 year ago

Do you think it will be ignored when publishing? I have tried to test it on my fork without luck.

jtpio commented 1 year ago

So it does create the wheel and source dist, which are likely going to be published to PyPI automatically:

image

So maybe we could use a releaser hook to remove them so they are not picked up.

mahendrapaipuri commented 1 year ago

Cheers for testing it. You mean using a hook after-build-python to remove the wheel and source dist of jupyterlab_topbar_extensions*?

I guess we can avoid this whole situation by removing pyproject.toml from top level, right?! If I remember well, we are using it just to pass the jupyter-releaser config. Maybe we can move the config to package.json. Do you think it is better solution?

jtpio commented 1 year ago

Yeah maybe there is a simpler way.

Maybe we can move the config to package.json. Do you think it is better solution?

Yes the releaser config can also be set in the top-level package.json. This would already simplify things.

One thing we need though is a way for the releaser to get the current version of the repo, so it shows up as the release title.

Another approach would be to do something similar to the Lumino repo and create a PR to bump versions, and then use the releaser to perform the release: https://github.com/jupyterlab/lumino. This would also allow for bumping packages independently.

mahendrapaipuri commented 1 year ago

Cheers for the pointer.

jupyter-releaser is also creating a top level empty npm package. I suppose we need to remove it as well?

Another approach would be to do something similar to the Lumino repo and create a PR to bump versions, and then use the releaser to perform the release: https://github.com/jupyterlab/lumino. This would also allow for bumping packages independently.

If I look into the jupyter-releaser config of Lumino repo, they are not skipping bump-version step in the release workflow.

But I see your point. So, we bump versions manually in a PR and then run jupyter-releaser workflows by skipping bump-version step. In that case the artifacts will still be generated for the packages that are not bumped and potentially overwrite the existing ones in the PyPI and NPM. Do you think it is not an issue? Or Am I missing something?

mahendrapaipuri commented 1 year ago

jupyter-releaser is also creating a top level empty npm package. I suppose we need to remove it as well?

Ignore this comment. This is not an issue as the top level package is marked as private and it does not generate dist file.