diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644
index 83c4418e26..0000000000
--- a/.gitattributes
+++ /dev/null
@@ -1,2 +0,0 @@
- __init__.py export-subst
- setup.py export-subst
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index 519e489f61..4af98850c5 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -15,7 +15,6 @@ defaults:
shell: bash -el {0}
env:
- SETUPTOOLS_ENABLE_FEATURES: "legacy-editable"
PYTHON_VERSION: "3.11"
PACKAGE: "holoviews"
@@ -30,31 +29,29 @@ jobs:
steps:
- run: echo "All builds have finished, have been approved, and ready to publish"
+ pixi_lock:
+ name: Pixi lock
+ runs-on: ubuntu-latest
+ steps:
+ - uses: holoviz-dev/holoviz_tasks/pixi_lock@pixi
+
conda_build:
name: Build Conda
+ needs: [pixi_lock]
runs-on: "ubuntu-latest"
steps:
- - uses: actions/checkout@v4
- with:
- fetch-depth: "100"
- - name: Fetch unshallow
- run: git fetch --prune --tags --unshallow -f
- - uses: conda-incubator/setup-miniconda@v3
+ - uses: holoviz-dev/holoviz_tasks/pixi_install@pixi
with:
- miniconda-version: "latest"
- - name: conda setup
- run: |
- # pyct is for running setup.py
- conda install -y conda-build build pyct -c pyviz/label/dev
+ environments: "build"
+ download-data: false
+ install: false
- name: conda build
- run: |
- source ./scripts/build_conda.sh
- echo "CONDA_FILE="$CONDA_PREFIX/conda-bld/noarch/$PACKAGE-$VERSION-py_0.tar.bz2"" >> $GITHUB_ENV
+ run: pixi run -e build build-conda
- uses: actions/upload-artifact@v4
if: always()
with:
name: conda
- path: ${{ env.CONDA_FILE }}
+ path: dist/*tar.bz2
if-no-files-found: error
conda_publish:
@@ -88,21 +85,16 @@ jobs:
pip_build:
name: Build PyPI
+ needs: [pixi_lock]
runs-on: "ubuntu-latest"
steps:
- - uses: actions/checkout@v4
- with:
- fetch-depth: "100"
- - name: Fetch unshallow
- run: git fetch --prune --tags --unshallow -f
- - uses: actions/setup-python@v5
+ - uses: holoviz-dev/holoviz_tasks/pixi_install@pixi
with:
- python-version: ${{ env.PYTHON_VERSION }}
- - name: Install build
- run: |
- python -m pip install build
+ environments: "build"
+ download-data: false
+ install: false
- name: Build package
- run: python -m build .
+ run: pixi run -e build build-pip
- uses: actions/upload-artifact@v4
if: always()
with:
@@ -124,8 +116,12 @@ jobs:
path: dist/
- name: Install package
run: python -m pip install dist/*.whl
- - name: Test package
+ - name: Import package
run: python -c "import $PACKAGE; print($PACKAGE.__version__)"
+ - name: Install test dependencies
+ run: python -m pip install "$(ls dist/*whl)[tests]"
+ - name: Test package
+ run: python -m pytest --pyargs $PACKAGE --color=yes
pip_publish:
name: Publish PyPI
diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml
index 578df685c2..bca34dfa84 100644
--- a/.github/workflows/docs.yaml
+++ b/.github/workflows/docs.yaml
@@ -20,65 +20,74 @@ on:
schedule:
- cron: "0 14 * * SUN"
+defaults:
+ run:
+ shell: bash -el {0}
+
jobs:
- build_docs:
- name: Documentation
- runs-on: "ubuntu-latest"
- timeout-minutes: 120
- defaults:
- run:
- shell: bash -el {0}
+ pixi_lock:
+ name: Pixi lock
+ runs-on: ubuntu-latest
+ steps:
+ - uses: holoviz-dev/holoviz_tasks/pixi_lock@pixi
+
+ docs_build:
+ name: Build Documentation
+ needs: [pixi_lock]
+ runs-on: "macos-latest"
+ timeout-minutes: 180
+ outputs:
+ tag: ${{ steps.vars.outputs.tag }}
env:
- DESC: "Documentation build"
MPLBACKEND: "Agg"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
- AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
- AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }}
MOZ_HEADLESS: 1
PANEL_EMBED: "true"
PANEL_EMBED_JSON: "true"
PANEL_EMBED_JSON_PREFIX: "json"
+ DASK_DATAFRAME__QUERY_PLANNING: false
steps:
- - uses: holoviz-dev/holoviz_tasks/install@v0
+ - uses: holoviz-dev/holoviz_tasks/pixi_install@pixi
+ with:
+ environments: docs
+ - name: Build documentation
+ run: pixi run -e docs docs-build
+ - uses: actions/upload-artifact@v4
+ if: always()
with:
- name: Documentation
- python-version: "3.10"
- channel-priority: flexible
- channels: pyviz/label/dev,conda-forge,nodefaults
- envs: "-o doc"
- cache: true
- conda-update: true
+ name: docs
+ if-no-files-found: error
+ path: builtdocs
- name: Set output
id: vars
run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT
- - name: Download data
- run: |
- conda activate test-environment
- bash scripts/download_data.sh
- - name: generate rst
- run: |
- conda activate test-environment
- nbsite generate-rst --org holoviz --project-name holoviews
- - name: refmanual
- run: |
- conda activate test-environment
- python ./doc/generate_modules.py holoviews -d ./doc/reference_manual -n holoviews -e tests
- - name: build docs
- run: |
- conda activate test-environment
- nbsite build --what=html --output=builtdocs --org holoviz --project-name holoviews
+
+ docs_publish:
+ name: Publish Documentation
+ runs-on: "ubuntu-latest"
+ needs: [docs_build]
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
+ AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
+ AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }}
+ steps:
+ - uses: actions/download-artifact@v4
+ with:
+ name: docs
+ path: builtdocs/
+ - name: Set output
+ id: vars
+ run: echo "tag=${{ needs.docs_build.outputs.tag }}" >> $GITHUB_OUTPUT
- name: upload dev
if: |
(github.event_name == 'workflow_dispatch' && github.event.inputs.target == 'dev') ||
(github.event_name == 'push' && (contains(steps.vars.outputs.tag, 'a') || contains(steps.vars.outputs.tag, 'b') || contains(steps.vars.outputs.tag, 'rc')))
run: |
- pipx install awscli
aws s3 sync --quiet ./builtdocs s3://dev.holoviews.org/
- name: upload main
if: |
(github.event_name == 'workflow_dispatch' && github.event.inputs.target == 'main') ||
(github.event_name == 'push' && !(contains(steps.vars.outputs.tag, 'a') || contains(steps.vars.outputs.tag, 'b') || contains(steps.vars.outputs.tag, 'rc')))
run: |
- pipx install awscli
aws s3 sync --quiet ./builtdocs s3://holoviews.org/
diff --git a/.github/workflows/nightly_lock.yaml b/.github/workflows/nightly_lock.yaml
new file mode 100644
index 0000000000..9b93b85a21
--- /dev/null
+++ b/.github/workflows/nightly_lock.yaml
@@ -0,0 +1,25 @@
+name: nightly_lock
+on:
+ workflow_dispatch:
+ schedule:
+ - cron: "0 0 * * *"
+
+env:
+ PACKAGE: "holoviews"
+
+jobs:
+ pixi_lock:
+ name: Pixi lock
+ runs-on: ubuntu-latest
+ timeout-minutes: 5
+ steps:
+ - uses: holoviz-dev/holoviz_tasks/pixi_lock@pixi
+ - name: Upload lock-file to S3
+ if: "!github.event.pull_request.head.repo.fork"
+ env:
+ AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
+ AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
+ AWS_DEFAULT_REGION: "eu-west-1"
+ run: |
+ zip $(date +%Y-%m-%d).zip pixi.lock pixi.toml
+ aws s3 cp ./$(date +%Y-%m-%d).zip s3://assets.holoviz.org/lock/$PACKAGE/
diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml
index 57e3226018..1a8340ad1d 100644
--- a/.github/workflows/test.yaml
+++ b/.github/workflows/test.yaml
@@ -33,17 +33,11 @@ defaults:
shell: bash -el {0}
env:
- SETUPTOOLS_ENABLE_FEATURES: "legacy-editable"
DISPLAY: ":99.0"
PYTHONIOENCODING: "utf-8"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- OMP_NUM_THREADS: 1
- OPENBLAS_NUM_THREADS: 1
- MKL_NUM_THREADS: 1
- VECLIB_MAXIMUM_THREADS: 1
- NUMEXPR_NUM_THREADS: 1
- NUMBA_NUM_THREADS: 1
- PYDEVD_DISABLE_FILE_VALIDATION: 1
+ DASK_DATAFRAME__QUERY_PLANNING: false
+ COV: "--cov=./holoviews --cov-report=xml"
jobs:
pre_commit:
@@ -61,7 +55,7 @@ jobs:
code_change: ${{ steps.filter.outputs.code }}
matrix: ${{ env.MATRIX }}
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
if: github.event_name != 'pull_request'
- name: Check for code changes
uses: dorny/paths-filter@v3
@@ -71,7 +65,7 @@ jobs:
code:
- 'holoviews/**'
- 'examples/**'
- - 'setup.py'
+ - 'pixi.toml'
- 'pyproject.toml'
- '.github/workflows/test.yaml'
- name: Set matrix option
@@ -91,7 +85,10 @@ jobs:
run: |
MATRIX=$(jq -nsc '{
"os": ["ubuntu-latest", "macos-latest", "windows-latest"],
- "python-version": ["3.9", "3.12"]
+ "environment": ["test-39", "test-312"],
+ "include": [
+ { "os": "ubuntu-latest", "environment": "test-numpy" }
+ ]
}')
echo "MATRIX=$MATRIX" >> $GITHUB_ENV
- name: Set test matrix with 'full' option
@@ -99,7 +96,10 @@ jobs:
run: |
MATRIX=$(jq -nsc '{
"os": ["ubuntu-latest", "macos-latest", "windows-latest"],
- "python-version": ["3.9", "3.10", "3.11", "3.12"]
+ "environment": ["test-39", "test-310", "test-311", "test-312"],
+ "include": [
+ { "os": "ubuntu-latest", "environment": "test-numpy" }
+ ]
}')
echo "MATRIX=$MATRIX" >> $GITHUB_ENV
- name: Set test matrix with 'downstream' option
@@ -107,136 +107,104 @@ jobs:
run: |
MATRIX=$(jq -nsc '{
"os": ["ubuntu-latest"],
- "python-version": ["3.11"]
+ "environment": ["test-311"]
}')
echo "MATRIX=$MATRIX" >> $GITHUB_ENV
+ pixi_lock:
+ name: Pixi lock
+ runs-on: ubuntu-latest
+ steps:
+ - uses: holoviz-dev/holoviz_tasks/pixi_lock@pixi
+ with:
+ cache: ${{ github.event.inputs.cache == 'true' || github.event.inputs.cache == '' }}
+
unit_test_suite:
- name: Unit tests on Python ${{ matrix.python-version }}, ${{ matrix.os }}
- needs: [pre_commit, setup]
+ name: unit:${{ matrix.environment }}:${{ matrix.os }}
+ needs: [pre_commit, setup, pixi_lock]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.setup.outputs.matrix) }}
timeout-minutes: 120
- env:
- DESC: "Python ${{ matrix.python-version }}, ${{ matrix.os }} unit tests"
- PYTHON_VERSION: ${{ matrix.python-version }}
steps:
- - uses: holoviz-dev/holoviz_tasks/install@v0
+ - uses: holoviz-dev/holoviz_tasks/pixi_install@pixi
if: needs.setup.outputs.code_change == 'true'
with:
- name: unit_test_suite
- python-version: ${{ matrix.python-version }}
- channel-priority: flexible
- channels: pyviz/label/dev,conda-forge,nodefaults
- envs: "-o flakes -o tests -o examples_tests -o tests_ci"
- cache: ${{ github.event.inputs.cache || github.event.inputs.cache == '' }}
- conda-update: true
- id: install
+ environments: ${{ matrix.environment }}
- name: Check packages latest version
if: needs.setup.outputs.code_change == 'true'
run: |
- conda activate test-environment
- python scripts/check_latest_packages.py bokeh panel param datashader
- - name: Download data
- if: needs.setup.outputs.code_change == 'true'
- run: |
- conda activate test-environment
- bash scripts/download_data.sh
- - name: doit test_unit
+ pixi run -e ${{ matrix.environment }} check-latest-packages bokeh panel param datashader
+ - name: Test Unit
if: needs.setup.outputs.code_change == 'true'
run: |
- conda activate test-environment
- doit test_unit
- - name: test examples
+ pixi run -e ${{ matrix.environment }} test-unit $COV
+ - name: Test Examples
if: needs.setup.outputs.code_change == 'true'
run: |
- conda activate test-environment
- doit test_examples
- - name: codecov
+ pixi run -e ${{ matrix.environment }} test-example
+ - uses: codecov/codecov-action@v4
if: needs.setup.outputs.code_change == 'true'
- run: |
- conda activate test-environment
- codecov
+ with:
+ token: ${{ secrets.CODECOV_TOKEN }}
ui_test_suite:
- name: UI tests on Python ${{ matrix.python-version }}, ${{ matrix.os }}
- needs: [pre_commit, setup]
+ name: ui:${{ matrix.environment }}:${{ matrix.os }}
+ needs: [pre_commit, setup, pixi_lock]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ["ubuntu-latest"]
- python-version: ["3.9"]
+ environment: ["test-ui"]
timeout-minutes: 60
env:
- DESC: "Python ${{ matrix.python-version }}, ${{ matrix.os }} UI tests"
PANEL_LOG_LEVEL: info
- # Without this env var `doit env_create ...` uses by default
- # the `pyviz` channel, except that we don't want to configure
- # it as one of the sources.
- PYCTDEV_SELF_CHANNEL: "pyviz/label/dev"
steps:
- - uses: holoviz-dev/holoviz_tasks/install@v0
+ - uses: holoviz-dev/holoviz_tasks/pixi_install@pixi
if: needs.setup.outputs.code_change == 'true'
with:
- name: ui_test_suite
- python-version: ${{ matrix.python-version }}
- channels: pyviz/label/dev,conda-forge,nodefaults
- envs: "-o recommended -o tests -o build -o tests_ci"
- cache: ${{ github.event.inputs.cache || github.event.inputs.cache == '' }}
- playwright: true
- id: install
- - name: doit test_ui
+ environments: ${{ matrix.environment }}
+ - name: Test UI
if: needs.setup.outputs.code_change == 'true'
run: |
- conda activate test-environment
- doit test_ui
- - name: Upload coverage to Codecov
+ # Create a .uicoveragerc file to set the concurrency library to greenlet
+ # https://github.com/microsoft/playwright-python/issues/313
+ echo "[run]\nconcurrency = greenlet" > .uicoveragerc
+ FAIL="--screenshot only-on-failure --full-page-screenshot --output ui_screenshots --tracing retain-on-failure"
+ pixi run -e ${{ matrix.environment }} test-ui $COV --cov-config=.uicoveragerc $FAIL
+ - uses: actions/upload-artifact@v4
+ if: always()
+ with:
+ name: ui_screenshots_${{ runner.os }}
+ path: ./ui_screenshots
+ if-no-files-found: ignore
+ - uses: codecov/codecov-action@v4
if: needs.setup.outputs.code_change == 'true'
- uses: codecov/codecov-action@v3
with:
- files: ./coverage.xml
- flags: ui-tests
- fail_ci_if_error: false # optional (default = false)
+ token: ${{ secrets.CODECOV_TOKEN }}
core_test_suite:
- name: Core tests on Python ${{ matrix.python-version }}, ${{ matrix.os }}
- needs: [pre_commit, setup]
+ name: core:${{ matrix.environment }}:${{ matrix.os }}
+ needs: [pre_commit, setup, pixi_lock]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ["ubuntu-latest"]
- python-version: ["3.12"]
+ environment: ["test-core"]
timeout-minutes: 120
- env:
- DESC: "Python ${{ matrix.python-version }}, ${{ matrix.os }} core tests"
- PYTHON_VERSION: ${{ matrix.python-version }}
steps:
- - uses: holoviz-dev/holoviz_tasks/install@v0
+ - uses: holoviz-dev/holoviz_tasks/pixi_install@pixi
if: needs.setup.outputs.code_change == 'true'
with:
- name: core_test_suite
- python-version: ${{ matrix.python-version }}
- # channel-priority: strict
- channels: pyviz/label/dev,conda-forge,nodefaults
- envs: "-o tests_core -o tests_ci"
- cache: ${{ github.event.inputs.cache || github.event.inputs.cache == '' }}
- id: install
- - name: Download data
- if: needs.setup.outputs.code_change == 'true'
- run: |
- conda activate test-environment
- bash scripts/download_data.sh
+ environments: ${{ matrix.environment }}
- name: Check packages latest version
if: needs.setup.outputs.code_change == 'true'
run: |
- conda activate test-environment
- python scripts/check_latest_packages.py numpy pandas bokeh panel param
- - name: doit test_unit
+ pixi run -e ${{ matrix.environment }} check-latest-packages numpy pandas bokeh panel param
+ - name: Test Unit
if: needs.setup.outputs.code_change == 'true'
run: |
- conda activate test-environment
- pytest holoviews
+ pixi run -e ${{ matrix.environment }} test-unit
diff --git a/.gitignore b/.gitignore
index a75807cd77..ae3111fef6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,13 +20,14 @@
.ipynb_checkpoints
.coverage
.pytest_cache
+.pixi
+holoviews/_version.py
/release
/doc/Tutorials-WIP/*.ipynb
.idea
.vscode
holoviews.rc
-/examples/assets/
ghostdriver.log
holoviews/.version
.dir-locals.el
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 602951f640..9bb53aa002 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -5,7 +5,7 @@ exclude: (\.min\.js$|\.svg$|\.html$)
default_stages: [commit]
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
- rev: v4.5.0
+ rev: v4.6.0
hooks:
- id: end-of-file-fixer
- id: trailing-whitespace
@@ -20,7 +20,7 @@ repos:
- id: check-json
- id: detect-private-key
- repo: https://github.com/astral-sh/ruff-pre-commit
- rev: v0.3.4
+ rev: v0.4.5
hooks:
- id: ruff
files: holoviews/|scripts/
@@ -30,7 +30,7 @@ repos:
- id: clean-notebook
args: [--strip-trailing-newlines]
- repo: https://github.com/codespell-project/codespell
- rev: v2.2.6
+ rev: v2.3.0
hooks:
- id: codespell
additional_dependencies:
@@ -45,11 +45,25 @@ repos:
rev: v0.10.0.1
hooks:
- id: shellcheck
- - repo: https://github.com/pre-commit/mirrors-prettier
- rev: v3.1.0
+ - repo: https://github.com/hoxbro/prettier-pre-commit
+ rev: v3.2.5
hooks:
- id: prettier
exclude: conda.recipe/meta.yaml
types_or:
- markdown
- yaml
+ - css
+ - repo: https://github.com/hoxbro/taplo-pre-commit
+ rev: v0.7.0
+ hooks:
+ - id: taplo
+ args:
+ [
+ --option,
+ align_comments=false,
+ --option,
+ column_width=100,
+ --option,
+ "indent_string= ",
+ ]
diff --git a/MANIFEST.in b/MANIFEST.in
deleted file mode 100644
index 00ee15d10f..0000000000
--- a/MANIFEST.in
+++ /dev/null
@@ -1,13 +0,0 @@
-include README.rst
-include LICENSE.txt
-include CHANGELOG.md
-include holoviews/.version
-include holoviews/ipython/*.html
-include holoviews/plotting/mpl/*.mplstyle
-include holoviews/tests/ipython/notebooks/*.ipynb
-global-exclude *.py[co]
-global-exclude __pycache__
-global-exclude *~
-global-exclude *.ipynb_checkpoints/*
-graft examples
-graft holoviews/examples
diff --git a/README.md b/README.md
index eaf2ec464e..b7fc145336 100644
--- a/README.md
+++ b/README.md
@@ -9,7 +9,7 @@ itself.**
| Downloads | ![https://pypistats.org/packages/holoviews](https://img.shields.io/pypi/dm/holoviews?label=pypi) ![https://anaconda.org/pyviz/holoviews](https://pyviz.org/_static/cache/holoviews_conda_downloads_badge.svg)
| Build Status | [![Build Status](https://github.com/holoviz/holoviews/actions/workflows/test.yaml/badge.svg?branch=main)](https://github.com/holoviz/holoviews/actions/workflows/test.yaml?query=branch%3Amain) |
| Coverage | [![codecov](https://codecov.io/gh/holoviz/holoviews/branch/main/graph/badge.svg)](https://codecov.io/gh/holoviz/holoviews) |
-| Latest dev release | [![Github tag](https://img.shields.io/github/tag/holoviz/holoviews.svg?label=tag&colorB=11ccbb)](https://github.com/holoviz/holoviews/tags) [![dev-site](https://img.shields.io/website-up-down-green-red/http/dev.holoviews.org.svg?label=dev%20website)](http://dev.holoviews.org) |
+| Latest dev release | [![Github tag](https://img.shields.io/github/tag/holoviz/holoviews.svg?label=tag&colorB=11ccbb)](https://github.com/holoviz/holoviews/tags) [![dev-site](https://img.shields.io/website-up-down-green-red/http/dev.holoviews.org.svg?label=dev%20website)](https://dev.holoviews.org) |
| Latest release | [![Github release](https://img.shields.io/github/release/holoviz/holoviews.svg?label=tag&colorB=11ccbb)](https://github.com/holoviz/holoviews/releases) [![PyPI version](https://img.shields.io/pypi/v/holoviews.svg?colorB=cc77dd)](https://pypi.python.org/pypi/holoviews) [![holoviews version](https://img.shields.io/conda/v/pyviz/holoviews.svg?colorB=4488ff&style=flat)](https://anaconda.org/pyviz/holoviews) [![conda-forge version](https://img.shields.io/conda/v/conda-forge/holoviews.svg?label=conda%7Cconda-forge&colorB=4488ff)](https://anaconda.org/conda-forge/holoviews) [![defaults version](https://img.shields.io/conda/v/anaconda/holoviews.svg?label=conda%7Cdefaults&style=flat&colorB=4488ff)](https://anaconda.org/anaconda/holoviews) |
| Python | [![Python support](https://img.shields.io/pypi/pyversions/holoviews.svg)](https://pypi.org/project/holoviews/) |
| Docs | [![DocBuildStatus](https://github.com/holoviz/holoviews/workflows/docs/badge.svg?query=branch%3Amain)](https://github.com/holoviz/holoviews/actions?query=workflow%3Adocs+branch%3Amain) [![site](https://img.shields.io/website-up-down-green-red/https/holoviews.org.svg)](https://holoviews.org) |
@@ -22,80 +22,59 @@ and simple. With HoloViews, you can usually express what you want to do
in very few lines of code, letting you focus on what you are trying to
explore and convey, not on the process of plotting.
-Check out the [HoloViews web site](http://holoviews.org) for extensive examples and documentation.
+Check out the [HoloViews web site](https://holoviews.org) for extensive examples and documentation.
# Installation
-HoloViews works with
-[Python](https://github.com/holoviz/holoviews/actions/workflows/test.yaml)
-on Linux, Windows, or Mac, and works seamlessly with
-[Jupyter Notebook and JupyterLab](https://jupyter.org).
+HoloViews works with [Python](https://github.com/holoviz/holoviews/actions/workflows/test.yaml)
+on Linux, Windows, or Mac, and works seamlessly with [Jupyter Notebook and JupyterLab](https://jupyter.org).
-The recommended way to install HoloViews is using the
-[conda](https://docs.conda.io/projects/conda/en/latest/index.html) command provided by
-[Anaconda](https://docs.anaconda.com/free/anaconda/install/) or
-[Miniconda](https://docs.conda.io/en/latest/miniconda.html):
+You can install HoloViews either with `conda` or `pip`, for more information see the [install guide](https://holoviews.org/install.html).
conda install holoviews
-This command will install the typical packages most useful with
-HoloViews, though HoloViews itself depends only on
-[Numpy](https://numpy.org) [Pandas](https://pandas.pydata.org) and [Param](https://param.holoviz.org).
-Additional installation and configuration options are described in the
-[user guide](https://holoviews.org/user_guide/Installing_and_Configuring.html).
+ pip install holoviews
-You can also clone holoviews directly from GitHub and install it with:
+# Developer Guide
- git clone git://github.com/holoviz/holoviews.git
- cd holoviews
- pip install -e .
+If you want to help develop HoloViews, you can checkout the [developer guide](https://dev.holoviews.org/developer_guide/index.html),
+this guide will help you get set-up. Making it easy to contribute.
-## Usage
+# Support & Feedback
-Once you've installed HoloViews, you can get a copy of all the examples shown on this website:
-
- holoviews --install-examples
- cd holoviews-examples
-
-Now you can launch Jupyter Notebook or JupyterLab to explore them:
-
- jupyter notebook
-
- jupyter lab
+If you find any bugs or have any feature suggestions please file a GitHub
+[issue](https://github.com/holoviz/holoviews/issues).
-For more details on setup and configuration see [our website](https://holoviews.org/user_guide/Installing_and_Configuring.html).
+If you have any usage questions, please ask them on [HoloViz Discourse](https://discourse.holoviz.org/),
-For general discussion, we have a [discord channel](https://discord.gg/AXRHnJU6sP).
-If you find any bugs or have any feature suggestions please file a GitHub
-[issue](https://github.com/holoviz/holoviews/issues)
-or submit a [pull request](https://help.github.com/articles/about-pull-requests).
+For general discussion, we have a [Discord channel](https://discord.gg/AXRHnJU6sP).
diff --git a/conda.recipe/README.md b/conda.recipe/README.md
deleted file mode 100644
index 35638017b0..0000000000
--- a/conda.recipe/README.md
+++ /dev/null
@@ -1,14 +0,0 @@
-## Release Procedure
-
-- Ensure all tests pass.
-
-- Tag commit a PEP440 style tag (starting with the prefix 'v') and push to github
-
-```bash
-git tag -a vx.x.x -m 'Version x.x.x'
-git push --tags
-```
-
-Example tags might include v1.9.3 v1.10.0a1 or v1.11.3b3
-
-- Build conda packages
diff --git a/conda.recipe/meta.yaml b/conda.recipe/meta.yaml
deleted file mode 100644
index 087efe849e..0000000000
--- a/conda.recipe/meta.yaml
+++ /dev/null
@@ -1,46 +0,0 @@
-{% set sdata = load_setup_py_data(setup_file="../setup.py", from_recipe_dir=True) %}
-
-package:
- name: {{ sdata['name'] }}
- version: {{ VERSION }}
-
-source:
- url: ../dist/{{ sdata['name'] }}-{{ VERSION }}-py3-none-any.whl
-
-build:
- noarch: python
- script: {{ PYTHON }} -m pip install -vv {{ sdata['name'] }}-{{ VERSION }}-py3-none-any.whl
- entry_points:
- {% for group,epoints in sdata.get("entry_points",{}).items() %}
- {% for entry_point in epoints %}
- - {{ entry_point }}
- {% endfor %}
- {% endfor %}
-
-requirements:
- build:
- - python {{ sdata['python_requires'] }}
- {% for dep in sdata['extras_require']['build'] %}
- - {{ dep }}
- {% endfor %}
- run:
- - python {{ sdata['python_requires'] }}
- {% for dep in sdata.get('install_requires',{}) %}
- - {{ dep }}
- {% endfor %}
- {% for dep in sdata['extras_require']['recommended'] %}
- - {{ dep }}
- {% endfor %}
-
-test:
- imports:
- - {{ sdata['name'] }}
- commands:
- - pip check
- requires:
- - pip
-
-about:
- home: https://holoviews.org
- summary: Stop plotting your data - annotate your data and let it visualize itself.
- license: BSD 3-Clause
diff --git a/doc/_static/css/custom.css b/doc/_static/css/custom.css
index f14b920b16..a99250e447 100644
--- a/doc/_static/css/custom.css
+++ b/doc/_static/css/custom.css
@@ -1,14 +1,26 @@
+:root[data-theme="light"],
+:root[data-theme="dark"] {
+ --pst-color-inline-code: var(--holoviz-main-color);
+ --pst-color-link-hover: var(--holoviz-main-color);
+ --pst-color-link: var(--holoviz-main-color);
+ --pst-color-primary: var(--holoviz-main-color);
+ --pst-color-secondary-highlight: var(--holoviz-main-color);
+ --pst-color-secondary: var(--holoviz-main-color);
+ --sd-color-card-border-hover: var(--holoviz-main-color);
+}
+
:root[data-theme="light"] {
- --pst-color-primary: rgb(47,47,47);
- --pst-color-link: rgb(163,26,38);
- --pst-color-link-hover: rgb(254,203,56);
- --pst-color-surface: rgb(250, 250, 250);
+ --holoviz-main-color: #a31a26;
+}
+
+:root[data-theme="dark"] {
+ --holoviz-main-color: #f37323;
}
#binder-link {
- display: inline-block;
- font-size: 0.9rem;
- padding-left: 1.5rem;
- padding-top: 1rem;
- padding-bottom: 1rem;
+ display: inline-block;
+ font-size: 0.9rem;
+ padding-left: 1.5rem;
+ padding-top: 1rem;
+ padding-bottom: 1rem;
}
diff --git a/doc/conf.py b/doc/conf.py
index 63fe74c028..1c2cb85a52 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -61,6 +61,8 @@
'nbsite.analytics',
]
+myst_enable_extensions = ["colon_fence", "deflist"]
+
nbsite_analytics = {
'goatcounter_holoviz': True,
}
diff --git a/doc/developer_guide/index.md b/doc/developer_guide/index.md
new file mode 100644
index 0000000000..ed10b2eabf
--- /dev/null
+++ b/doc/developer_guide/index.md
@@ -0,0 +1,196 @@
+# Setting up a development environment
+
+The HoloViews library is a project that provides a wide range of data interfaces and an extensible set of plotting backends, which means the development and testing process involves a broad set of libraries.
+
+This guide describes how to install and configure development environments.
+
+If you have any problems with the steps here, please reach out in the `dev` channel on [Discord](https://discord.gg/rb6gPXbdAr) or on [Discourse](https://discourse.holoviz.org/).
+
+## Preliminaries
+
+### Basic understanding of how to contribute to Open Source
+
+If this is your first open-source contribution, please study one
+or more of the below resources.
+
+- [How to Get Started with Contributing to Open Source | Video](https://youtu.be/RGd5cOXpCQw)
+- [Contributing to Open-Source Projects as a New Python Developer | Video](https://youtu.be/jTTf4oLkvaM)
+- [How to Contribute to an Open Source Python Project | Blog post](https://www.educative.io/blog/contribue-open-source-python-project)
+
+### Git
+
+The HoloViews source code is stored in a [Git](https://git-scm.com) source control repository. The first step to working on HoloViews is to install Git onto your system. There are different ways to do this, depending on whether you use Windows, Mac, or Linux.
+
+To install Git on any platform, refer to the [Installing Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) section of the [Pro Git Book](https://git-scm.com/book/en/v2).
+
+To contribute to HoloViews, you will also need [Github account](https://github.com/join) and knowledge of the [_fork and pull request workflow_](https://docs.github.com/en/get-started/quickstart/contributing-to-projects).
+
+### Pixi
+
+Developing all aspects of HoloViews requires a wide range of packages in different environments. To make this more manageable, Pixi manages the developer experience. To install Pixi, follow [this guide](https://pixi.sh/latest/#installation).
+
+#### Glossary
+
+- Tasks: A task is what can be run with `pixi run `. Tasks can be anything from installing packages to running tests.
+- Environments: An environment is a set of packages installed in a virtual environment. Each environment has a name; you can run tasks in a specific environment with the `-e` flag. For example, `pixi run -e test-core test-unit` will run the `test-unit` task in the `test-core` environment.
+- Lock-file: A lock-file is a file that contains all the information about the environments.
+
+For more information, see the [Pixi documentation](https://pixi.sh/latest/).
+
+:::{admonition} Note
+:class: info
+
+The first time you run `pixi`, it will create a `.pixi` directory in the source directory.
+This directory will contain all the files needed for the virtual environments.
+The `.pixi` directory can be large, so it is advised not to put the source directory into a cloud-synced directory.
+:::
+
+## Installing the Project
+
+### Cloning the Project
+
+The source code for the HoloViews project is hosted on [GitHub](https://github.com/holoviz/holoviews). The first thing you need to do is clone the repository.
+
+1. Go to [github.com/holoviz/holoviews](https://github.com/holoviz/holoviews)
+2. [Fork the repository](https://docs.github.com/en/get-started/quickstart/contributing-to-projects#forking-a-repository)
+3. Run in your terminal: `git clone https://github.com//holoviews`
+
+The instructions for cloning above created a `holoviews` directory at your file system location.
+This `holoviews` directory is the _source checkout_ for the remainder of this document, and your current working directory is this directory.
+
+### Fetch tags from upstream
+
+The version number of the package depends on [`git tags`](https://git-scm.com/book/en/v2/Git-Basics-Tagging), so you need to fetch the tags from the upstream repository:
+
+```bash
+git remote add upstream https://github.com/holoviz/holoviews.git
+git fetch --tags upstream
+git push --tags
+```
+
+## Start developing
+
+To start developing, run the following command
+
+```bash
+pixi install
+```
+
+The first time you run it, it will create a `pixi.lock` file with information for all available environments. This command will take a minute or so to run.
+When this is finished, it is possible to run the following command to download the data HoloViews tests and examples depend upon.
+
+```bash
+pixi run download-data
+```
+
+All available tasks can be found by running `pixi task list`, the following sections will give a brief introduction to the most common tasks.
+
+### Editable install
+
+It can be advantageous to install the HoloViews in [editable mode](https://pip.pypa.io/en/stable/topics/local-project-installs/#editable-installs):
+
+```bash
+pixi run install
+```
+
+:::{admonition} Note
+:class: info
+
+Currently, this needs to be run for each environment. So, if you want to install in the `test-ui` environment, you can add `--environment` / `-e` to the command:
+
+```bash
+pixi run -e test-ui install
+```
+
+:::
+
+## Linting
+
+HoloViews uses [pre-commit](https://pre-commit.com/) to apply linting to HoloViews code. Linting can be run for all the files with:
+
+```bash
+pixi run lint
+```
+
+Linting can also be set up to run automatically with each commit; this is the recommended way because if linting is not passing, the [Continuous Integration](https://en.wikipedia.org/wiki/Continuous_integration) (CI) will also fail.
+
+```bash
+pixi run lint-install
+```
+
+## Testing
+
+To help keep HoloViews maintainable, all Pull Requests (PR) with code changes should typically be accompanied by relevant tests. While exceptions may be made for specific circumstances, the default assumption should be that a Pull Request without tests will not be merged.
+
+There are three types of tasks and five environments related to tests.
+
+### Unit tests
+
+Unit tests are usually small tests executed with [pytest](https://docs.pytest.org). They can be found in `holoviews/tests/`.
+Unit tests can be run with the `test-unit` task:
+
+```bash
+pixi run test-unit
+```
+
+The task is available in the following environments: `test-39`, `test-310`, `test-311`, `test-312`, and `test-core`. Where the first ones have the same environments except for different Python versions, and `test-core` only has a core set of dependencies.
+
+If you haven't set the environment flag in the command, a menu will help you select which one of the environments to use.
+
+### Example tests
+
+HoloViews's documentation consists mainly of Jupyter Notebooks. The example tests execute all the notebooks and fail if an error is raised. Example tests are possible thanks to [nbval](https://nbval.readthedocs.io/) and can be found in the `examples/` folder.
+Example tests can be run with the following command:
+
+```bash
+pixi run test-example
+```
+
+This task has the same environments as the unit tests except for `test-core`.
+
+### UI tests
+
+HoloViews provides web components that users can interact with through the browser. UI tests allow checking that these components get displayed as expected and that the backend <-> front-end bi-communication works correctly. UI tests are possible thanks to [Playwright](https://playwright.dev/python/).
+The test can be found in the `holoviews/tests/ui/` folder.
+UI tests can be run with the following task. This task is only available in the `test-ui` environment. The first time you run it, it will download the necessary browser files to run the tests in the Chrome browser.
+
+```bash
+pixi run test-ui
+```
+
+## Documentation
+
+The documentation can be built with the command:
+
+```bash
+pixi run docs-build
+```
+
+As HoloViews uses notebooks for much of the documentation, this will take significant time to run (around an hour).
+If you want to run it locally, you can temporarily disable the gallery by setting the environment variable `export HV_DOC_GALLERY=False`.
+You can also disable the reference gallery by setting the environment variable `export HV_DOC_REF_GALLERY=False`.
+
+A development version of HoloViews can be found [here](https://dev.holoviews.org/). You can ask a maintainer if they want to make a dev release for your PR, but there is no guarantee they will say yes.
+
+## Build
+
+HoloViews have two build tasks. One is for building packages for Pip, and the other is for building packages for Conda.
+
+```bash
+pixi run build-pip
+pixi run build-conda
+```
+
+## Continuous Integration
+
+Every push to the `main` branch or any PR branch on GitHub automatically triggers a test build with [GitHub Actions](https://github.com/features/actions).
+
+You can see the list of all current and previous builds at [this URL](https://github.com/holoviz/holoviews/actions)
+
+### Etiquette
+
+GitHub Actions provides free build workers for open-source projects. A few considerations will help you be considerate of others needing these limited resources:
+
+- Run the tests locally before opening or pushing to an opened PR.
+
+- Group commits to meaningful chunks of work before pushing to GitHub (i.e., don't push on every commit).
diff --git a/doc/index.md b/doc/index.md
new file mode 100644
index 0000000000..f4aa322172
--- /dev/null
+++ b/doc/index.md
@@ -0,0 +1,122 @@
+
+
+**Stop plotting your data - annotate your data and let it visualize
+itself.**
+
+
+HoloViews is an
+[open-source](https://github.com/holoviz/holoviews/blob/main/LICENSE.txt)
+Python library designed to make data analysis and visualization seamless
+and simple. With HoloViews, you can usually express what you want to do
+in very few lines of code, letting you focus on what you are trying to
+explore and convey, not on the process of plotting.
+
+For examples, check out the thumbnails below and the other items in the
+[Gallery](gallery/index) of demos and apps and the [Reference Gallery](reference/index)
+that shows every HoloViews component. Be sure to
+look at the code, not just the pictures, to appreciate how easy it is to
+create such plots yourself!
+
+The [Getting-Started](getting_started/index) guide explains the basic concepts
+and how to start using HoloViews, and is the recommended way to
+understand how everything works.
+
+The [User Guide](user_guide/index) goes more deeply into key concepts from
+HoloViews, when you are ready for further study.
+
+The [API](reference_manual) is the definitive guide to each HoloViews
+object, but the same information is available more conveniently via the
+`hv.help()` command and tab completion in the Jupyter notebook.
+
+If you have any [issues](https://github.com/holoviz/holoviews/issues) or
+wish to [contribute code](https://help.github.com/articles/about-pull-requests), you can
+visit our [GitHub site](https://github.com/holoviz/holoviews), file a
+topic on the [HoloViz Discourse](https://discourse.holoviz.org/), or ask a quick question
+on [Holoviz Discord](https://discord.gg/AXRHnJU6sP).
+
+
+
+
+
+
+
+
+# Installation
+
+[![CondaPkg](https://img.shields.io/conda/v/anaconda/holoviews.svg?label=conda%7Cdefaults&style=flat&colorB=4488ff)](https://anaconda.org/pyviz/holoviews)
+[![PyPI](https://img.shields.io/pypi/v/holoviews.svg)](https://pypi.python.org/pypi/holoviews)
+[![License](https://img.shields.io/pypi/l/holoviews.svg)](https://github.com/holoviz/holoviews/blob/main/LICENSE.txt)
+[![Coverage](https://codecov.io/gh/holoviz/holoviews/branch/main/graph/badge.svg)](https://codecov.io/gh/holoviz/holoviews)
+
+HoloViews works with Python 3 on Linux, Windows, or Mac, and works
+seamlessly with [Jupyter Notebook and JupyterLab](https://jupyter.org).
+
+You can install HoloViews either with `conda` or `pip`, for more information see the [install guide](install).
+
+ conda install holoviews
+
+ pip install holoviews
+
+# Usage
+
+Once you've installed HoloViews, you can get a copy of all the examples
+shown on this website:
+
+ holoviews --install-examples
+ cd holoviews-examples
+
+Now you can launch Jupyter Notebook or JupyterLab to explore them:
+
+ jupyter notebook
+
+ jupyter lab
+
+After you have successfully installed and configured HoloViews, please
+see [Getting Started](getting_started/index).
+
+```{toctree}
+:titlesonly:
+:hidden:
+:maxdepth: 2
+
+Home
+Getting Started
+User Guide
+Gallery
+Reference Gallery
+Developer Guide
+Releases
+API
+FAQ Roadmap
+About
+```
diff --git a/doc/index.rst b/doc/index.rst
deleted file mode 100644
index fdf3210fc9..0000000000
--- a/doc/index.rst
+++ /dev/null
@@ -1,139 +0,0 @@
-.. HoloViews documentation main file
-
-.. raw:: html
-
-
-
-**Stop plotting your data - annotate your data and let it visualize itself.**
-
-.. raw:: html
-
-
-
-
-HoloViews is an `open-source `_ Python library designed to make data analysis and visualization seamless and simple. With HoloViews, you can usually express what you want to do in very few lines of code, letting you focus on what you are trying to explore and convey, not on the process of plotting.
-
-For examples, check out the thumbnails below and the other items in the `Gallery `_ of demos and apps and the `Reference Gallery `_ that shows every HoloViews component. Be sure to look at the code, not just the pictures, to appreciate how easy it is to create such plots yourself!
-
-The `Getting-Started `_ guide explains the basic concepts and how to start using HoloViews, and is the recommended way to understand how everything works.
-
-The `User Guide `_ goes more deeply into key concepts from HoloViews, when you are ready for further study.
-
-The `API `_ is the definitive guide to each HoloViews object, but the same information is available more conveniently via the ``hv.help()`` command and tab completion in the Jupyter notebook.
-
-If you have any `issues `_ or wish to `contribute code `_, you can visit our `GitHub site `_ or file a topic on the `HoloViz Discourse `_.
-
-.. raw:: html
-
-
-
-.. raw:: html
-
-
-
-
-.. raw:: html
-
-
-
-
-Installation
-------------
-
-|CondaPkg|_ |PyPI|_ |License|_ |Coverage|_
-
-
-HoloViews works with Python 3 on Linux, Windows, or Mac, and works seamlessly with `Jupyter Notebook and JupyterLab `_.
-
-The recommended way to install HoloViews is using the `conda `_ command provided by `Anaconda `_ or `Miniconda `_::
-
- conda install -c pyviz holoviews bokeh
-
-This command will install the typical packages most useful with HoloViews, though HoloViews itself
-directly depends only on `Numpy `_, `Pandas `_ and `Param `_.
-
-Additional installation and configuration options are described in the
-`user guide `_.
-
-Additional methods of installation, including different ways to use
-``pip`` can be found in the `installation guide `_.
-
-Usage
------
-
-Once you've installed HoloViews, you can get a copy of all the examples shown on this website::
-
- holoviews --install-examples
- cd holoviews-examples
-
-Now you can launch Jupyter Notebook or JupyterLab to explore them::
-
- jupyter notebook
-
- jupyter lab
-
-If you are working with a JupyterLab version <2.0 you will also need the PyViz JupyterLab
-extension::
-
- jupyter labextension install @pyviz/jupyterlab_pyviz
-
-For more details on installing and configuring HoloViews see `the installing and configuring guide `_.
-
-After you have successfully installed and configured HoloViews, please see `Getting Started `_.
-
-
-.. |PyPI| image:: https://img.shields.io/pypi/v/holoviews.svg
-.. _PyPI: https://pypi.python.org/pypi/holoviews
-
-.. |CondaPkg| image:: https://img.shields.io/conda/v/anaconda/holoviews.svg?label=conda%7Cdefaults&style=flat&colorB=4488ff
-.. _CondaPkg: https://anaconda.org/pyviz/holoviews
-
-.. |License| image:: https://img.shields.io/pypi/l/holoviews.svg
-.. _License: https://github.com/holoviz/holoviews/blob/main/LICENSE.txt
-
-.. |Coverage| image:: https://codecov.io/gh/holoviz/holoviews/branch/main/graph/badge.svg
-.. _Coverage: https://codecov.io/gh/holoviz/holoviews
-
-.. toctree::
- :titlesonly:
- :hidden:
- :maxdepth: 2
-
- Home
- Getting Started
- User Guide
- Gallery
- Reference Gallery
- Releases
- API
- FAQ
- Roadmap
- About
diff --git a/doc/install.md b/doc/install.md
new file mode 100644
index 0000000000..fd1ca54b99
--- /dev/null
+++ b/doc/install.md
@@ -0,0 +1,52 @@
+# Installing HoloViews
+
+The quickest and easiest way to get the latest version of all the
+recommended packages for working with HoloViews on Linux, Windows, or
+Mac systems is via the
+[conda](https://docs.conda.io/projects/conda/en/latest/) command
+provided by the [Anaconda](https://docs.anaconda.com/anaconda/install/)
+or [Miniconda](https://docs.conda.io/en/latest/miniconda.html)
+scientific Python distributions:
+
+ conda install -c pyviz holoviews
+
+This recommended installation includes the default
+[Matplotlib](http://matplotlib.org) plotting library backend, the more
+interactive [Bokeh](http://bokeh.pydata.org) plotting library backend,
+and the [Jupyter Notebook](http://jupyter.org).
+
+A similar set of packages can be installed using `pip`, if that command
+is available on your system:
+
+ pip install "holoviews[recommended]"
+
+`pip` also supports other installation options, including a minimal
+install of only the packages necessary to generate and manipulate
+HoloViews objects without visualization:
+
+ pip install holoviews
+
+This minimal install will install only the required packages, for HoloViews to run.
+This makes it very easy to integrate HoloViews into your workflow or as part of another project.
+
+Now that you are set up you can get a copy of all the examples shown on
+this website:
+
+ holoviews --install-examples
+ cd holoviews-examples
+
+Once you've installed HoloViews examples, you can get started by launching
+Jupyter Notebook
+
+ jupyter notebook
+
+Or JupyterLab
+
+ jupyter lab
+
+Both can be installed with pip or conda:
+
+ pip install jupyterlab
+ conda install jupyterlab
+
+For helping develop HoloViews see the [developer guide](developer_guide/index).
diff --git a/doc/install.rst b/doc/install.rst
deleted file mode 100644
index 96cb2c360f..0000000000
--- a/doc/install.rst
+++ /dev/null
@@ -1,94 +0,0 @@
-Installing HoloViews
-====================
-
-The quickest and easiest way to get the latest version of all the
-recommended packages for working with HoloViews on Linux, Windows, or
-Mac systems is via the
-`conda `_ command provided by
-the
-`Anaconda `_ or
-`Miniconda `_ scientific
-Python distributions::
-
- conda install -c pyviz holoviews
-
-This recommended installation includes the default `Matplotlib
-`_ plotting library backend, the
-more interactive `Bokeh `_ plotting library
-backend, and the `Jupyter Notebook `_.
-
-A similar set of packages can be installed using ``pip``, if that
-command is available on your system::
-
- pip install "holoviews[recommended]"
-
-``pip`` also supports other installation options, including a minimal
-install of only the packages necessary to generate and manipulate
-HoloViews objects without visualization::
-
- pip install holoviews
-
-This minimal install includes only three required libraries `Param
-`_, `Numpy `_ and,
-`pandas `_, which makes it very easy to
-integrate HoloViews into your workflow or as part of another project.
-
-Alternatively, you can ask ``pip`` to install a larger set of
-packages that provide additional functionality in HoloViews::
-
- pip install "holoviews[examples]"
-
-This option installs all the required and recommended packages, in
-addition to all all libraries required for running all the examples.
-
-Lastly, to get *everything* including the test dependencies, you can use::
-
- pip install "holoviews[all]"
-
-Between releases, development snapshots are made available on conda and
-can be installed using::
-
- conda install -c pyviz/label/dev holoviews
-
-To get the very latest development version using ``pip``, you can use::
-
- pip install git+https://github.com/holoviz/holoviews.git
-
-The alternative approach using git archive (e.g ``pip install
-https://github.com/holoviz/holoviews/archive/main.zip``) is *not*
-recommended as you will have incomplete version strings.
-
-Anyone interested in following development can get the very latest
-version by cloning the git repository::
-
- git clone https://github.com/holoviz/holoviews.git
-
-To make this code available for import you then need to run::
-
- python setup.py develop
-
-And you can then update holoviews at any time to the latest version by
-running::
-
- git pull
-
-Once you've installed HoloViews, you can get started by launching
-Jupyter Notebook::
-
- jupyter notebook
-
-To work with JupyterLab>2.0 you won't need to install anything else,
-however for older versions you should also install the PyViz
-extension::
-
- jupyter labextension install @pyviz/jupyterlab_pyviz
-
-Once you have installed JupyterLab and the extension launch it with::
-
- jupyter lab
-
-Now that you are set up you can get a copy of all the examples shown
-on this website::
-
- holoviews --install-examples
- cd holoviews-examples
diff --git a/CHANGELOG.md b/doc/releases.md
similarity index 99%
rename from CHANGELOG.md
rename to doc/releases.md
index e42d6f75da..f9ccd401f1 100644
--- a/CHANGELOG.md
+++ b/doc/releases.md
@@ -1,4 +1,8 @@
-# Version 1.18.3
+# Releases
+
+## Version 1.18
+
+### Version 1.18.3
**February 12, 2024**
@@ -11,7 +15,7 @@ Bug fixes:
- Fix link selection for empty Layout ([#6110](https://github.com/holoviz/holoviews/pull/6110))
- Don't pin notebook in conda recipe for pyviz channel ([#6108](https://github.com/holoviz/holoviews/pull/6108))
-# Version 1.18.2
+### Version 1.18.2
**February 5, 2024**
@@ -66,7 +70,7 @@ Maintenance:
- Skip Deploying_Bokeh_Apps.ipynb on Windows ([#6070](https://github.com/holoviz/holoviews/pull/6070))
- Fix failing Windows tests ([#6087](https://github.com/holoviz/holoviews/pull/6087))
-# Version 1.18.1
+### Version 1.18.1
**November 8, 2023**
@@ -89,7 +93,7 @@ Maintenance:
- General maintenance ([#5955](https://github.com/holoviz/holoviews/pull/5955))
-# Version 1.18.0
+### Version 1.18.0
**October 18, 2023**
@@ -150,7 +154,9 @@ Maintenance:
- Add sorting of imports ([#5937](https://github.com/holoviz/holoviews/pull/5937))
- Enable Bugbear lint ([#5861](https://github.com/holoviz/holoviews/pull/5861))
-# Version 1.17.1
+## Version 1.17
+
+### Version 1.17.1
**August 16, 2023**
@@ -181,7 +187,7 @@ Maintenance:
- Update Ruff in pre-commit and report panel communication in `hv.show_versions` ([#5853](https://github.com/holoviz/holoviews/pull/5853))
- Cleanup imports ([#5846](https://github.com/holoviz/holoviews/pull/5846))
-# Version 1.17.0
+### Version 1.17.0
**July 24, 2023**
@@ -242,7 +248,9 @@ Maintenance:
- Update pre-commit and lint ([#5747](https://github.com/holoviz/holoviews/pull/5747), [#5768](https://github.com/holoviz/holoviews/pull/5768), [#5777](https://github.com/holoviz/holoviews/pull/5777))
- Setup infrastructure for UI tests and add first linked streams tests ([#5764](https://github.com/holoviz/holoviews/pull/5764))
-# Version 1.16.2
+## Version 1.16
+
+### Version 1.16.2
**June 8, 2023**
@@ -262,7 +270,7 @@ Maintenance:
- Fix failing tests ([#5742](https://github.com/holoviz/holoviews/pull/5742))
- Misc. mainteance ([#5717](https://github.com/holoviz/holoviews/pull/5717))
-# Version 1.16.1
+### Version 1.16.1
**June 2, 2023**
@@ -285,7 +293,7 @@ Documentation:
- Upgrade to latest `nbsite` and `pydata-sphinx-theme` ([#5724](https://github.com/holoviz/holoviews/pull/5724), [#5735](https://github.com/holoviz/holoviews/pull/5735))
-# Version 1.16.0
+### Version 1.16.0
**May 9, 2023**
@@ -355,7 +363,9 @@ Removals:
- Remove deprecated tile sources ([#5654](https://github.com/holoviz/holoviews/pull/5654))
- Removed support for `apply_groups` for old option groups signature ([#5497](https://github.com/holoviz/holoviews/pull/5497))
-# Version 1.15.4
+## Version 1.15
+
+### Version 1.15.4
**January 16, 2023**
@@ -401,7 +411,7 @@ Maintenance:
- Update binder link and dependency pinning ([#5583](https://github.com/holoviz/holoviews/pull/5583))
- Update copyright to only contain start year ([#5580](https://github.com/holoviz/holoviews/pull/5580))
-# Version 1.15.3
+### Version 1.15.3
**December 6, 2022**
@@ -428,7 +438,7 @@ Documentation:
- Fixes to release notes and CHANGELOG
([#5506](https://github.com/holoviz/holoviews/pull/5506))
-# Version 1.15.2
+### Version 1.15.2
**November 3, 2022**
@@ -466,7 +476,7 @@ be deprecated in future.
- Upgrade warning for invalid dataframe column names
([#5472](https://github.com/holoviz/holoviews/pull/5472))
-# Version 1.15.1
+### Version 1.15.1
**October 4, 2022**
@@ -547,7 +557,7 @@ issuing a `DeprecationWarning` that should not be visible to users.
- Issue DeprecationWarning for invalid DataFrame column types
([#5457](https://github.com/holoviz/holoviews/pull/5457))
-# Version 1.15.0
+### Version 1.15.0
**July 6, 2022**
@@ -712,7 +722,9 @@ infrastructure across too many PRs to list here.
- Test updates following release of datashader 0.14.1
([#5344](https://github.com/holoviz/holoviews/pull/5344))
-# Version 1.14.9
+## Version 1.14
+
+### Version 1.14.9
**May 6, 2022**
@@ -760,7 +772,7 @@ Documentation:
([#5267](https://github.com/holoviz/holoviews/pull/5267),
[#5290](https://github.com/holoviz/holoviews/pull/5290))
-# Version 1.14.8
+### Version 1.14.8
**February 15, 2022**
@@ -794,7 +806,7 @@ Bug fixes:
[#5201](https://github.com/holoviz/holoviews/pull/5201),
[#5206](https://github.com/holoviz/holoviews/pull/5206))
-# Version 1.14.7
+### Version 1.14.7
**December 16, 2021**
@@ -857,7 +869,7 @@ Bug fixes:
- Switch to the Pydata Sphinx theme
([#5163](https://github.com/holoviz/holoviews/pull/5163))
-# Version 1.14.6
+### Version 1.14.6
**September 16, 2021**
@@ -888,7 +900,7 @@ Bug fixes:
- Apply hover postprocessor on updates
([#5039](https://github.com/holoviz/holoviews/pull/5039))
-# Version 1.14.5
+### Version 1.14.5
**July 16, 2021**
@@ -907,7 +919,7 @@ Bug fixes:
[#5001](https://github.com/holoviz/holoviews/pull/5001),
[#5005](https://github.com/holoviz/holoviews/pull/5005))
-# Version 1.14.4
+### Version 1.14.4
**May 18, 2021**
@@ -965,7 +977,7 @@ unless `hv.config.raise_deprecated_tilesource_exception` is set to
available. Attempting to use these tile sources will result in a
deprecation warning.
-# Version 1.14.3
+### Version 1.14.3
**April 8, 2021**
@@ -996,7 +1008,7 @@ Compatibility:
- Support matplotlib versions >=3.4
([#4878](https://github.com/holoviz/holoviews/pull/4878))
-# Version 1.14.2
+### Version 1.14.2
**March 2, 2021**
@@ -1066,7 +1078,7 @@ Documentation:
[#4844](https://github.com/holoviz/holoviews/pull/4844),
[#4811](https://github.com/holoviz/holoviews/pull/4811))
-# Version 1.14.1
+### Version 1.14.1
**December 28, 2020**
@@ -1091,7 +1103,7 @@ Documentation:
- Warn about disabled interactive features on website
([#4762](https://github.com/holoviz/holoviews/pull/4762))
-# Version 1.14.0
+### Version 1.14.0
**December 1, 2020**
@@ -1197,7 +1209,9 @@ Compatibility:
set to 'kbc_r' for consistency and can be set back to the old value of
'RdYlBu_r' via `hv.config.default_heatmap_cmap`.
-# Version 1.13.5
+## Version 1.13
+
+### Version 1.13.5
**October 23, 2020**
@@ -1240,7 +1254,7 @@ Documentation:
- Various documentation fixes
([#4628](https://github.com/holoviz/holoviews/pull/4628))
-# Version 1.13.4
+### Version 1.13.4
**September 8, 2020**
@@ -1312,7 +1326,7 @@ Enhancements:
- Allow rendering to pgf in matplotlib
([#4577](https://github.com/holoviz/holoviews/pull/4577))
-# Version 1.13.3
+### Version 1.13.3
**June 23, 2020**
@@ -1382,7 +1396,7 @@ Bug fixes:
- Handle missing categories on split Violin plot
([#4482](https://github.com/holoviz/holoviews/pull/4482))
-# Version 1.13.2
+### Version 1.13.2
**April 2, 2020**
@@ -1409,7 +1423,7 @@ Bug fixes:
- Fix handling of document in server mode
([#4355](https://github.com/holoviz/holoviews/pull/4355))
-# Version 1.13.1
+### Version 1.13.1
**March 25, 2020**
@@ -1455,7 +1469,7 @@ Documentation:
- Update API reference manual
([#4316](https://github.com/holoviz/holoviews/pull/4316))
-# Version 1.13.0
+### Version 1.13.0
**March 20, 2020**
@@ -1605,7 +1619,9 @@ Migration notes:
- `hv.output` `filename` argument is deprecated; use `hv.save` instead
([#3985](https://github.com/holoviz/holoviews/pull/3985))
-# Version 1.12.7
+## Version 1.12
+
+### Version 1.12.7
**November 22, 2019**
@@ -1624,7 +1640,7 @@ Bug fixes:
- Fixed shared_axes/axiswise regression
([#4097](https://github.com/holoviz/holoviews/pull/4097))
-# Version 1.12.6
+### Version 1.12.6
**October 8, 2019**
@@ -1690,7 +1706,7 @@ Compatibility:
- Ensure compatibility with new legend options in bokeh 1.4.0
([#4036](https://github.com/pyviz/holoviews/issues/4036))
-# Version 1.12.5
+### Version 1.12.5
**August 14, 2019**
@@ -1705,7 +1721,7 @@ Compatibility:
- Fix for rendering Scatter3D with matplotlib 3.1
([#3898](https://github.com/pyviz/holoviews/issues/3898))
-# Version 1.12.4
+### Version 1.12.4
**August 4, 2019**
@@ -1774,7 +1790,7 @@ Backwards incompatible changes:
box-whisker plots was fixed resulting in different results going
forward.
-# Version 1.12.3
+### Version 1.12.3
**May 20, 2019**
@@ -1809,7 +1825,7 @@ Bug fixes:
- Ensure that param streams handle subobjects
([#3728](https://github.com/pyviz/holoviews/pull/3728))
-# Version 1.12.2
+### Version 1.12.2
**May 1, 2019**
@@ -1856,7 +1872,7 @@ Backward compatibility:
- Added color cycles on Violin and BoxWhisker elements due to earlier
regression ([#3592](https://github.com/pyviz/holoviews/pull/3592))
-# Version 1.12.1
+### Version 1.12.1
**April 10, 2019**
@@ -1868,7 +1884,7 @@ Enhancements:
- Add support for passing in parameter instances as streams
([#3616](https://github.com/pyviz/holoviews/pull/3616))
-# Version 1.12.0
+### Version 1.12.0
**April 2, 2019**
@@ -1920,7 +1936,9 @@ Bug fixes:
[#3585](https://github.com/pyviz/holoviews/pull/3585),
[#3594](https://github.com/pyviz/holoviews/pull/3594))
-# Version 1.11.3
+## Version 1.11
+
+### Version 1.11.3
**February 25, 2019**
@@ -1965,7 +1983,7 @@ Enhancements:
- Added Tiles element from GeoViews
([#3515](https://github.com/pyviz/holoviews/pull/3515))
-# Version 1.11.2
+### Version 1.11.2
**January 28, 2019**
@@ -1990,7 +2008,7 @@ Enhancements:
- Improvements for handling graph attributes in Graph.from_networkx
([#3432](https://github.com/pyviz/holoviews/pull/3432))
-# Version 1.11.1
+### Version 1.11.1
**January 17, 2019**
@@ -2032,7 +2050,7 @@ Documentation:
([#3364]((https://github.com/pyviz/holoviews/pull/3364),
[#3367](<(https://github.com/pyviz/holoviews/pull/3367)>)
-# Version 1.11.0
+### Version 1.11.0
**December 24, 2018**
@@ -2134,7 +2152,9 @@ Deprecations:
marked for deprecation
([#3128](https://github.com/pyviz/holoviews/pull/3128))
-# Version 1.10.8
+## Version 1.10
+
+### Version 1.10.8
**October 29, 2018**
@@ -2209,7 +2229,7 @@ Documentation:
[#2959](https://github.com/pyviz/holoviews/pull/2959),
[#3025](https://github.com/pyviz/holoviews/pull/3025))
-# Version 1.10.7
+### Version 1.10.7
**July 8, 2018**
@@ -2228,7 +2248,7 @@ Fixes:
- Fixed ticks on log Colorbar if low value <= 0
([#2865](https://github.com/pyviz/holoviews/pull/2865))
-# Version 1.10.6
+### Version 1.10.6
**June 29, 2018**
@@ -2260,7 +2280,7 @@ Fixes:
zero range ([#2829](https://github.com/pyviz/holoviews/pull/2829),
[#2842](https://github.com/pyviz/holoviews/pull/2842))
-# Version 1.10.5
+### Version 1.10.5
**June 5, 2018**
@@ -2305,7 +2325,7 @@ Compatibility:
[#2725](https://github.com/pyviz/holoviews/pull/2725),
[#2767](https://github.com/pyviz/holoviews/pull/2767))
-# Version 1.10.4
+### Version 1.10.4
**May 14, 2018**
@@ -2326,7 +2346,7 @@ Fixes:
- Fixed bug slicing xarray with tuples
([#2674](https://github.com/pyviz/holoviews/pull/2674))
-# Version 1.10.3
+### Version 1.10.3
**May 8, 2018**
@@ -2361,7 +2381,7 @@ API:
keys for consistency
([#2650](https://github.com/pyviz/holoviews/issues/2650))
-# Version 1.10.2
+### Version 1.10.2
**April 30, 2018**
@@ -2394,7 +2414,7 @@ Deprecations:
matplotlib `fontsize` option are deprecated
([#2411](https://github.com/pyviz/holoviews/issues/2411))
-# Version 1.10.1
+### Version 1.10.1
**April 20, 2018**
@@ -2412,7 +2432,7 @@ Fixes:
- Fixed Selection1D stream on bokeh server after changes in bokeh
0.12.15 ([#2586](https://github.com/pyviz/holoviews/pull/2586))
-# Version 1.10.0
+### Version 1.10.0
**April 17, 2018**
@@ -2551,7 +2571,9 @@ Changes affecting backwards compatibility:
single column is supplied no integer index column is added
automatically ([#2522](https://github.com/pyviz/holoviews/pull/2522))
-# Version 1.9.5
+## Version 1.9
+
+### Version 1.9.5
**March 2, 2018**
@@ -2572,7 +2594,7 @@ Fixes:
- Fixed bug streaming data containing datetimes using bokeh>=0.12.14
([\#2383](https://github.com/pyviz/holoviews/pull/2383))
-# Version 1.9.4
+### Version 1.9.4
**February 16, 2018**
@@ -2587,7 +2609,7 @@ This release contains a small number of important bug fixes:
- Fixed issue when using datetimes with datashader when processing
ranges ([\#2344](https://github.com/pyviz/holoviews/pull/2344))
-# Version 1.9.3
+### Version 1.9.3
**February 11, 2018**
@@ -2642,7 +2664,7 @@ API Changes:
- Renamed `Trisurface` to `TriSurface` for future consistency
([\#2219](https://github.com/pyviz/holoviews/pull/2219))
-# Version 1.9.2
+### Version 1.9.2
**December 11, 2017**
@@ -2676,7 +2698,7 @@ Fixes:
- Fixed bug attaching streams to (Nd)Overlay types
([\#2194](https://github.com/pyviz/holoviews/pull/2194))
-# Version 1.9.1
+### Version 1.9.1
**November 13, 2017**
@@ -2702,7 +2724,7 @@ Fixes:
and bivariate_kde operations
([\#2103](https://github.com/pyviz/holoviews/pull/2103))
-# Version 1.9.0
+### Version 1.9.0
**November 3, 2017**
@@ -2788,7 +2810,9 @@ Changes affecting backwards compatibility:
generic value dimension and customizable label
([\#1836](https://github.com/pyviz/holoviews/pull/1836))
-# Version 1.8.4
+## Version 1.8
+
+### Version 1.8.4
**September 13, 2017**
@@ -2814,7 +2838,7 @@ Fixes:
- Fixes for inverting Image/RGB/Raster axes in Bokeh.
([\#1872](https://github.com/pyviz/holoviews/pull/1872))
-# Version 1.8.3
+### Version 1.8.3
**August 21, 2017**
@@ -2841,7 +2865,7 @@ Fixes:
([\#1664](https://github.com/pyviz/holoviews/pull/1664),
[\#1796](https://github.com/pyviz/holoviews/pull/1796))
-# Version 1.8.2
+### Version 1.8.2
**August 4, 2017**
@@ -2868,7 +2892,7 @@ Fixes:
[\#1739](https://github.com/pyviz/holoviews/pull/1739),
[\#1711](https://github.com/pyviz/holoviews/pull/1711))
-# Version 1.8.1
+### Version 1.8.1
**July 7, 2017**
@@ -2909,7 +2933,7 @@ Fixes:
[\#1692](https://github.com/pyviz/holoviews/pull/1692),
[\#1658](https://github.com/pyviz/holoviews/pull/1658))
-# Version 1.8.0
+### Version 1.8.0
**June 29, 2017**
@@ -3030,7 +3054,9 @@ Changes affecting backwards compatibility:
instance, `hv.extension('bokeh', config=dict(style_17=True))`
([\#1518](https://github.com/pyviz/holoviews/pull/1518))
-# Version 1.7.0
+## Version 1.7
+
+### Version 1.7.0
**April 25, 2017**
@@ -3405,7 +3431,9 @@ Changes affecting backwards compatibility:
in 1.6.2 (PR [\#826](https://github.com/pyviz/holoviews/pull/826)),
now enabled by default.
-# Version 1.6.2
+## Version 1.6
+
+### Version 1.6.2
**August 23, 2016**
@@ -3440,7 +3468,7 @@ LayoutPlot.v17_layout_format = True
LayoutPlot.vspace = 0.3
```
-# Version 1.6.1
+### Version 1.6.1
**July 27, 2016**
@@ -3460,7 +3488,7 @@ the grid data interfaces and improvements to the options system.
and transposed correctly (PR
[\#794](https://github.com/pyviz/holoviews/pull/794)).
-# Version 1.6
+### Version 1.6.0
**July 14, 2016**
@@ -3492,7 +3520,9 @@ Features and improvements:
Dimension value_format (PR
[\#728](https://github.com/pyviz/holoviews/pull/728)).
-# Version 1.5
+## Version 1.5
+
+### Version 1.5.0
**May 12, 2016**
@@ -3547,7 +3577,9 @@ Backwards compatibility:
- Renamed `Columns` type to `Dataset` (PR
[\#620](https://github.com/pyviz/holoviews/issues/620)).
-# Version 1.4.3
+## Version 1.4
+
+### Version 1.4.3
**February 11, 2016**
@@ -3587,7 +3619,7 @@ Backwards compatibility:
- Renamed the DynamicMap mode `closed` to `bounded` ([PR
\#477](https://github.com/pyviz/holoviews/pull/485))
-# Version 1.4.2
+### Version 1.4.2
**February 7, 2016**
@@ -3633,7 +3665,7 @@ Fixes and improvements:
- Compatibility with the latest Bokeh 0.11 release ([PR
\#393](https://github.com/pyviz/holoviews/pull/393))
-# Version 1.4.1
+### Version 1.4.1
**December 22, 2015**
@@ -3681,7 +3713,7 @@ Notable bug fixes:
labels and values ([PR
\#376](https://github.com/pyviz/holoviews/pull/376)).
-# Version 1.4.0
+### Version 1.4.0
**December 4, 2015**
@@ -3755,7 +3787,9 @@ API Changes:
- DFrame conversion interface deprecated in favor of Columns
pandas interface.
-# Version 1.3.2
+## Version 1.3
+
+### Version 1.3.2
**July 6, 2015**
@@ -3773,7 +3807,7 @@ Bug fixes:
- Ensuring that underscore.js is loaded in widgets (f2f6378).
- Fixed Python3 issue in Overlay.get (8ceabe3).
-# Version 1.3.1
+### Version 1.3.1
**July 1, 2015**
@@ -3796,7 +3830,7 @@ Bug fixes:
- Fix for multiple and animated colorbars (5e1e4b5).
- Fix to Chart slices starting or ending at zero (edd0039).
-# Version 1.3.0
+### Version 1.3.0
**June 27, 2015**
@@ -3861,7 +3895,9 @@ API Changes
should be customized instead. There is no longer a need to call the
deprecated `Store.register_plots` method.
-# Version 1.2.0
+## Version 1.2
+
+### Version 1.2.0
**May 27, 2015**
@@ -3923,7 +3959,9 @@ Important bug fixes:
- Fixed plot ordering of overlaid elements across a
`HoloMap` (c4f1685)
-# Version 1.1.0
+## Version 1.1
+
+### Version 1.1.0
**April 15, 2015**
@@ -3950,7 +3988,9 @@ API changes (not backward compatible):
In addition to the above improvements, many miscellaneous bug fixes were
made.
-# Version 1.0.1
+## Version 1.0
+
+### Version 1.0.1
**March 26, 2015**
@@ -3972,7 +4012,7 @@ Highlights:
- Miscellaneous bug fixes, including Python 3
compatibility improvements.
-# Version 1.0.0
+### Version 1.0.0
**March 16, 2015**
diff --git a/doc/releases.rst b/doc/releases.rst
deleted file mode 100644
index 216b89a563..0000000000
--- a/doc/releases.rst
+++ /dev/null
@@ -1,4510 +0,0 @@
-Releases
-========
-
-Version 1.18
-~~~~~~~~~~~~
-
-Version 1.18.3
-**************
-
-**February 12, 2024**
-
-This micro release includes bug fixes.
-
-Bug fixes:
-
-- Fix BoundsX and BoundsY regression
- (`#6099 `__)
-- Fix rasterize regression
- (`#6102 `__)
-- Fix link selection for empty Layout
- (`#6110 `__)
-- Don’t pin notebook in conda recipe for pyviz channel
- (`#6108 `__)
-
-
-Version 1.18.2
-**************
-
-**February 5, 2024**
-
-This micro release includes a number of bug fixes and documentation
-updates, as well as compatibility updates for xarray 2023.12 and Pandas
-2.2. Many thanks to the new contributors @junietoc, @JulianGiles, and
-@magic-lantern, as well as the returning contributors @ianthomas23,
-@maximlt, @TheoMathurin, @philippjfr, @ahuang11, and @Hoxbro.
-
-Enhancements:
-
-- Update contour line calculations to use ContourPy’s
- ``LineType.ChunkCombinedNan``
- (`#5985 `__)
-- Use sys.executable for ``check_output``
- (`#5983 `__)
-- Updates to ``show_versions``
- (`#6072 `__,
- `#6081 `__)
-
-Bug fixes:
-
-- Support ``color_key`` in ``datashade`` when intermediate step is an
- ``ImageStack``
- (`#5994 `__)
-- Fix hist on overlay
- (`#5995 `__)
-- Set proper context before triggering streams
- (`#6000 `__)
-- Support partial bound function
- (`#6009 `__)
-- Add ``norm`` in ``init_artists`` in holoviews/plotting/mpl/raster.py
- (`#6029 `__)
-- Fix linking elements that are transformed by a Compositor
- (`#6003 `__)
-- Add datetime hover information for selector
- (`#6023 `__,
- `#6039 `__)
-- Only evaluate ``rx`` if it is a Reactive Expression
- (`#6014 `__)
-- Ensure partial methods can be used as dmap callables
- (`#6063 `__)
-- Del frame after stack level is found in ``deprecated``
- (`#6085 `__)
-
-Compatibility:
-
-- Compatibility updates with xarray 2023.12
- (`#6026 `__)
-- Add extra check to detect if we are in jupyterlite
- (`#6007 `__)
-- Compatibility updates with Pandas 2.2
- (`#6074 `__,
- `#6078 `__)
-- Add Comm ``on_open`` handler to initialize the server comm
- (`#6076 `__)
-
-Documentation:
-
-- Fix docs (`#5996 `__)
-- Fix Param usage in the Plot and Renderers guide
- (`#6001 `__)
-- Fixing URLs to bokeh project
- (`#6005 `__)
-- Fix to broken urls in example gallery pages
- (`#6038 `__)
-- Replace Google Analytics with GoatCounter
- (`#6048 `__)
-- Add downloads badges
- (`#6088 `__)
-
-Maintenance:
-
-- Change to pytest-rerunfailures
- (`#5984 `__)
-- Holoviews maintenance
- (`#5987 `__)
-- Add ``log_cli_level = "INFO"`` to pytest
- (`#5989 `__)
-- Add shell pre-commit hook
- (`#5991 `__)
-- Enable Bugbear 904
- (`#5992 `__)
-- Part 1, modernize test suite
- (`#5954 `__)
-- Enforce labels
- (`#5996 `__)
-- Add lower pin to scipy
- (`#6032 `__)
-- Skip Deploying_Bokeh_Apps.ipynb on Windows
- (`#6070 `__)
-- Fix failing Windows tests
- (`#6087 `__)
-
-
-Version 1.18.1
-**************
-
-**November 8, 2023**
-
-This release contains a small number of bug fixes and compatibility
-updates — many thanks to @philippjfr and @Hoxbro for their
-contributions.
-
-Bug fixes:
-
-- Account for overlaid elements when using ``subcoordinates_y``
- (`#5950 `__)
-- Fix ``groupby`` option for vectorized annotations
- (`#5956 `__)
-- Fix and improvements to ``ImageStack``
- (`#5961 `__)
-- Do not allow partial matches when updating ``OverlayPlot``
- (`#5962 `__)
-- Always ravel array in ``unique_array``
- (`#5969 `__)
-
-Compatibility:
-
-- Update Stamen maps with new URL
- (`#5967 `__)
-- Compatibility updates for Numpy 2.0
- (`#5979 `__)
-
-Maintenance:
-
-- General maintenance
- (`#5955 `__)
-
-Version 1.18.0
-**************
-
-**October 18, 2023**
-
-This release includes new features, improvements, and bug fixes. Among
-these are the new elements. First is the ``ImageStack`` element allows
-you to easily visualize a 3D array, while the ``VLines``, ``HLines``,
-``VSpans``, and ``HSpans`` elements allow you to visualize vertical and
-horizontal lines and spans easily. In addition, this release includes
-support for subcoordinate systems in the y-axis and various other
-enhancements and bug fixes. This release adds support for the newest
-Python 3.12 and Bokeh 3.3 and drops support for Python 3.8 and Bokeh 2.
-
-Many thanks to the new contributors @MeggyCal, along with our returning
-contributors @ahuang11, @ianthomas23, @jlstevens, @maximlt, @philippjfr,
-and @Hoxbro.
-
-New features:
-
-- Implementation of ``ImageStack``
- (`#5751 `__,
- `#5945 `__)
-- Adding vectorized ``VLines``, ``HLines``, ``VSpans``, and ``HSpans``
- elements (`#5845 `__,
- `#5911 `__,
- `#5940 `__)
-- Implement support for subcoordinate systems in the y-axis
- (`#5840 `__)
-
-Enhancements:
-
-- Cycle through ``text_color`` when overlaying Labels
- (`#5888 `__)
-- Drop requirements for ``OrderedDict``
- (`#5867 `__,
- `#5890 `__,
- `#5925 `__)
-- Allow to link to an ``Overlay``
- (`#5881 `__)
-- Use contourpy for contour calculations
- (`#5910 `__)
-- Use browser information to set ``pixel_density`` in
- ``ResampleOperation2D``
- (`#5947 `__)
-- Avoid bounce back of events for ``Range{X,Y,XY}`` streams
- (`#5946 `__)
-
-Bug fixes:
-
-- Fix overlaying labels in Sankey diagram
- (`#5864 `__)
-- Ensure the ``PlotSize`` stream works with undefined width/height
- (`#5868 `__)
-- Fix test when only ``python3`` command is available
- (`#5874 `__)
-- Try and except ``get_extents`` without the ``dimension`` argument and
- add kwargs to all ``get_extents``
- (`#5872 `__)
-- Enable ``Mathjax`` with ``enable_mathjax``
- (`#5904 `__)
-- Fix ``histogram`` operation on Ibis data
- (`#5929 `__)
-- Raise exceptions in ``compare_dataset``
- (`#5932 `__)
-- Don’t overlap objects in overlaid plot
- (`#5942 `__)
-
-Compatibility:
-
-- Param 2.0 support
- (`#5865 `__,
- `#5897 `__,
- `#5906 `__,
- `#5918 `__)
-- Pandas 2.1 support
- (`#5877 `__,
- `#5898 `__,
- `#5880 `__)
-- Numpy 1.25 support
- (`#5870 `__)
-- Replace ``np.NaN`` with ``np.nan`` for Numpy 2.0
- (`#5938 `__)
-- Bokeh 3.3 support
- (`#5873 `__,
- `#5923 `__,
- `#5935 `__)
-- Dropping support for Bokeh 2
- (`#5891 `__)
-- Python 3.12 support
- (`#5909 `__)
-- Dropping support for Python 3.8
- (`#5936 `__)
-- Matplotlib 3.8 compatibility
- (`#5910 `__,
- `#5924 `__)
-- Remove deprecations functions
- (`#5915 `__)
-
-Documentation:
-
-- Add *Linking Bokeh plots* guide to the table of contents
- (`#5900 `__)
-
-Maintenance:
-
-- Remove warnings
- (`#5854 `__,
- `#5894 `__)
-- Add output of pre-commit hook in summary and add environment artifact
- (`#5905 `__)
-- Improvements to test CI
- (`#5917 `__,
- `#5892 `__)
-- General maintenance update
- (`#5889 `__,
- `#5907 `__,
- `#5934 `__,
- `#5943 `__)
-- Update build of conda package
- (`#5921 `__,
- `#5922 `__)
-- Add sorting of imports
- (`#5937 `__)
-- Enable Bugbear lint
- (`#5861 `__)
-
-
-Version 1.17
-~~~~~~~~~~~~
-
-Version 1.17.1
-**************
-
-**August 16, 2023**
-
-This release contains a small number of important bug fixes and
-regressions — many thanks to @ianthomas23, @maximlt, @philippjfr, and
-@Hoxbro for their contributions.
-
-Enhancements:
-
-- Improve support for ``hv.NdOverlay`` and ``hv.Overlay`` in
- downsample1d
- (`#5856 `__)
-- Improve legend support for ``hv.Layout`` and add documentation for
- ``sync_legends`` and ``show_legends``
- (`#5852 `__)
-
-Bug fixes:
-
-- ``RangeToolLink`` now correctly reset to the predefined ``boundsx``
- and ``boundsy`` values
- (`#5848 `__)
-- Fix regressions with Bokeh’s axis
- (`#5838 `__, `#5850 `__, `#5851 `__)
-
-Compatibility:
-
-- Pin Param version for Bokeh 2
- (`#5844 `__)
-- Explicitly clear Matplotlib figure to remove warning about
- auto-removal of overlapping axes
- (`#5857 `__)
-
-Documentation:
-
-- Set ``autohide`` example to ``True`` as in the hook
- (`#5832 `__)
-
-Maintenance:
-
-- Add `OpenCollective `__ sponsor
- link on the repo page
- (`#5839 `__)
-- Update Ruff in pre-commit and report panel communication in
- ``hv.show_versions``
- (`#5853 `__)
-- Cleanup imports
- (`#5846 `__)
-
-
-Version 1.17.0
-**************
-
-**July 24, 2023**
-
-This release brings one of the most requested features - interactive
-twin-axis support! Another feature added in this release is the ability
-to easily set custom options on plot components with ``backend_opts``,
-making it much easier to customize your plots. Datashaders ``where`` and
-``summary`` aggregators are now supported, and ``rasterize`` now has a
-``selector`` option, making it easy to get extra information about your
-rasterized data. Lastly, Bokeh figures with the same labels will
-synchronize muteness or visibility across different figures.
-
-In addition, this release includes several enhancements and bug fixes.
-
-Many thanks to the new contributors @alfredocarella and @RaulPL, as well
-as the returning contributors @ahuang11, @droumis, @jbednar, @jlstevens,
-@maximlt, @philippjfr, @TheoMathurin and @Hoxbro.
-
-New features:
-
-- Multi-yaxis support in the Bokeh backend
- (`#5621 `__, `#5826 `__, `#5827 `__)
-- Allow modifying the underlying Bokeh or Matplotlib figure, axes,
- etc. using ``backend_opts``
- (`#4463 `__)
-- Support Datashaders ``where`` and ``summary`` aggregators and add
- ``selector`` option to ``rasterize`` enabling instant hover
- inspection of value dimensions
- (`#5805 `__)
-- Synchronize muteness or visibility across Bokeh figures to support
- linked legends
- (`#5763 `__)
-
-Enhancements:
-
-- Add option for initial ranges to RangeToolLink
- (`#5800 `__)
-- Allow resample’s ``pixel_ratio`` to go below 1
- (`#5813 `__,
- `#5817 `__) Add the
- ability for \`VectorField`\` to instantiate from UV coordinates
- (`#5797 `__)
-- Handle the ``nodata`` option for rasterized RGB image
- (`#5774 `__)
-
-Bug fixes:
-
-- Fix bins option in the autompg_histogram demo
- (`#5750 `__)
-- Fix 0pt bug in safari
- (`#5755 `__)
-- Disable pan if ``active_tools=[]``
- (`#5754 `__)
-- Better handling of inputs to ``rasterize.instance()``
- (`#5767 `__,
- `#5811 `__)
-- Fix class variable being used as instance ``vdims`` in ``hv.RGB``
- (`#5773 `__,
- `#5775 `__)
-- Improve notebook detection in VSCode and Google Colab
- (`#5792 `__)
-- Don’t warn when running ``rasterize`` in VSCode
- (`#5780 `__)
-- Add ``__init__`` to ``hv.Output`` to not overwrite its parent
- signature
- (`#5799 `__)
-- Fix ``XArrayInterface`` crashing when input is an empty array
- (`#5809 `__)
-- Avoid setting ``batched`` before the class is initialized
- (`#5814 `__)
-- Fix aspect handling when plot size is still unknown
- (`#5808 `__)
-- Update callbacks to use Bokeh’s ``quad`` instead of ``quad``
- (`#5760 `__)
-- Update ``hv.Image``/``hv.RGB`` ``invert_{x,y}axis`` to work with
- Bokeh 3 (`#5796 `__)
-- ``strip_magics`` should also strip IPython line magic
- (`#5794 `__)
-- Fix ``HoloMap.collapse`` for ``(Nd)Overlay``
- (`#5825 `__)
-
-Compatibility:
-
-- Implement HEP1 - Drop support for Python 3.7
- (`#5695 `__)
-- Replace deprecated ``np.product`` with ``np.prod``
- (`#5787 `__)
-- Update ``FileArchive`` repr for Param 2.0
- (`#5791 `__)
-- Deprecate functionality
- (`#5776 `__)
-
-Documentation:
-
-- Fix typo in Getting Started section text
- (`#5759 `__)
-- Add sep keyword to ``pd.read_csv`` in documentation page
- (`#5798 `__)
-
-Maintenance:
-
-- General maintenance
- (`#5758 `__,
- `#5783 `__,
- `#5802 `__,
- `#5804 `__,
- `#5806 `__,
- `#5819 `__)
-- Correctly check the version for deprecation
- (`#5772 `__)
-- Update pre-commit and lint
- (`#5747 `__,
- `#5768 `__,
- `#5777 `__)
-- Setup infrastructure for UI tests and add first linked streams tests
- (`#5764 `__)
-
-
-Version 1.16
-~~~~~~~~~~~~
-
-Version 1.16.2
-**************
-
-**June 8, 2023**
-
-This release includes a breaking change as notebooks will no longer be
-inlining as default. This change will reduce the size of the notebook
-files and, more importantly, address an upstream issue in Jupyter where
-running ``hv.extension`` would give an error when used in a notebook.
-
-Critical bug fixes and compatibility:
-
-- Correctly set ``inline=False`` when running ``hv.extension`` in a
- Jupyter Notebook
- (`#5748 `__)
-- Adding more Param 2 support
- (`#5717 `__)
-
-Enhancements:
-
-- Speed up import time of Holoviews
- (`#5719 `__)
-
-Maintenance:
-
-- Fix failing tests
- (`#5742 `__)
-- Misc. mainteance
- (`#5717 `__)
-
-
-Version 1.16.1
-**************
-
-**June 2, 2023**
-
-This release contains a small number of important bug fixes and
-enhancements. Many thanks to @philippjfr and @Hoxbro.
-
-This release includes a breaking change as notebooks will no longer be
-inlining as default. This change will reduce the size of the notebook
-files and, more importantly, address an upstream issue in Jupyter where
-running ``hv.extension`` would give an error when used in a notebook.
-
-Critical bug fixes and compatibility:
-
-- Add ``enable_mathjax`` and set it and inline to ``False``
- (`#5729 `__)
-- Update to support Datashader on Python 3.11
- (`#5720 `__)
-
-Enhancements:
-
-- Add ``show_versions`` helper function
- (`#5725 `__)
-- Ignore known model warning in VS Code
- (`#5734 `__)
-- Add workaround for plots where the objects in a figure would overlap
- (`#5733 `__)
-
-Documentation:
-
-- Upgrade to latest ``nbsite`` and ``pydata-sphinx-theme``
- (`#5724 `__,
- `#5735 `__)
-
-
-Version 1.16.0
-**************
-
-**May 9, 2023**
-
-This release includes many new features, improvements, and bug fixes.
-Among the highlights are support for Bokeh 3.1 and Panel 1.0, both of
-which come with a wide range of new features and enhancements. Time
-series support has also been improved, with auto-ranging along one axis,
-a new downsample algorithm, and having WebGL enabled by default. In
-addition, the release includes various other enhancements and bug fixes.
-
-We would like to thank the many users who contributed to this release by
-filing bug reports, providing new features, and bug fixes. We want to
-give a special shout-out to existing contributors @ianthomas23,
-@jlstevens, @jordansamuels, @maximlt, @philippjfr, @TheoMathurin,
-@Yura52, and @Hoxbro, as well as new contributors @GeoVizNow, @JRRudy1,
-@keewis, @michaelaye, and @wendrul.
-
-This minor version will be the last to support Python 3.7. The next
-minor version will require Python 3.8 or higher. In the next release,
-``holoviews.annotate`` will start giving a deprecation warning about its
-future move to the new package
-`HoloNote `__.
-
-New features:
-
-- Support for Bokeh 3.1 and Panel 1.0
- (`#5388 `__,
- `#5620 `__,
- `#5640 `__,
- `#5679 `__,
- `#5683 `__,
- `#5692 `__,
- `#5703 `__)
-- Implement auto-ranging support along one axis
- (`#5554 `__,
- `#5609 `__)
-- Add Largest Triangle Three Buckets (LTTB) as a downsample algorithm
- (`#5552 `__)
-- Enable WebGL by default
- (`#5708 `__)
-
-Enhancements:
-
-- Improve ``legend_cols`` support for Bokeh 3
- (`#5669 `__)
-- Add convenience ``getter`` interface to ``opts``
- (`#5606 `__)
-- Ensure ``.stack`` works on areas with different ``vdims``
- (`#5693 `__)
-- Add ``muted`` support to ``PointPlot`` like ``hv.Scatter``
- (`#5705 `__)
-- Automatic detect ``comms`` without calling ``pn.extension()``
- (`#5645 `__)
-- Add support for extra ``Hovertool`` variables in a Bokeh’s
- ``quadmesh`` with 2D coordinates (with tests)
- (`#5638 `__)
-- Change ``hv.Rectangles`` to internally use Bokeh ``Quad`` and not
- ``Rect`` to support logarithmic axis in WebGL
- (`#5664 `__,
- `#5702 `__)
-
-Bug fixes:
-
-- Ensure ``spatial_select`` in non-zero indexed DataFrame is applied
- right (`#5625 `__)
-- Fix error handling for plotting class lookups on empty
- ``DynamicMap``/``HoloMap``
- (`#5604 `__)
-- Fix ``active_tools`` to only be set for enabled tools
- (`#5616 `__)
-- Fix legend display when using categorical ``datashade`` on GPU
- (`#5631 `__)
-- Adding ``GeoDataFrame`` to ``DataConversion``
- (`#5325 `__)
-- Don’t emit warnings when the toolbar is disabled
- (`#5691 `__)
-- Don’t try to find the closest match if the input is empty
- (`#5700 `__)
-- Only use ``long_name`` if it is a string
- (`#5646 `__)
-- Use Matplotlib’s public API to list the colormaps
- (`#5598 `__)
-
-Compatibility:
-
-- Add Param 2.0 support
- (`#5667 `__,
- `#5641 `__,
- `#5680 `__,
- `#5704 `__)
-- Add Pandas 2.0 support
- (`#5662 `__)
-- Update ``types.functiontype`` to ``collections.abc.callable``
- (`#5636 `__)
-- Improve error message for categorical data when used with
- ``datashade``
- (`#5643 `__)
-- Don’t disable Jedi completion by default
- (`#5701 `__)
-
-Documentation:
-
-- Fix an incorrect number stated regarding available axis types
- (`#5623 `__)
-- Fix ``BoundsY`` example
- (`#5629 `__)
-- Fix formatting on FAQ
- (`#5630 `__)
-- Fix anchor links
- (`#5677 `__)
-
-Maintenance:
-
-- Use ``clean-notebook``, ``codespell``, and ``ruff`` in ``pre-commit``
- (`#5594 `__,
- `#5627 `__,
- `#5653 `__)
-- General maintenance
- (`#5607 `__,
- `#5611 `__,
- `#5612 `__,
- `#5649