napari-clusters-plotter icon indicating copy to clipboard operation
napari-clusters-plotter copied to clipboard

New release 0.8.0

Open zoccoler opened this issue 1 year ago • 21 comments
trafficstars

Hi all,

I was wondering if we could make a new plugin release before implementing larger changes like other layer types and plotter re-designs.

I created the milestone 0.7.4 and assigned it to a couple PRs whose changes are minimal and here.

Anything major we need to test before releasing it?

Best, Marcelo

zoccoler avatar Dec 06 '23 16:12 zoccoler

By the way, is other layer types support already in main?

zoccoler avatar Dec 06 '23 16:12 zoccoler

Also, at the momemt only Laura, Ryan and I can deploy releases to pypi and conda. Would it be ok for you if I add you there @zoccoler ?

haesleinhuepf avatar Dec 07 '23 07:12 haesleinhuepf

That would be a good idea! Both the release and adding @zoccoler !

Cryaaa avatar Dec 07 '23 08:12 Cryaaa

By the way, is other layer types support already in main?

Yep that change is already in main!

Cryaaa avatar Dec 08 '23 09:12 Cryaaa

Really looking forward to a new release to have PR #283 and #282 in place :-)

thorstenwagner avatar Dec 13 '23 08:12 thorstenwagner

Looks like this is the only open issue left for the 0.7.4 milestone. Release it?

thorstenwagner avatar Jan 15 '24 12:01 thorstenwagner

Sounds good! One problem I have though is that I wasn't involved in the last releases so I don't know the full extent of what has to be done for example for the conda release (and it has been quite some time that I did the pypi release too...) Can someone maybe remind me what needs to be done (@haesleinhuepf , @zoccoler , @jo-mueller or maybe @lazigu )?

Cryaaa avatar Jan 15 '24 12:01 Cryaaa

The old procedure doesn't work anymore. Pypi is now forcing us to use API tokens. This page might be an entry point).

Before releasing 0.7.4, please make sure all changes (in particular to the API) are backwards compatible. If this is not the case, consider releasing 0.8.0 instead. See also: semantic versioning.

haesleinhuepf avatar Jan 15 '24 15:01 haesleinhuepf

Also before releasing a new version, would someone volunteer for testing the current version carefully? I just found #295 is making usage more complicated compared to 0.7.3 . It would be great if the user-convenience does not suffer from introducing new features. ;-)

haesleinhuepf avatar Jan 15 '24 15:01 haesleinhuepf

I would also like to see #298 merged before release, because its very annoying in my use case :-)

thorstenwagner avatar Jan 18 '24 15:01 thorstenwagner

As for the PyPi issue - whose PyPi account is currently used for the release? Setting up the API tokens for automatic push and release through PyPi is not difficult, but the owner of the package on PyPi has to generate one. According to the PyPi page, @Cryaaa @haesleinhuepf and @lazigu are owners 🤔

If conda has been set up once, the release of a new version through PyPi should trigger the conda feedstock to be built automatically.

jo-mueller avatar Jan 18 '24 17:01 jo-mueller

Setting up the API tokens for automatic push and release through PyPi is not difficult,

I suggest setting up a github issue for this so that we don't forget to do this. Also if you say it's easy, can you share a link to a page where it's explained how to do this?

haesleinhuepf avatar Jan 18 '24 18:01 haesleinhuepf

@haesleinhuepf The cookiecutter template for napari-plugins essentially already has it. The relevant part is this bit in the test_and_deploy.yaml in the workflows folder:

  deploy:
    # this will run when you have tagged a commit, starting with "v*"
    # and requires that you have put your twine API key in your
    # github secrets (see readme for details)
    needs: [test]
    runs-on: ubuntu-latest
    if: contains(github.ref, 'tags')
    steps:
      - uses: actions/checkout@v2
      - name: Set up Python
        uses: actions/setup-python@v2
        with:
          python-version: "3.x"
      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          pip install -U setuptools setuptools_scm wheel twine build
      - name: Build and publish
        env:
          TWINE_USERNAME: __token__
          TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
        run: |
          git tag
          python -m build .
          twine upload dist/*

Once that is set up, there only needs to be a valid API token with the name PYPI_API_TOKEN in the secrets of the repository that is to be published. Doing a release on github then automatically runs the deployment to github.

Edit: See also newly created issue #299

jo-mueller avatar Jan 18 '24 23:01 jo-mueller

Also before releasing a new version, would someone volunteer for testing the current version carefully?

I can definitely test some features with 3D, 2D and 2D timelapse data. Unfortunately I don't have a good example for tracking data availible anymore (I think @stefanhahmann had some testing data and I would be grateful if you could direct me to it!). Also possibly @thorstenwagner could test the functionality for many datapoints (and most likely already has tested it already).

Once that is set up, there only needs to be a valid API token with the name PYPI_API_TOKEN in the secrets of the repository that is to be published. Doing a release on github then automatically runs the deployment to github.

I will check my access to the pypi repository and will go through the tutorials to implement this in the next few days and then we should be mostly ready!

Cryaaa avatar Jan 19 '24 08:01 Cryaaa

I'm using master branch + fix #298 on a daily basis. So far its running smoothly. Will pull again today and work with the most recent master today.

thorstenwagner avatar Jan 19 '24 08:01 thorstenwagner

Unfortunately I don't have a good example for tracking data availible anymore (I think @stefanhahmann had some testing data and I would be grateful if you could direct me to it!).

I create a PR for such a dataset. It would add 7MB to the repo. I also successfully tested with this dataset the functionality of the clusters plotter for tracking data layers.

stefanhahmann avatar Jan 19 '24 14:01 stefanhahmann

What is missing that this can be released? Anything I can do?

thorstenwagner avatar Feb 23 '24 14:02 thorstenwagner

What is missing that this can be released? Anything I can do?

Sorry about that, I still need to do a thorough testing of all of the functions and we need to document some of the changes like the different layer types. I was quite busy with other projects and holidays up until now but will try to do the testing asap. If you could check if any documentation needs to be prepared for the histogram functions that could help!

Cryaaa avatar Feb 23 '24 14:02 Cryaaa

Hi everybody! If I understood correctly, for this to be closed, we need:

  • manual testing of functionalities
  • documentation about other layer types usage
  • check what is not backwards compatible (then maybe call it 0.8.0 as mentioned on #303)

Is that it?

Could you help me with a list here of the new features? I can start testing them

zoccoler avatar Mar 26 '24 14:03 zoccoler

Exactly! I have already testing some of the points and surface layer features but it might be good to test on a few machines:

  • We need to test if all previous use cases still work: 2D, 3D, timelapse and tracking data with the labels layer
  • We need to test surfaces and points layer: 3D (and 2D for points maybe)

Generally I usually tested everything available so: dimension reduction, clustering and plotting with the various plot types but maybe I am missing something?

Cryaaa avatar Mar 26 '24 14:03 Cryaaa

I renamed this issue to match the next release version.

I think we have tests for all those cases now, but I did not try manually clustering and dimensionality reduction algorithms on those.

zoccoler avatar May 08 '24 06:05 zoccoler

Hey @zoccoler, Thanks for taking care of this release but we still have a remaining issue that needs to be fixed in napari-skimage-regionprops. I just tested this main branch and we still have the problem that the show table function just deletes any information present in the feature layer of surfaces.

This means every time you do dimension reduction or clustering, you are deleting the features. I really think that this needs to be addressed to make this release functional. Also we should add the dependancy that this version needs the updated napari-skimage-regionprops library...

@haesleinhuepf could you please take a look at the pull request so that we can fix this issue? Otherwise I'm super happy about the release and thank you for all of your efforts!

Cryaaa avatar Jun 12 '24 14:06 Cryaaa

This means every time you do dimension reduction or clustering, you are deleting the features. I really think that this needs to be addressed to make this release functional. Also we should add the dependancy that this version needs the updated napari-skimage-regionprops library...

Hey Ryan @Cryaaa ,

I saw this problem earlier. The main problem is that somewhere in regionprops or here, layer.properties = {} is done - which prevents the get_layer_tabular_data to properly load the features. I changed this on the side of the clusters plotter in PR #319 so that the plotter itself will preferably load features from layer.features rather than layer.properties. The same fix would have to be implemented on the side of napari regionprops, but tbh, I feel like this is outside the scope of this release.

Edit: That being said, I would close this issue if nobody objects?

jo-mueller avatar Jun 12 '24 14:06 jo-mueller

Hey @jo-mueller, I see now, so the bug is now basically relegated to the skimage-regionprops side, I just got confused because in the table there obviously aren't any entries now. Thanks for this simple workaround and thank you for taking care of the fix!

Cryaaa avatar Jun 12 '24 14:06 Cryaaa