Skip to content

Commit 0a808ce

Browse files
committed
Build a conda package
1 parent 0960e88 commit 0a808ce

File tree

5 files changed

+90
-2
lines changed

5 files changed

+90
-2
lines changed

.github/workflows/continuous-integration.yml

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,12 +148,31 @@ jobs:
148148
- name: Check LICENSE.txt in sdist
149149
run: tar -tvf dist/*.tar.gz | grep -q itables_for_dash/async-ITable.js.LICENSE.txt
150150

151+
# Build conda package
152+
- name: Set up Mambaforge
153+
uses: conda-incubator/setup-miniconda@v3
154+
with:
155+
miniforge-version: latest
156+
auto-update-conda: true
157+
python-version: 3.11
158+
159+
- name: Install conda-build
160+
run: mamba install conda-build -y
161+
162+
- name: Build conda package
163+
run: |
164+
conda config --set anaconda_upload no
165+
conda config --remove channels defaults
166+
conda build conda.recipe --output-folder conda-dist
167+
151168
# Upload the wheel as an artifact
152169
- name: Upload wheel artifact
153170
uses: actions/upload-artifact@v4
154171
with:
155-
name: itables-wheel
156-
path: dist/*.whl
172+
name: itables-wheel-and-conda-package
173+
path: |
174+
dist/*.whl
175+
conda-dist/**/*.tar.bz2
157176
158177
# Comment on PR with artifact link (only on PRs)
159178
- name: Comment with direct artifact link

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,11 @@
55
# Python
66
*.egg-info
77
*.pyc
8+
9+
# Build artifacts
810
build
911
dist
12+
conda-dist
1013

1114
# Notebooks
1215
*.ipynb

.pre-commit-config.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ repos:
99
hooks:
1010
- id: check-json
1111
- id: check-yaml
12+
exclude: ^conda\.recipe/meta\.yaml$
1213
- id: end-of-file-fixer
1314
- id: trailing-whitespace
1415

conda.recipe/meta.yaml

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
{% set version_match = load_file_regex(
2+
load_file="src/itables/version.py",
3+
regex_pattern='.*__version__ = "(.+)"') %}
4+
{% set version = version_match[1] %}
5+
6+
package:
7+
name: itables
8+
version: {{ version }}
9+
10+
source:
11+
path: ..
12+
13+
build:
14+
number: 0
15+
noarch: python
16+
script: {{ PYTHON }} -m pip install . -vv
17+
18+
requirements:
19+
host:
20+
- nodejs
21+
- python >=3.9
22+
- python-build
23+
- hatch-jupyter-builder
24+
- hatchling
25+
- pip
26+
run:
27+
- ipython
28+
- pandas
29+
- numpy
30+
- packaging
31+
- typing-extensions
32+
- python >=3.9
33+
34+
test:
35+
imports:
36+
- itables
37+
- itables.widget
38+
commands:
39+
- pip check
40+
- python -c "import itables; print(itables.__version__)"
41+
requires:
42+
- pip
43+
44+
about:
45+
home: https://github.com/mwouts/itables
46+
dev_url: https://github.com/mwouts/itables
47+
doc_url: https://mwouts.github.io/itables
48+
summary: Pandas and Polars DataFrames as Interactive DataTables
49+
license: MIT
50+
license_file:
51+
- LICENSE
52+
- src/itables/javascript/LICENSE_jquery.txt
53+
- src/itables/javascript/LICENSE_datatables-net.txt
54+
description: |
55+
Render Pandas and Polars DataFrames as interactive [DataTables](https://datatables.net/)
56+
that you can sort, paginate, scroll or filter. ITables works in Jupyter,
57+
VS Code, Google Colab, Quarto, Marimo, and in many application frameworks like
58+
Dash, Panel, Shiny, or Streamlit.

docs/changelog.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
ITables ChangeLog
22
=================
33

4+
2.5.2 (2025-09-01)
5+
------------------
6+
7+
**Added**
8+
- A conda package is built (and attached) to each PR.
9+
10+
411
2.5.1 (2025-08-31)
512
------------------
613

0 commit comments

Comments
 (0)