Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HoloViz Roadmap 2023 #366

Open
maximlt opened this issue Jun 13, 2023 · 8 comments
Open

HoloViz Roadmap 2023 #366

maximlt opened this issue Jun 13, 2023 · 8 comments

Comments

@maximlt
Copy link
Member

maximlt commented Jun 13, 2023

This issue is meant to be commented by the HoloViz contributors, maintainers and steering committee members.

In order to define the HoloViz roadmap for the next 6-12 months we would like to collect what would be your personal roadmap, i.e. what you think should be the most important goals for HoloViz and what you would like to work on?

Please insert only 1 comment (edit it later if you need to) before the 3rd of July 2023.

@jbednar
Copy link
Member

jbednar commented Jun 16, 2023

No matter which website or repo a user has landed on, guide them quickly and easily to the right tool for their job, i.e. the right library and the right API for that library.

For Datashader, I'd like to see very low friction between server-side rasterization and not. I.e., easily enabling it only for larger data, transparently converting HoloVIews line_width, color, and similar options to their Datashader equivalents. Choosing server-side vs. client-side rasterization should be an afterthought unless you need Datashader's deeper aggregation features.

@maximlt
Copy link
Member Author

maximlt commented Jun 27, 2023

  1. Put HoloViz more to the front: making it clear on each project website that they are part of HoloViz, linking more to holoviz.org, improving the holoviz.org story of what can be done with the intersection of the HoloViz packages (panel+hvplot/geo/holoviews+datashader(+bokeh)), improving the interoperability between the HoloViz packages (aka viz dashboards made easy).
  2. Following the work on Panel, keeping on improving the docs by completing Panel's work (API docs) and proceeding to hvPlot's overhaul
  3. On a personal level, I'd like to spend a lot more time maintaining hvPlot (which fits with 1. and 2.)

@droumis
Copy link
Member

droumis commented Jul 3, 2023

  1. Improve the structure of Panel's technical reference material (primarily the API reference and component gallery sections-#4305)
  2. Improve guidance on tool selection as part of the getting started experience on HoloViz.org (Improve guidance on tool selection as part of the getting started experience  #351)
  3. Reduce energy barriers to first-time contributions. For instance, improving/coordinating contributor guides or getting the complete docs build time down to seconds. IMO, dramatically prioritizing this point would benefit all aspects of HoloViz.
  4. Start applying the Panel docs format to hvPlot and HoloViews

@ianthomas23
Copy link
Member

Datashader:

  1. Complete the matrix of support for all Reduction classes and as many of the following as make sense: work on GPU, work using Dask, antialiasing, contained within a by reduction, contained within a where reduction. Ref https://datashader.org/api.html#reductions
  2. Simplify the Reduction code which currently has many very similar functions in append and combine functions. This should reduce the code complexity and the number of numba functions. May be able to cache the numba functions.
  3. Improve the documentation is line with recent changes to Panel, in particular by adding smaller How To Guides for specific tasks.

@hoxbro
Copy link
Member

hoxbro commented Jul 4, 2023

HoloViews:

  1. Code: Keep on improving the code. I would like to look at the code in-depth and make plans to remove some part that is not tested or is no longer used.
  2. Test: Update the test to use pytest with fixtures, not unittest.TestCase.
  3. Test: Support running the tests in random order so it is possible to parallelize the tests.
  4. Test: To improve or at least better understand how to change the plotting backend in the test suite. It could be related to the previous point.
  5. Type hints: Begin adding type hints to HoloViews.
  6. DEV: Update development infrastructure to use Hatch. I want to begin this transition as soon as possible.
  7. DEV: Look into CI's build, docs, and tests concerning the warnings emitted but often ignored.

So, in general, improvements behind the scene.

@ahuang11
Copy link

ahuang11 commented Aug 1, 2023

I want to make it super easy for users to get started using the HoloViz ecosystem and taking advantage of its advanced capabilities.

  • Panel chat components:
  1. Design + implementation
  2. Applicable examples
  3. Blog post
  • Panel cheat sheet
  1. Updating https://panel.holoviz.org/api/cheatsheet.html
  2. Example: https://docs.xarray.dev/en/stable/howdoi.html
  3. Example: https://matplotlib.org/cheatsheets/
  • Panel best practices (do this / don't do)
  1. Example: https://docs.dask.org/en/stable/best-practices.html
  2. Example: https://pydeas.readthedocs.io/en/latest/holoviz_interactions/tips_and_tricks.html
  • Panel landing page + video

  • Replit Template

  1. Similar to HuggingFace template, but simpler

@richlysakowski
Copy link

I have been following HoloViz and its component libraries for several years and was originally drawn back to use it, specifically because of the Panel Tabulator component.

I need a FREE OSS highly-functional, high-performance Python-interactive table widget for Pandas to replace QGrid. I liked Qgrid because it was highly functional, fast & big data scalable for 1M+ rows, preserved state after user interaction, was fully addressable as a Python object and many other features (sort columns, filters, groupby and many other Pandas). Qgrid code ran in Flask, Jupyter Notebook and Django and other Python full-stack web frameworks. QGrid was developed by Quantopian on top of SlickGrid. However, Quantopian ran out of money and closed down; eventually Quantopian followers gave up maintaining Qgrid. The R community has had HTMLtable for many years, offering high-quality, high-functionality table widgets "that just work".

Aggrid is a popular proprietary commercial alternative to Qgrid that is being heavily promoted by Streamlit (now a Snowflake property). Streamlit is freemium software. Aggrid is expensive (Starting at...$$$999 Per Developer). Aggrid is still not very mature v0. for the open-source version. Aggrid is a Javascript / Angular framework, very functional. Many features have not been surfaced to Python. The most important Aggrid features (row selection, groupby, and others) are locked to monthly or enterprise subscriptions. The Streamlit community promotes Aggrid heavily through YouTube demos.

You can see more about the JavaScript hacks required to add free functionality to aggrid here: Streamlit Ag-Grid
"Since AgGrid is a JavaScript-based grid, the background properties of columns or cells can be changed by adding JavaScript code to the Python code. I am adding the JsCode library to be able to use JS code in the Grid."

If Panel Tabulator offers a FOSS full-function alternative to Aggrid, it will lead to much greater adoption of the rest of Holoviz.

My vote is to focus on enhancing Tabulator to be a good strong FREE alternative ("competitor") to aggrid, and get fully functional as a simple-to-use component in Jupyter Notebook, Flask, Django and other tools.

With demos like PyGWalker from Kanaries. PyGWalker is pretty cool. Tabulator with other Holoviz widgets could equal or surpass PyGWalker.

I am willing to help with applications of Tabulator, but we have to get it wrapped into a Streamlit component to jump on the Streamlit bandwagon. I found a Chinese port of Streamlit Component wrapper for Tabulator but it does not work completely. I will post a link to it as soon as I re-find it.

@MarcSkovMadsen
Copy link
Collaborator

MarcSkovMadsen commented Dec 9, 2023

For me the most important is removing the friction of getting started with Panel, hvPlot, param, HoloViews, ... in that order.

It is primarily about improving

  • Documentation
  • Fixing bugs
  • Support on Discourse and Discord
  • Communication on social media.
  • Styling and Layouts
  • Speed/ Performance

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants