Skip to content

HoloViz Project Categorization & Policy Proposal Outline #432

Description

@droumis

HoloViz Project Categorization & Policy Proposal Outline


UPDATE: See this comment


Purpose

To establish a clear, structured framework for categorizing HoloViz repositories and projects that:

  1. Defines the relationship between different types of projects in the ecosystem
  2. Sets expectations for maintenance, support, and quality standards
  3. Creates paths for project progression and community involvement
  4. Clarifies governance and decision-making processes across project categories

Proposed Project Categories

1. Core Projects (User-Facing Foundations, Highest Quality, HoloViz Team Led)

HoloViz Category: Core
User-facing projects that are essential to the HoloViz ecosystem, domain-agnostic where possible, well-established, following a regular release cadence, and primarily maintained by the HoloViz team. Users should be able to depend on these packages for production use. Core projects require dedicated and comprehensive documentation and must maintain cross-compatibility with all other core projects in clearly defined ways. These projects come with a guarantee of maintenance by the HoloViz team. Core projects may include repositories for user-facing artifacts directly associated with other Core Projects, such as the HoloViz.org website.

Core status can be based on at least one of the following:

  • Technical Maturity: Demonstrated stability, code quality, and robustness through multiple release cycles
  • Community Adoption: Widespread usage and a significant user base
  • Strategic Ecosystem Role: Serves as a primary entry point for specific user workflows or domains (e.g., Lumen for LLMs)
  • Production Deployment: History of successful enterprise implementations

2. Extension Projects (User-Facing Enhancements, HoloViz Team Supported)

HoloViz Category: Extension
User-Facing projects that enhance the HoloViz ecosystem by adding functionality, integration, or demonstration capabilities beyond the scope of Core Projects. These projects come with a guarantee of maintenance by the HoloViz team. Extensions can be:

  • Installable code libraries that complement Core Projects
  • Collections of educational resources for specific HoloViz use cases
  • Integration tools that connect HoloViz with other ecosystems

Extensions should maintain compatibility with their Core Project dependencies by:

  • Setting minimum version pins on Core dependencies
  • Testing against both minimum supported and latest Core versions
  • Documenting version constraints when incompatibilities arise

Where applicable, Extensions follow the release cadence of their Core Project dependencies. They require appropriate documentation (comprehensive sites for libraries, detailed READMEs or sites for examples and resources).

Extensions can be led by community contributors but must involve at least one primary HoloViz team member for continuity and coordination. If an Extension loses its HoloViz team member, the Steering Committee has until either the next committee meeting or 3 months (whichever comes first) to appoint a replacement. Without a replacement, the Extension automatically transitions to Incubator status.

3. Developer Projects (Internal-Facing)

HoloViz Category: Developer
Projects that are not user-facing but are essential to the HoloViz ecosystem and primarily maintained by the HoloViz team. These packages are intended for use exclusively by HoloViz developers rather than end users. A Developer project may include meta-level repositories that are not intended to be user-facing, such as for project management.

4. Incubator Projects (Immature, No Guarantees)

HoloViz Category: Incubator
Experimental or early-stage projects that require further development before being classified as Extensions or Core Projects. Incubator projects are expected to eventually progress to Extension, Core, or Archive status. These projects come with no guarantee of maintenance by the HoloViz team.

5. Community Projects (No Guarantees, HoloViz team may not be involved)

HoloViz Category: Community
Projects created and maintained by the community that utilize HoloViz tools but operate on independent development cycles. Community projects benefit from visibility within a HoloViz-associated GitHub organization but are not expected to progress toward Core or Extension status. These projects come with no guarantee of maintenance by the HoloViz team.

6. Archive Projects (Use is not recommended)

HoloViz Category: Archive
Projects that are no longer actively maintained but are preserved for historical or reference purposes.

Project Category Standards

This table outlines the proposed standards and expectations for each project category (the first column is the criteria, the first row is the project types):

Core Extension Developer Incubator Community Archive
GitHub Org holoviz holoviz, panel-extensions, holoviz-topics holoviz, holoviz-dev holoviz-topics? holoviz-incubator(new)? holoviz-community holoviz-archive (new)?
Governance Org and Project governance with Maintainers + Project Director Org and Project governance with Maintainers + Project Director Project-specific Flexible Independent None
Testing Standardized CI Adapted CI ?? Encouraged Independent None
Documentation Full docs site Full docs site Encouraged At least a good README Independent None or with archived warning
Release Cycle Regular, coordinated Flexible, follows parent Core releases Flexible As needed Independent None
Support Level High priority Moderate, team-backed with community involvement None Best effort Self-supported None
Compatibility Maximally compatible with other Core projects Ensured with parent Core projects As needed Not guaranteed Not guaranteed Not guaranteed
Quality Standards High Moderate to High Moderate Varies Independent N/A
Designation Requires Super majority of Steering Committee Simple Majority of Steering Committee Single maintainer of a Core project Single maintainer of a Core project Single maintainer of a Core project Simple majority of Project's maintainer team or Steering Committee

Project Progression Paths

Incubator → Extension

  • Requirements:
    • Demonstrated stable API
    • Sufficient test coverage
    • Basic documentation site
    • Active maintenance
    • Simple majority of Steering Committee

Incubator/Extension → Core

  • Requirements:
    • Widespread adoption
    • Critical functionality
    • Comprehensive test suite
    • Complete documentation
    • Consistent maintenance
    • Super-majority approval by Steering Committee (>60% vote)

Any → Archive

  • Triggers:
    • Inactivity for >X?? months
    • Superseded by another project
    • Request by maintainers
    • Simple majority of Project's maintainer team or Steering Committee

Extension → Incubator

  • Triggers:
    • HoloViz maintainer support is lost and no replacement is appointed within 3 months.

Governance Implications

Steering Committee

  • Approves promotion/demotion of projects for Core/Extension categories
  • Resolves disputes between Project Teams

Project Teams

  • Extension Project Teams require oversight from a Core maintainer
  • Incubator Project Teams have flexible structure but need a designated lead

Implementation Plan

  1. Document project categories in HoloViz governance
  2. Categorize existing projects according to new framework
  3. Establish necessary GitHub organizations (if not already existing) and transfer projects accordingly (Alternatively we could just add category labels to repos and leave them as is)
  4. Update documentation to reflect new structure

Document Location

This resulting policy should peobably be added to the HoloViz governance documents in the main holoviz repository, potentially as a new file called PROJECT-CATEGORIES.md that would be referenced from the main CHARTER.md document.

HoloViz Repositories with Suggested Categories

Category name organization description url
Core panel holoviz Panel: The powerful data exploration & web app framework for Python https://github.com/holoviz/panel
Core datashader holoviz Quickly and accurately render even the largest data. https://github.com/holoviz/datashader
Core holoviews holoviz With Holoviews, your data visualizes itself. https://github.com/holoviz/holoviews
Core hvplot holoviz A high-level plotting API for pandas, dask, xarray, and networkx built on HoloViews https://github.com/holoviz/hvplot
Core holoviz holoviz High-level tools to simplify visualization in Python. https://github.com/holoviz/holoviz
Core colorcet holoviz A set of useful perceptually uniform colormaps for plotting scientific data https://github.com/holoviz/colorcet
Core param holoviz Param: Make your Python code clearer and more reliable by declaring Parameters https://github.com/holoviz/param
Core lumen holoviz Illuminate your data. https://github.com/holoviz/lumen
Core geoviews holoviz Simple, concise geographical visualization in Python https://github.com/holoviz/geoviews
Extension examples holoviz-topics Visualization-focused examples using HoloViz for specific topics https://github.com/holoviz-topics/examples
Extension panel-chat-examples holoviz-topics Examples of Chat Bots using Panels chat features: Traditional, LLMs, AI Agents, LangChain, OpenAI etc https://github.com/holoviz-topics/panel-chat-examples
Extension spatialpandas holoviz Pandas extension arrays for spatial/geometric operations https://github.com/holoviz/spatialpandas
Extension panel-graphic-walker panel-extensions A project providing a Graphic Walker Pane for use with HoloViz Panel. https://github.com/panel-extensions/panel-graphic-walker
Extension holonote holoviz Tools to create, edit, and persist annotated regions for HoloViews https://github.com/holoviz/holonote
Extension jupyter-panel-proxy holoviz Jupyter Server Proxy for Panel https://github.com/holoviz/jupyter-panel-proxy
Extension panel-neuroglancer panel-extensions Volumetric data viewer in Jupyter notebooks with HoloViz Panel and Neuroglancer https://github.com/panel-extensions/panel-neuroglancer
Extension panel-full-calendar panel-extensions Extends HoloViz Panel with FullCalendar https://github.com/panel-extensions/panel-full-calendar
Extension panel-web-llm panel-extensions Extends HoloViz Panel with an interface that wraps a client-side LLM. https://github.com/panel-extensions/panel-web-llm
Extension panel-material-ui panel-extensions Panel extension to bring Material UI components to Panel https://github.com/panel-extensions/panel-material-ui
Extension panel-precision-slider panel-extensions A versatile slider with fine-tuned control, adjustable precision, and direct text input for exact values. https://github.com/panel-extensions/panel-precision-slider
Extension copier-template-panel-extension panel-extensions A copier template for creating Panel extensions, leveraging the pixi package manager to simplify setup and management. https://github.com/panel-extensions/copier-template-panel-extension
Developer pyviz_comms holoviz Bidirectional communication for the HoloViz ecosystem https://github.com/holoviz/pyviz_comms
Developer nbsite holoviz-dev Build a tested, sphinx-based website from notebooks https://github.com/holoviz-dev/nbsite
Developer nei holoviz-dev Notebook Editor Interface https://github.com/holoviz-dev/nei
Developer nbsmoke holoviz-dev Basic notebook checks. Do they run? Do they contain lint? https://github.com/holoviz-dev/nbsmoke
Developer pyctdev holoviz-dev Python packaging Common Tasks for Developers https://github.com/holoviz-dev/pyctdev
Developer blog holoviz-dev Source code for the HoloViz blog https://github.com/holoviz-dev/blog
Developer autover holoviz-dev Provides consistent and up-to-date version strings for Python packages. https://github.com/holoviz-dev/autover
Developer pyct holoviz-dev Python packaging Common Tasks https://github.com/holoviz-dev/pyct
Developer status-dashboard holoviz-dev Status Dashboard for HoloViz Project https://github.com/holoviz-dev/status-dashboard
Developer panelite holoviz-dev A JupyterLite deployment that supports Panel https://github.com/holoviz-dev/panelite
Developer .github holoviz Configuration files shared by the various repositories in the holoviz Github organization. https://github.com/holoviz/.github
Developer panel_dist holoviz-dev Serves the Panel Dist bundle on the pyviz-dev GitHub domain https://github.com/holoviz-dev/panel_dist
Developer panel-extensions panel-extensions A repository for organisation wide issues, feature requests, governance etc. https://github.com/panel-extensions/panel-extensions
Developer sphinx_holoviz_theme holoviz-dev https://github.com/holoviz-dev/sphinx_holoviz_theme
Developer panel holoviz-dev Dev version of the Panel website https://github.com/holoviz-dev/panel
Developer param holoviz-dev Dev version of the param docs https://github.com/holoviz-dev/param
Developer examples holoviz-dev Dev website for https://examples.holoviz.org https://github.com/holoviz-dev/examples
Developer holoviz holoviz-dev Dev version of https://holoviz.org https://github.com/holoviz-dev/holoviz
Developer holoviz-dev.github.io holoviz-dev Index of all sites on holoviz-dev https://github.com/holoviz-dev/holoviz-dev.github.io
Developer hvplot holoviz-dev Repository to hold a development version of the hvplot docs https://github.com/holoviz-dev/hvplot
Developer geoviews holoviz-dev https://github.com/holoviz-dev/geoviews
Developer colorcet holoviz-dev Dev site for colorcet https://github.com/holoviz-dev/colorcet
Developer datashader holoviz-dev Dev version of the datashader.org https://github.com/holoviz-dev/datashader
Developer contrib_colormaps holoviz-dev https://github.com/holoviz-dev/contrib_colormaps
Developer lumen holoviz-dev https://github.com/holoviz-dev/lumen
Developer holoviz_tasks holoviz-dev Shared GHA workflows and tasks used to maintain the HoloViz repositories https://github.com/holoviz-dev/holoviz_tasks
Developer nbsite-dev holoviz-dev Repository to hold a development version of nbsite https://github.com/holoviz-dev/nbsite-dev
Developer panelite-dev holoviz-dev JupyterLite distribution containing Panel https://github.com/holoviz-dev/panelite-dev
Developer blog-dev holoviz-dev Dev version of the blog https://github.com/holoviz-dev/blog-dev
Developer holonote holoviz-dev Repository to hold a development version of the holonote docs https://github.com/holoviz-dev/holonote
Developer holonote-jupyterlite holoviz-dev A JupyterLite deployment that supports HoloNote https://github.com/holoviz-dev/holonote-jupyterlite
Developer gh-discord-proxy holoviz-dev https://github.com/holoviz-dev/gh-discord-proxy
Developer deep-dives holoviz-dev Artifacts and records for HoloViz Contributor Deep Dive sessions https://github.com/holoviz-dev/deep-dives
Developer panel-material-ui holoviz-dev Dev version of the Panel Material UI site https://github.com/holoviz-dev/panel-material-ui
Developer .github panel-extensions https://github.com/panel-extensions/.github
Developer neuro holoviz-topics HoloViz+Bokeh for Neuroscience https://github.com/holoviz-topics/neuro
Incubator hvsampledata holoviz Shared datasets for the HoloViz projects https://github.com/holoviz/hvsampledata
Incubator imagen holoviz-topics ImaGen: Generic Python library for 0D, 1D and 2D pattern distributions https://github.com/holoviz-topics/imagen
Incubator holodoodler holoviz-topics https://github.com/holoviz-topics/holodoodler
Incubator hv-anndata holoviz-topics Holoviz Anndata Interface https://github.com/holoviz-topics/hv-anndata
Incubator holoSeq holoviz-topics Jupyter visualisation notebooks supporting millions of points smoothly - must run in Jupyter/Bokeh/Panel serve for datashader https://github.com/holoviz-topics/holoSeq
Incubator cancer holoviz-topics Cancer research workflows in development https://github.com/holoviz-topics/cancer
Incubator lumen-cohort-builder holoviz-topics HoloViz's Lumen BigQuery app https://github.com/holoviz-topics/lumen-cohort-builder
Community HoloViz_KDD2022 holoviz-community HoloViz tutorial for KDD 2022 https://github.com/holoviz-community/HoloViz_KDD2022
Community contrib holoviz-topics Notebook, script and wiki contributions from PyViz users https://github.com/holoviz-topics/contrib
Community awesome-holoviz holoviz-community A collection of HoloViz resources! https://github.com/holoviz-community/awesome-holoviz
Community survey holoviz-community HoloViz user survey data https://github.com/holoviz-community/survey
Community needles_and_the_haystack_EuroPython23 holoviz-community EuroPython 2023 talk https://github.com/holoviz-community/needles_and_the_haystack_EuroPython23
Archive EarthML holoviz-topics Tools for working with machine learning in earth science https://github.com/holoviz-topics/EarthML
Archive EarthML holoviz-dev Dev version of the earthml website https://github.com/holoviz-dev/EarthML
Archive EarthSim holoviz-topics Tools for working with and visualizing environmental simulations. https://github.com/holoviz-topics/EarthSim

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions