diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml deleted file mode 100644 index 0927e8a6..00000000 --- a/.github/workflows/build.yaml +++ /dev/null @@ -1,124 +0,0 @@ -name: build -on: - push: - branches: - - "main" - - "release/*" - tags: - - v[0-9][0-9].[0-9][0-9].[0-9][0-9] - workflow_dispatch: - inputs: - branch: - description: | - branch: git branch the workflow run targets. - Required even when 'sha' is provided because it is also used for organizing artifacts. - required: true - type: string - date: - description: "date: Date (YYYY-MM-DD) this run is for. Used to organize artifacts produced by nightly builds" - required: true - type: string - sha: - description: "sha: full git commit SHA to check out" - required: true - type: string - build_type: - description: "build_type: one of [branch, nightly, pull-request]" - type: string - default: nightly -concurrency: - group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }} - cancel-in-progress: true -permissions: {} -jobs: - python-build: - secrets: inherit # zizmor: ignore[secrets-inherit] - uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@main - with: - build_type: ${{ inputs.build_type || 'branch' }} - branch: ${{ inputs.branch }} - date: ${{ inputs.date }} - script: ci/build_python.sh - sha: ${{ inputs.sha }} - pure-conda: cuda_major - permissions: - actions: read - contents: read - id-token: write - packages: read - pull-requests: read - upload-conda: - needs: [python-build] - secrets: - CONDA_RAPIDSAI_NIGHTLY_TOKEN: ${{ secrets.CONDA_RAPIDSAI_NIGHTLY_TOKEN }} - CONDA_RAPIDSAI_TOKEN: ${{ secrets.CONDA_RAPIDSAI_TOKEN }} - uses: rapidsai/shared-workflows/.github/workflows/conda-upload-packages.yaml@main - with: - build_type: ${{ inputs.build_type || 'branch' }} - branch: ${{ inputs.branch }} - date: ${{ inputs.date }} - sha: ${{ inputs.sha }} - permissions: - actions: read - contents: read - id-token: write - packages: read - pull-requests: read - docs-build: - if: github.ref_type == 'branch' - needs: python-build - secrets: inherit # zizmor: ignore[secrets-inherit] - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main - with: - arch: "amd64" - branch: ${{ inputs.branch }} - build_type: ${{ inputs.build_type || 'branch' }} - container_image: "rapidsai/ci-conda:26.08-latest" - date: ${{ inputs.date }} - node_type: "gpu-l4-latest-1" - script: "ci/build_docs.sh" - sha: ${{ inputs.sha }} - permissions: - actions: read - contents: read - id-token: write - packages: read - pull-requests: read - wheel-build: - secrets: inherit # zizmor: ignore[secrets-inherit] - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main - with: - build_type: ${{ inputs.build_type || 'branch' }} - branch: ${{ inputs.branch }} - sha: ${{ inputs.sha }} - date: ${{ inputs.date }} - script: ci/build_wheel.sh - package-name: cuxfilter - package-type: python - pure-wheel: true - permissions: - actions: read - contents: read - id-token: write - packages: read - pull-requests: read - wheel-publish: - needs: wheel-build - secrets: - CONDA_RAPIDSAI_WHEELS_NIGHTLY_TOKEN: ${{ secrets.CONDA_RAPIDSAI_WHEELS_NIGHTLY_TOKEN }} - RAPIDSAI_PYPI_TOKEN: ${{ secrets.RAPIDSAI_PYPI_TOKEN }} - uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@main - with: - build_type: ${{ inputs.build_type || 'branch' }} - branch: ${{ inputs.branch }} - sha: ${{ inputs.sha }} - date: ${{ inputs.date }} - package-name: cuxfilter - package-type: python - publish-wheel-search-key: "cuxfilter_wheel" - permissions: - actions: read - contents: read - id-token: write - packages: read - pull-requests: read diff --git a/.github/workflows/test-external.yaml b/.github/workflows/test-external.yaml deleted file mode 100644 index a7d356b1..00000000 --- a/.github/workflows/test-external.yaml +++ /dev/null @@ -1,34 +0,0 @@ -name: GPU testing for external party dependencies -on: - workflow_dispatch: - inputs: - external-project: - description: "Project:" - required: true - type: choice - options: - - datashader - - holoviews - - all - pr_number: - description: " The number of the pull request to check out, else checks out default branch. Will be ignored if external-project=all " - required: false - schedule: - - cron: "0 0 * * 1" # Run every Sunday evening Pacific Time (Monday 0:00 UTC) -permissions: {} -jobs: - test-external: - secrets: inherit # zizmor: ignore[secrets-inherit] - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main - with: - build_type: branch - node_type: "gpu-l4-latest-1" - arch: "amd64" - container_image: "rapidsai/ci-conda:26.08-latest" - script: "./ci/test_external.sh ${{ inputs.external-project || 'all' }} ${{ inputs.pr_number }}" - permissions: - actions: read - contents: read - id-token: write - packages: read - pull-requests: read diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml deleted file mode 100644 index a667cc7e..00000000 --- a/.github/workflows/test.yaml +++ /dev/null @@ -1,56 +0,0 @@ -name: test -on: - workflow_dispatch: - inputs: - branch: - description: | - branch: git branch the workflow run targets. - Required even when 'sha' is provided because it is also used for organizing artifacts. - required: true - type: string - date: - description: "date: Date (YYYY-MM-DD) this run is for. Used to organize artifacts produced by nightly builds" - required: true - type: string - sha: - description: "sha: full git commit SHA to check out" - required: true - type: string - build_type: - description: "build_type: one of [branch, nightly, pull-request]" - type: string - default: nightly -permissions: {} -jobs: - conda-python-tests: - secrets: inherit # zizmor: ignore[secrets-inherit] - uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@main - with: - build_type: ${{ inputs.build_type }} - branch: ${{ inputs.branch }} - date: ${{ inputs.date }} - script: ci/test_python.sh - sha: ${{ inputs.sha }} - permissions: - actions: read - contents: read - id-token: write - packages: read - pull-requests: read - wheel-tests: - secrets: inherit # zizmor: ignore[secrets-inherit] - uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@main - with: - build_type: ${{ inputs.build_type }} - branch: ${{ inputs.branch }} - date: ${{ inputs.date }} - sha: ${{ inputs.sha }} - script: ci/test_wheel.sh - # This selects "ARCH=amd64 + the latest supported Python + CUDA". - matrix_filter: map(select(.ARCH == "amd64")) | max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))]) | [.] - permissions: - actions: read - contents: read - id-token: write - packages: read - pull-requests: read diff --git a/EXTERNAL_TESTS.md b/EXTERNAL_TESTS.md deleted file mode 100644 index b9c905a2..00000000 --- a/EXTERNAL_TESTS.md +++ /dev/null @@ -1,57 +0,0 @@ -# External Tests Workflow - -This document provides an overview of the GitHub Actions workflow (`.github/workflows/test-external.yaml`) and associated script (`ci/test_external.sh`) for running external tests on specified Python libraries, such as Datashader and Holoviews. - -## Purpose - -The purpose of this workflow is to perform GPU testing on external party dependencies. It involes the following steps: - -1. Create a Conda environment named `test_external`. -2. Install external dependencies specified in `ci/utils/external_dependencies.yaml`. -3. Clone specified Python libraries from their respective GitHub repositories. -4. Install test dependencies for each library. -5. Run GPU tests on the specified libraries using Pytest. - -## Workflow Configuration - -### Workflow Trigger - -The workflow is triggered in two ways: - -1. **Manual Trigger:** You can manually trigger the workflow by selecting the "GPU testing for external party dependencies" workflow and providing the following inputs: - - - `external-project`: Specify the project to test (`datashader`, `holoviews`, or `all`). - - `pr_number`: (Optional) If testing a pull request, provide the PR number. - -2. **Scheduled Trigger:** The workflow runs automatically every Sunday evening (Pacific Time) using a cron schedule (`0 0 * * 1`). - -## Script (`test_external.sh`) - -The script is responsible for setting up the Conda environment, installing dependencies, cloning specified Python libraries, and running GPU tests. Key steps in the script include: - -1. **Create Conda Environment:** Creates a Conda environment named `test_external` and installs external dependencies from `external_dependencies.yaml`. - -2. **Clone Repositories:** Clones GitHub repositories of specified Python libraries (`datashader`, `holoviews`, or both). - -3. **Install Dependencies:** Installs test dependencies for each library using `python -m pip install -e .[tests]`. - -4. **Run Tests:** Gathers GPU tests containing the keywords `cudf` and runs them using Pytest. The number of processes is set to 8 by default, but specific tests (`test_quadmesh.py`) are run separately. - -## Running External Tests - -To manually trigger the workflow and run external tests: - -1. Navigate to the "Actions" tab in your GitHub repository. -2. Select "GPU testing for external party dependencies" workflow. -3. Click the "Run workflow" button. -4. Provide inputs for `external-project` and `pr_number` if needed. - -## Contributing - -Contributors can use this workflow to test changes in external libraries on the RAPIDS AI ecosystem. When contributing, follow these steps: - -1. Make changes to the external library code. -2. Push the changes to your fork or branch. -3. Trigger the workflow manually by selecting the appropriate inputs. - -For additional information, refer to the [GitHub Actions documentation](https://docs.github.com/en/actions). diff --git a/README.md b/README.md index 72656c94..b60ac256 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,12 @@ #
cuxfilter
+> [!CAUTION]
+> version 26.06 was the final release of `cuxfilter` Python packages.
+> This repository's `main` branch may be repurposed for other development.
+> To view the source code for the 26.06 release, navigate to https://github.com/rapidsai/cuxfilter/tree/release/26.06.
+>
+> See https://docs.rapids.ai/notices/rsn0060/ for more details.
+
cuxfilter ( ku-cross-filter ) is a [RAPIDS](https://github.com/rapidsai) framework to connect web visualizations to GPU accelerated crossfiltering. Inspired by the javascript version of the [original](https://github.com/crossfilter/crossfilter), it enables interactive and super fast multi-dimensional filtering of 100 million+ row tabular datasets via [cuDF](https://github.com/rapidsai/cudf).
## RAPIDS Viz
@@ -151,42 +158,28 @@ Please see the [Demo Docker Repository](https://hub.docker.com/r/rapidsai/rapids
cuxfilter can be installed with conda. You can get a minimal conda installation with [miniforge](https://github.com/conda-forge/miniforge).
-For the nightly version of `cuxfilter`:
-
-```bash
-# CUDA 13
-conda install -c rapidsai-nightly -c conda-forge \
- cuxfilter=26.08 python=3.14 cuda-version=13.2
-
-# CUDA 12
-conda install -c rapidsai-nightly -c conda-forge \
- cuxfilter=26.08 python=3.14 cuda-version=12.9
-```
-
For the stable version of `cuxfilter`:
```bash
# CUDA 13
conda install -c rapidsai -c conda-forge \
- cuxfilter python=3.14 cuda-version=13.2
+ cuxfilter=26.06 python=3.14 cuda-version=13.2
# CUDA 12
conda install -c rapidsai -c conda-forge \
- cuxfilter python=3.14 cuda-version=12.9
+ cuxfilter=26.06 python=3.14 cuda-version=12.9
```
-> Above are sample install snippets for cuxfilter, see the [RAPIDS installation docs](https://docs.rapids.ai/install/) for installing the latest `cuxfilter` version.
-
### PyPI
Install cuxfilter from PyPI using pip:
```bash
# CUDA 13
-pip install cuxfilter-cu12 -extra-index-url=https://pypi.nvidia.com
+pip install 'cuxfilter-cu12==26.6.*'
# CUDA 12
-pip install cuxfilter-cu12 -extra-index-url=https://pypi.nvidia.com
+pip install 'cuxfilter-cu12==26.6.*'
```
See the [RAPIDS installation docs](https://docs.rapids.ai/install/) for more OS and version info.
diff --git a/docs/source/user_guide/installation.rst b/docs/source/user_guide/installation.rst
index abfb6f4c..d0a811ba 100644
--- a/docs/source/user_guide/installation.rst
+++ b/docs/source/user_guide/installation.rst
@@ -8,10 +8,10 @@ For the most customized way of installing RAPIDS and cuxfilter, visit the select
.. code-block:: bash
# CUDA 13
- conda install -c rapidsai -c conda-forge cuxfilter=26.08 cuda-version=13.2
+ conda install -c rapidsai -c conda-forge cuxfilter=26.06 cuda-version=13.2
# CUDA 12
- conda install -c rapidsai -c conda-forge cuxfilter=26.08 cuda-version=12.9
+ conda install -c rapidsai -c conda-forge cuxfilter=26.06 cuda-version=12.9
PyPI
----
@@ -20,26 +20,16 @@ Install cuxfilter from PyPI using pip:
.. code-block:: bash
# CUDA 13
- pip install cuxfilter-cu13 -extra-index-url=https://pypi.nvidia.com
+ pip install 'cuxfilter-cu13==26.6.*'
# CUDA 12
- pip install cuxfilter-cu12 -extra-index-url=https://pypi.nvidia.com
+ pip install 'cuxfilter-cu12==26.6.*'
Docker container
----------------
For the most customized way of installing RAPIDS and cuxfilter, visit the selector on the `RAPIDS Installation Guide