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

Added builton field #53

Merged
merged 2 commits into from
Mar 5, 2020
Merged

Added builton field #53

merged 2 commits into from
Mar 5, 2020

Conversation

jbednar
Copy link
Member

@jbednar jbednar commented Dec 16, 2019

First step to addressing part of #7 , which is to declare which libraries are built on other libraries. Added a "builton" field in the .yml, filling it out for nearly all the libraries. The current values include 20 libraries built on matplotlib, 7 on bokeh, etc.:

  • 20 matplotlib
  •   7 bokeh
  •   6 plotly
  •   5 opengl
  •   4 vtk
  •   2 webgl
  •   2 vega
  •   2 leaflet

Issues:

  1. For now, I counted bokeh, matplotlib, plotly, and vtk as building on themselves, but of course that's up for discussion.
  2. Are there any other technologies we should list? My goals here are to (a) help people find the most suitable API for the tool they want to use, (b) understand how the various tools fit together, and (c) get a feeling for the capabilities of each library (e.g. 3D support, browser-based interactivity, etc.). Unfortunately, (c) is a slippery slope -- there are so many things that might be shown (SVG support, Canvas vs WebGL, PNG output, etc.), so I've focused on goals (a) and (b) here. Just listing any tiny fraction of what matplotlib is based on would be daunting!
  3. Of course, declaring this information is only the first step; it also needs to be shown in the actual rendered site. I was imagining using a compact logo for each one like image, displayed just as for the Sponsor field. But once there are lots of logos they may not be as recognizable and distinguishable as matplotlib/bokeh/plotly are, which is another reason to limit the number of technologies to list. Note that each library may be built on many technologies; so far the maximum is 3 in the current declarations.

@jbednar
Copy link
Member Author

jbednar commented Dec 16, 2019

  1. Another issue: Jupyter and ipywidgets. Several of the libraries build on ipywidgets, and others support Jupyter without using ipywidgets (bokeh, holoviews, and panel, at least, plus maybe matplotlib). Not sure if it's possible to convey something useful about such support concisely.

@tacaswell
Copy link
Collaborator

👍 I really like this idea.

For the next layer down, I would put is "embeddedable" or "widget technology" with things like {Qt, Wx, Tk, Gtk, OSX, react, vue, classic-notebook, jupyter-widgets, html-self-contained, html-with-a-kernel, ...} to let people know "I am already using technology X for a UI, which plotting tools will seamlessly mix in?".

An entry for "output format" with things like {png, ps, pdf, svg, html}.

Using "builton" you can inherit this as well?

@jbednar
Copy link
Member Author

jbednar commented Dec 16, 2019

Yes, "UI technology" and "Output formats" would also be great to list. Matplotlib is presumably the worst case in both categories, with at least 5 UI technologies and 6 output formats. It's difficult to cram that many things into a single-line table, but it's probably ok if only the core libraries have that sort of jumbled formatting.

@jsignell
Copy link
Member

Sorry for the extremely late response, but I like this idea a lot. I do think that we need to be careful about how much into we try to cram into a table though :) If we add more than a builton column we'll need to get rid of an existing column to make space.

tools/tools.yml Outdated Show resolved Hide resolved
Copy link
Member

@jsignell jsignell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

tools/tools.yml Outdated Show resolved Hide resolved
@jbednar
Copy link
Member Author

jbednar commented Mar 5, 2020

I'll go ahead and merge this now so that the .yml file won't drift out of sync with master, but for these values to take effect we'll need changes to the build scripts. I don't currently have any volunteers ready to attack that. It doesn't seem too difficult, by just copying the current support for sponsors:

  • Create a set of tiny logos (same height as e.g. doc/_static/badges/numfocus.png) for each builton target and put them in doc/_static/badges/
  • Copy tools/sponsors.yml to builton.yml and replace the "label" with the builton target, the url with the appropriate target's url, and the logo with the path to that target's badge
  • Adapt tools/build.py to have similar support for builton as for sponsors
  • Copy and adapt the sponsors support in tools/template.html, renaming as needed for builton
  • Test by putting "[build:website_dev]" into a commit message in a PR and examining https://pyviz-dev.github.io/website/ once the build completes
  • Once it works, build on the main website by merging the PR and putting "[build:website_release]" into a commit message

@jbednar jbednar merged commit 098fea5 into master Mar 5, 2020
@jbednar jbednar deleted the builton branch March 5, 2020 14:42
@maximlt
Copy link
Collaborator

maximlt commented Oct 23, 2021

@jbednar this is now deployed (https://pyviz.org/tools.html)

@jbednar
Copy link
Member Author

jbednar commented Oct 24, 2021

Wow, that looks great! Thanks for hitting that home!

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

Successfully merging this pull request may close these issues.

5 participants