Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Update documentation and small Pixi improvements #6200

Merged
merged 42 commits into from
May 3, 2024
Merged
Show file tree
Hide file tree
Changes from 30 commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
948a9c5
Remove .gitattribute
hoxbro Apr 20, 2024
8a3ef85
Nit changes
hoxbro Apr 22, 2024
d61d94b
Fix environment variables in test.yaml
hoxbro Apr 22, 2024
a152ec7
Misc updates
hoxbro Apr 23, 2024
bd5a837
Sort dependencies in pixi.toml and move some test-core to test
hoxbro Apr 23, 2024
65c2340
Move back plotly to the test-core (for now)
hoxbro Apr 23, 2024
83761b0
Update tests to work without Matplotlib, IPython, and nbconvert
hoxbro Apr 26, 2024
79a7f97
Make plotly a recommended install
hoxbro Apr 26, 2024
8d735a6
Add tests group to optional dependencies
hoxbro Apr 26, 2024
6ab4dcb
Add color to pyargs test
hoxbro Apr 26, 2024
1eee8d7
Change to macos-latest
hoxbro Apr 29, 2024
1ddd20f
Only add a .pth for install
hoxbro Apr 29, 2024
078c8b3
Revert .pth only install
hoxbro Apr 29, 2024
9e3c296
Convert files to md
hoxbro Apr 29, 2024
bdd1d91
Update install.md
hoxbro Apr 29, 2024
9f0aed2
Update index.md
hoxbro Apr 29, 2024
eb85465
Update configuration documentation
hoxbro Apr 29, 2024
b6491f0
Update README.md
hoxbro Apr 29, 2024
997474e
Misc doc updates
hoxbro Apr 29, 2024
267f85f
Try having docs build with mac os to see if it is faster
hoxbro Apr 29, 2024
775f9e4
Split docs up into build and publish
hoxbro Apr 29, 2024
1424c0f
Add test step (tmp)
hoxbro Apr 29, 2024
5ab03f0
Add python-kaleido
hoxbro Apr 29, 2024
7a86b58
Remove some debug statements
hoxbro Apr 29, 2024
aded4a7
Update reference on doc/index
hoxbro Apr 29, 2024
afbb81b
Add link back to badges
hoxbro Apr 29, 2024
7749b17
Remove debug code
hoxbro Apr 30, 2024
abbaf1a
Update coverage for test
hoxbro Apr 30, 2024
1fecadc
Update to not install build steps
hoxbro Apr 30, 2024
4a0742d
Upload UI screenshots
hoxbro Apr 30, 2024
9913e56
Make private tasks
hoxbro May 1, 2024
c02e869
Update developer guide with pixi task list
hoxbro May 1, 2024
a833094
Update README.md
hoxbro May 1, 2024
ed9157e
Clean up download_data.py
hoxbro May 1, 2024
2c83ce7
Make pyviz-dev highest channel
hoxbro May 2, 2024
48f5c59
Unpin notebook version
hoxbro May 2, 2024
f77d6ea
Set timeout for nightly lock
hoxbro May 2, 2024
d3054be
Changes related to ibis 9.0.0
hoxbro May 2, 2024
dbdeb20
http -> https
hoxbro May 3, 2024
0677d67
Small updates to developer guide
hoxbro May 3, 2024
fe3dd8f
Add upload of nightly lock file to S3
hoxbro May 3, 2024
f98ef05
Update path
hoxbro May 3, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .gitattributes

This file was deleted.

8 changes: 7 additions & 1 deletion .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ jobs:
with:
environments: "build"
download-data: false
install: false
- name: conda build
run: pixi run -e build build-conda
- uses: actions/upload-artifact@v4
Expand Down Expand Up @@ -91,6 +92,7 @@ jobs:
with:
environments: "build"
download-data: false
install: false
- name: Build package
run: pixi run -e build build-pip
- uses: actions/upload-artifact@v4
Expand All @@ -114,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
Comment on lines +121 to +124
Copy link
Member Author

Choose a reason for hiding this comment

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

Not sure if this is actually needed.


pip_publish:
name: Publish PyPI
Expand Down
51 changes: 36 additions & 15 deletions .github/workflows/docs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,28 +20,27 @@ on:
schedule:
- cron: "0 14 * * SUN"

defaults:
run:
shell: bash -el {0}

jobs:
pixi_lock:
name: Pixi lock
runs-on: ubuntu-latest
steps:
- uses: holoviz-dev/holoviz_tasks/pixi_lock@pixi

build_docs:
name: Documentation
docs_build:
name: Build Documentation
needs: [pixi_lock]
runs-on: "ubuntu-latest"
timeout-minutes: 120
defaults:
run:
shell: bash -el {0}
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"
Expand All @@ -51,22 +50,44 @@ jobs:
- 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: docs
if-no-files-found: error
path: builtdocs
- name: Set output
id: vars
run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT
- name: Build documentation
run: pixi run -e docs docs-build

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/
Copy link
Member Author

Choose a reason for hiding this comment

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

AWS is on GitHub Runner by default.

- 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/
21 changes: 16 additions & 5 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ env:
PYTHONIOENCODING: "utf-8"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DASK_DATAFRAME__QUERY_PLANNING: false
COV: "--cov=./holoviews --cov-report=xml"

jobs:
pre_commit:
Expand Down Expand Up @@ -83,16 +84,16 @@ jobs:
if: env.MATRIX_OPTION == 'default'
run: |
MATRIX=$(jq -nsc '{
"os": ["ubuntu-latest", "macos-14", "windows-latest"],
"os": ["ubuntu-latest", "macos-latest", "windows-latest"],
"environment": ["test-39", "test-312"]
}')
echo "MATRIX=$MATRIX" >> $GITHUB_ENV
- name: Set test matrix with 'full' option
if: env.MATRIX_OPTION == 'full'
run: |
MATRIX=$(jq -nsc '{
"os": ["ubuntu-latest", "macos-14", "windows-latest"],
"environment": ["test-39", "test-310", "test311", "test312"]
"os": ["ubuntu-latest", "macos-latest", "windows-latest"],
"environment": ["test-39", "test-310", "test-311", "test-312"]
}')
echo "MATRIX=$MATRIX" >> $GITHUB_ENV
- name: Set test matrix with 'downstream' option
Expand Down Expand Up @@ -132,7 +133,7 @@ jobs:
- name: Test Unit
if: needs.setup.outputs.code_change == 'true'
run: |
pixi run -e ${{ matrix.environment }} test-unit --cov=./holoviews --cov-report=xml
pixi run -e ${{ matrix.environment }} test-unit $COV
- name: Test Examples
if: needs.setup.outputs.code_change == 'true'
run: |
Expand Down Expand Up @@ -162,7 +163,17 @@ jobs:
- name: Test UI
if: needs.setup.outputs.code_change == 'true'
run: |
pixi run -e ${{ matrix.environment }} test-ui --cov=./holoviews --cov-report=xml
# 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'
with:
Expand Down
45 changes: 12 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,46 +56,25 @@ Check out the [HoloViews web site](http://holoviews.org) for extensive examples

# 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](http://dev.holoviews.org/developer_guide/index.html),
this guide will help you get set-up. Making it easy to contribute.

## Usage
# Communication

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).
122 changes: 122 additions & 0 deletions doc/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
<h1><img src="_static/logo_horizontal.png" style="width: 30%;"></h1>

**Stop plotting your data - annotate your data and let it visualize
itself.**

<div style="display: flex">
<div style="width: 95%">

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).

</div>

</div>
<hr width='100%'></hr>

<div>
<div >
<a href="https://holoviews.org/gallery/demos/bokeh/iris_splom_example.html">
<img src="https://holoviews.org/_images/iris_splom_example.png" width='24%'> </img> </a>
<a href="https://holoviews.org/getting_started/Gridded_Datasets.html">
<img src="https://assets.holoviews.org/collage/cells.png" width='27%'> </img> </a>
<a href="https://holoviews.org/gallery/demos/bokeh/scatter_economic.html">
<img src="https://holoviews.org/_images/scatter_economic.png" width='47%'> </img> </a>
</div>

<div >
<a href="https://holoviews.org/gallery/demos/bokeh/square_limit.html">
<img src="https://holoviews.org/_images/square_limit.png" width='24%'> </a>
<a href="https://holoviews.org/gallery/demos/bokeh/bars_economic.html">
<img src="https://holoviews.org/_images/bars_economic.png" width='24%'> </a>
<a href="https://holoviews.org/gallery/demos/bokeh/texas_choropleth_example.html">
<img src="https://holoviews.org/_images/texas_choropleth_example.png" width='24%'> </a>
<a href="https://holoviews.org/gallery/demos/bokeh/verhulst_mandelbrot.html">
<img src="https://holoviews.org/_images/verhulst_mandelbrot.png" width='24%'> </a>
</div>
<div >
<a href="https://holoviews.org/gallery/demos/bokeh/dropdown_economic.html">
<img src="https://assets.holoviews.org/collage/dropdown.gif" width='33%'> </a>
<a href="https://holoviews.org/gallery/demos/bokeh/dragon_curve.html">
<img src="https://assets.holoviews.org/collage/dragon_fractal.gif" width='30%'> </a>
<a href="https://holoviews.org/gallery/apps/bokeh/nytaxi_hover.html">
<img src="https://assets.holoviews.org/collage/ny_datashader.gif" width='33%'> </a>
</div>
</div>

# 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 <getting_started/index>
User Guide <user_guide/index>
Gallery <gallery/index>
Reference Gallery <reference/index>
Developer Guide <developer_guide/index>
Releases <releases>
API <reference_manual/index>
FAQ Roadmap <roadmap>
About <about>
```
Loading