girder: Girder web core can't be built without access to Mongo

Our client side code can’t be built without access to a mongo database unless passing the --all-plugins flag or explicitly specifying the enabled plugins with --plugins=x,y,z. Sometimes it’s desirable to perform the web build with no additional plugins or access to a mongo database, a workaround is to run girder-install web --plugins=, and ignore the warning message.

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Comments: 19 (19 by maintainers)

Most upvoted comments

If the eventual goal is to decouple our packaging of javascript and python, would you even keep this entrypoint around?

We would probably still want it. Even if we a have pure “javascript way” of building, we still need to copy the built assets into the correct directory. Assuming the static files are stored somewhere in the python prefix, you would need python to tell you the correct place.

Requiring external services to be present for building is definitely unusual in the javascript world. I think a more sane default would be to build all plugins because the plugin bundles are all independent and won’t be served. It may be useful to provide an option to connect to an API server to determine build configuration, but I don’t see an immediate need for it.

My vote would be to do the following:

  1. default to building all plugins
  2. add a --no-plugins option
  3. add autodiscovery of dependent plugins when providing a list of plugins (--plugins item_tasks would enable worker and jobs automatically)
  4. consider adding something like -api-root for autoconfiguration in the future

1-3 would not require any external services. 4 would provide decoupling between the client and the database.

In general it would be my preference for building girder to rely on no external services. While it might not be operationally that different to rely on girder’s API instead of a running mongo database, it feels like its doubling down on a solution that i’m already unhappy with.