How to load development girder plugins using latest girder docker image

Hello, I had been using girder docker image version 3.1.5 successfully with a girder plugin to provide additional API endpoints. Since the plugin development is still ongoing, I did not package it to make it installable from pip as a package, but instead make the plugin installed from code generated using cookie cutter template similar to how those plugins are installed from requirements-dev.txt in the girder code repo. This had been running well for us until yesterday when girder build command raised dependency related errors. Then I found a new girder docker image released yesterday as well when the old docker image did not work for us, so I tried to migrate the plugin to the new girder docker image. I managed to have the plugin built successfully, but the plugin does not load. In fact, I don’t see the plugin from the girder admin console so that I cannot really activate it. I tried to build other plugins included from the girder repo and experienced the same behavior, i.e., plugins built successfully but don’t show up in the girder admin console. Can someone shed some light on what I can do to get these plugins loaded in girder? I thought running “girder build” command was sufficient, but looks like it is not sufficient any more with the latest girder docker image. Thanks for any help in advance!

The docker image published under the 3.1.16 tag has the latest version of pip in it. It is based on Ubuntu, which uses a patched version of distutils. As of some version of setuptools, the Ubuntu patched distutils doesn’t install editable packages properly. This is a known bug in Ubuntu’s distutils. We’ve added an override to the docker, so the latest should work as expected again. See Fix an issue with ubuntu, distutils, and pip by manthey · Pull Request #3437 · girder/girder · GitHub. Ideally, we’d change the docker to create a virtualenv inside it and then install in that, but that changes some of the functional paths in the docker which might affect other users.

  • David

Thanks for the quick fix and explanations about the issue, David. I have incorporated your fix and can confirm our development plugin can be installed via pip install -e and loaded in girder successfully now. Thanks again for your prompt attention to this.