Doing development on holoviews

Ok, I’m a noob on development in Python.
I have some python coding skills, but haven’t done any professional development.
I’d like to try solving some simple issues.

I can’t find a developer guide for holoviews, but there’s this one for hvplot:

And this one for panel:

And there’s this SO-answer:

And I can get some ideas from the pandas contribution page:

The first 2 options are slightly different, so what is the correct way? And the SO-answer is also different.

I already have git and I know how to setup a basic conda environment.

Which way is the best to set up a development environment?
If you have some extra tips, it would be much appreciated :slight_smile:

I guess there are at least as many ways to set up a development environment as there are developers, and probably more! You should be able to use any of the suggestions; they’ll just work slightly differently. E.g. some HoloViz developers prefer python develop, but I prefer pip install -e .; both mostly work similarly, but only the latter will shadow a conda-installed package, which I find very useful (as I can always update the conda-installed one to get the dependencies needed) while others find it confusing (as the conda-installed one is installed but ignored). So I’m not sure your question is answerable; there isn’t really a “best way”.

Maybe you might have a specific request here, though, which is to ask that the HoloViz developers get together and rationally decide on one specific approach to suggest (working out any differences in opinion between us) and then make sure that one way is visible from each project? I think that would be a reasonable request to make of us. :slight_smile:

1 Like

Thanks, James. Hope to find some time over X-mas to give it a real go :slight_smile:

There are various issues related to your question, e.g. to pick some recent ones:

There are probably more. And there have been some comments on gitter. Plus presumably more people suffering in silence.

I think we have generally prioritized the experience for “users”, i.e. people who just want to install and use packages, rather than the experience for developers.

Maybe you could find some examples of how other organizations do things for developers? It would need to be organizations that have multiple packages, need non-python dependencies, and so on. This is just a suggestion - please feel free to approach in any way you want. We’ll gladly accept contributions that appear reasonable, particularly if they can be maintained easily (e.g. are tested somehow on a CI system).