I'm hoping some of what I say here can be used to broaden the compatiblity of DeepLabCut for more users.
First. Thank you for this great piece of software.
I've been packaging DLC for conda-forge for a while and I've for many years dragged around a few patches. I'm hoping to share some of my knowledge with you so that you can better maintains DLC and selfishly, decrease my maintenance burden
Desired Outcomes
Mostly, I'm hoping to shed some of my patches so that it can be in better sync with you all. The full list can be found here https://github.com/conda-forge/deeplabcut-feedstock/tree/main/recipe/patches but the biggest ones I think will help are
PySide6 vs PyQt ....
1Moving from PySide6 to qtpy. This patch https://github.com/conda-forge/deeplabcut-feedstock/blob/main/recipe/patches/0005-Use-qtpy-instead-of-PySide6.patch mostly just searches from PySide61 and replaces it with qtpy. The main motivation behind this is that more complicated GUIs, such as napari or spyder, are sometimes only compatible with PyQt "5", which makes co-installations sometimes tricky. This can largely be avoided by just loosely depending on qtpy and improving documentation instructions.
On tensorflow
Unpinning tensorflow. Now this is a big one. The biggest issue is tf-slim for which I basically had to release an unreleased version from git 2023/11 https://github.com/conda-forge/tf-slim-feedstock/tree/main/recipe/patches conda-forge/tf-slim-feedstock#6
- On conda-forge, I've just released an unreleased version of tf-slim. Honestly, I waited 1 year to hear if anybody objected, but this isn't always possible or recommended.
- I suggest you all vendor this code (just copy paste the whole tf-slim project inside deeplabcut and import
deeplabcut.tf_slim instead of tf_slim, and allow users to update tensorflow. The biggest reason is that it will enable users to use the newer GPUs they have which require newer version of tf since those have newer cuda.
- I understand the whole tensorflow dropped windows thing. That may be more important to you than it is for me.
- Eventually this will allow you to use numpy 2 as well if you can get to tensorflow 2.18!
Anyway, I know the tensorflow stuff is a WIP but I figured I would share my 2 cents with you all since you have been quite receptive in the past. Hopefully the
I'm hoping some of what I say here can be used to broaden the compatiblity of DeepLabCut for more users.
First. Thank you for this great piece of software.
I've been packaging DLC for conda-forge for a while and I've for many years dragged around a few patches. I'm hoping to share some of my knowledge with you so that you can better maintains DLC and selfishly, decrease my maintenance burden
Desired Outcomes
Mostly, I'm hoping to shed some of my patches so that it can be in better sync with you all. The full list can be found here https://github.com/conda-forge/deeplabcut-feedstock/tree/main/recipe/patches but the biggest ones I think will help are
PySide6 vs PyQt ....
1Moving from PySide6 to
qtpy. This patch https://github.com/conda-forge/deeplabcut-feedstock/blob/main/recipe/patches/0005-Use-qtpy-instead-of-PySide6.patch mostly just searches fromPySide61and replaces it withqtpy. The main motivation behind this is that more complicated GUIs, such as napari or spyder, are sometimes only compatible with PyQt "5", which makes co-installations sometimes tricky. This can largely be avoided by just loosely depending on qtpy and improving documentation instructions.On tensorflow
Unpinning tensorflow. Now this is a big one. The biggest issue is tf-slim for which I basically had to release an unreleased version from git 2023/11 https://github.com/conda-forge/tf-slim-feedstock/tree/main/recipe/patches conda-forge/tf-slim-feedstock#6
deeplabcut.tf_sliminstead oftf_slim, and allow users to update tensorflow. The biggest reason is that it will enable users to use the newer GPUs they have which require newer version of tf since those have newer cuda.Anyway, I know the tensorflow stuff is a WIP but I figured I would share my 2 cents with you all since you have been quite receptive in the past. Hopefully the