Skip to content

Commit ae0d1a9

Browse files
authored
Fix CI (#1549)
* Drop `ifaxity/wait-on-action@v1` * macos-13 is no more * try macos-15-intel * Rotate Python * pyzmq needed? * handle new jupyter-core * try xeus-cpp * try with 3.13
1 parent 0c63c23 commit ae0d1a9

14 files changed

Lines changed: 55 additions & 57 deletions

File tree

.github/workflows/main.yml

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
fail-fast: false
2323
matrix:
2424
os: [ubuntu-latest]
25-
python_version: ['3.9', '3.10', '3.11']
25+
python_version: ['3.10', '3.14']
2626

2727
steps:
2828
- uses: actions/checkout@v4
@@ -41,10 +41,9 @@ jobs:
4141
yarn=3
4242
ipywidgets
4343
matplotlib
44-
xeus-cling
44+
xeus-cpp
4545
traitlets>=5.0.3,<6
4646
ipykernel
47-
pyzmq=25.1.0
4847
4948
- name: Install dependencies
5049
shell: bash -l {0}
@@ -64,8 +63,8 @@ jobs:
6463
- name: Run tests
6564
shell: bash -l {0}
6665
run: |
67-
VOILA_TEST_XEUS_CLING=1 py.test tests/app --async-test-timeout=240 --reruns 2 --reruns-delay 1
68-
VOILA_TEST_XEUS_CLING=1 py.test tests/server --async-test-timeout=240 --reruns 2 --reruns-delay 1 --trace
66+
VOILA_TEST_XEUS_CPP=1 py.test tests/app --async-test-timeout=240 --reruns 2 --reruns-delay 1
67+
VOILA_TEST_XEUS_CPP=1 py.test tests/server --async-test-timeout=240 --reruns 2 --reruns-delay 1 --trace
6968
py.test tests/execute_output_test.py
7069
voila --help # Making sure we can run `voila --help`
7170
# tests if voila sends a 'heartbeat' to avoid proxies from closing an apparently stale connection
@@ -75,16 +74,17 @@ jobs:
7574
wget --read-timeout=5 --tries=1 http://localhost:8878
7675
# Test nbconvert < 7.6.0
7776
python -m pip install "nbconvert<7.6.0"
78-
VOILA_TEST_XEUS_CLING=1 py.test tests/app/image_inlining_test.py
77+
VOILA_TEST_XEUS_CPP=1 py.test tests/app/image_inlining_test.py
7978
8079
test-osx:
8180
runs-on: ${{ matrix.os }}
8281

8382
strategy:
8483
fail-fast: false
8584
matrix:
86-
os: [macos-13]
87-
python_version: ['3.9', '3.10', '3.11']
85+
os: [macos-latest]
86+
# TODO: Python 3.14 on macOS hangs during ipywidgets tests
87+
python_version: ['3.10', '3.13']
8888

8989
steps:
9090
- uses: actions/checkout@v4
@@ -103,10 +103,9 @@ jobs:
103103
yarn=3
104104
ipywidgets
105105
matplotlib
106-
xeus-cling
106+
xeus-cpp
107107
traitlets>=5.0.3,<6
108108
ipykernel
109-
pyzmq=25.1.0
110109
111110
- name: Install dependencies
112111
shell: bash -l {0}
@@ -132,7 +131,7 @@ jobs:
132131
fail-fast: false
133132
matrix:
134133
os: [windows-latest]
135-
python-version: ['3.9', '3.10', '3.11']
134+
python-version: ['3.10', '3.14']
136135
steps:
137136
- uses: actions/checkout@v2
138137

.github/workflows/packaging.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,16 +61,16 @@ jobs:
6161
strategy:
6262
fail-fast: false
6363
matrix:
64-
os: [ubuntu-latest, macos-13, windows-latest]
65-
python: ['3.8', '3.10']
64+
os: [ubuntu-latest, macos-latest, windows-latest]
65+
python: ['3.10', '3.14']
6666
include:
67-
- python: '3.8'
68-
dist: 'voila*.tar.gz'
6967
- python: '3.10'
68+
dist: 'voila*.tar.gz'
69+
- python: '3.14'
7070
dist: 'voila*.whl'
7171
- os: windows-latest
7272
py_cmd: python
73-
- os: macos-13
73+
- os: macos-latest
7474
py_cmd: python3
7575
- os: ubuntu-latest
7676
py_cmd: python

.github/workflows/ui-tests.yml

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -51,22 +51,10 @@ jobs:
5151
cd ui-tests
5252
jlpm install
5353
54-
- name: Launch Voila
55-
run: |
56-
# Mount a volume to overwrite the server configuration
57-
jlpm start --progressive_rendering=${{ matrix.progressive_rendering }} 2>&1 > /tmp/voila_server.log &
58-
working-directory: ui-tests
59-
6054
- name: Install browser
6155
run: npx playwright install chromium
6256
working-directory: ui-tests
6357

64-
- name: Wait for Voila
65-
uses: ifaxity/wait-on-action@v1
66-
with:
67-
resource: http-get://localhost:8866/
68-
timeout: 360000
69-
7058
- name: Test
7159
env:
7260
PROGRESSIVE_RENDERING: ${{ matrix.progressive_rendering }}
@@ -110,8 +98,3 @@ jobs:
11098
name: ${{ env.TEST_REPORT_NAME }}
11199
path: |
112100
ui-tests/playwright-report
113-
114-
- name: Print Voila logs
115-
if: always()
116-
run: |
117-
cat /tmp/voila_server.log

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ The sources of the Jupyter notebook can be displayed in a Voilà app if option `
108108

109109
### Voilà dashboards with other language kernels\*\*
110110

111-
Voilà is built upon Jupyter standard formats and protocols, and is agnostic to the programming language of the notebook. In this example, we present an example of a Voilà application powered by the C++ Jupyter kernel [xeus-cling](https://github.com/jupyter-xeus/xeus-cling), and the [xleaflet](https://github.com/jupyter-xeus/xleaflet) project.
111+
Voilà is built upon Jupyter standard formats and protocols, and is agnostic to the programming language of the notebook. In this example, we present an example of a Voilà application powered by the C++ Jupyter kernel [xeus-cpp](https://github.com/compiler-research/xeus-cpp), and the [xleaflet](https://github.com/jupyter-xeus/xleaflet) project.
112112

113113
![Voilà cling](voila-cling.gif)
114114

docs/deploy.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ and with very little prior experience of deployments.
2929
2. Add a requirements.txt file to the project directory. This file should
3030
contain all the Python dependencies your Voilà app needs to run. For this
3131
tutorial we will copy the contents of the environment.yml of Voilà.
32-
We omit xleaflet and xeus-cling because these require extra work that is
32+
We omit xleaflet and xeus-cpp because these require extra work that is
3333
beyond the scope of this guide.
3434

3535
```text

pyproject.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ build-backend = "hatchling.build"
1010
name = "voila"
1111
description = "Voilà turns Jupyter notebooks into standalone web applications"
1212
readme = "README.md"
13-
requires-python = ">=3.8"
13+
requires-python = ">=3.10"
1414
authors = [
1515
{ name = "Voila Development Team" },
1616
]
@@ -29,11 +29,11 @@ classifiers = [
2929
"License :: OSI Approved :: BSD License",
3030
"Programming Language :: Python",
3131
"Programming Language :: Python :: 3",
32-
"Programming Language :: Python :: 3.7",
33-
"Programming Language :: Python :: 3.8",
34-
"Programming Language :: Python :: 3.9",
3532
"Programming Language :: Python :: 3.10",
3633
"Programming Language :: Python :: 3.11",
34+
"Programming Language :: Python :: 3.12",
35+
"Programming Language :: Python :: 3.13",
36+
"Programming Language :: Python :: 3.14",
3737
]
3838
dependencies = [
3939
"jupyter_client>=7.4.4,<9",

tests/app/execute_cpp_test.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import pytest
44

5-
TEST_XEUS_CLING = os.environ.get("VOILA_TEST_XEUS_CLING", "") == "1"
5+
TEST_XEUS_CPP = os.environ.get("VOILA_TEST_XEUS_CPP", "") == "1"
66
NOTEBOOK_PATH = "print.xcpp"
77

88

@@ -14,7 +14,7 @@ def cpp_file_url(base_url, preheat_mode):
1414
@pytest.fixture
1515
def voila_args_extra():
1616
return [
17-
'--VoilaConfiguration.extension_language_mapping={".xcpp": "C++11"}',
17+
'--VoilaConfiguration.extension_language_mapping={".xcpp": "C++23"}',
1818
"--VoilaExecutor.timeout=240",
1919
]
2020

@@ -25,7 +25,7 @@ def voila_args(notebook_directory, voila_args_extra, preheat_mode):
2525

2626

2727
@pytest.mark.skipif(
28-
not TEST_XEUS_CLING, reason="opt in to avoid having to install xeus-cling"
28+
not TEST_XEUS_CPP, reason="opt in to avoid having to install xeus-cpp"
2929
)
3030
async def test_non_existing_kernel(http_server_client, cpp_file_url):
3131
response = await http_server_client.fetch(cpp_file_url)

tests/app/serve_directory_test.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
import pytest
55

6-
TEST_XEUS_CLING = os.environ.get("VOILA_TEST_XEUS_CLING", "") == "1"
6+
TEST_XEUS_CPP = os.environ.get("VOILA_TEST_XEUS_CPP", "") == "1"
77

88

99
@pytest.fixture
@@ -36,7 +36,7 @@ async def test_print_py(http_server_client, print_notebook_url):
3636

3737

3838
@pytest.mark.skipif(
39-
not TEST_XEUS_CLING, reason="opt in to avoid having to install xeus-cling"
39+
not TEST_XEUS_CPP, reason="opt in to avoid having to install xeus-cpp"
4040
)
4141
async def test_print_julia_notebook(http_server_client, print_notebook_url):
4242
print(print_notebook_url)

tests/notebooks/print.xcpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@
77
// format_version: '1.4'
88
// jupytext_version: 1.2.1
99
// kernelspec:
10-
// display_name: C++11
11-
// language: C++11
12-
// name: xcpp11
10+
// display_name: C++23
11+
// language: C++23
12+
// name: xcpp23
1313
// ---
1414

1515

1616
// this is not a valid .cpp file, since it does not have a main()
17-
// however, we can ask voila to execute this by using the xeus-cling kernel
17+
// however, we can ask voila to execute this by using the xeus-cpp kernel
1818
// or relying on jupytext
1919

2020
#include <iostream>

tests/notebooks/print_cpp.ipynb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,16 @@
2222
],
2323
"metadata": {
2424
"kernelspec": {
25-
"display_name": "C++11",
26-
"language": "C++11",
27-
"name": "xcpp11"
25+
"display_name": "C++23",
26+
"language": "C++23",
27+
"name": "xcpp23"
2828
},
2929
"language_info": {
3030
"codemirror_mode": "text/x-c++src",
3131
"file_extension": ".cpp",
3232
"mimetype": "text/x-c++src",
3333
"name": "c++",
34-
"version": "-std=c++11"
34+
"version": "-std=c++23"
3535
}
3636
},
3737
"nbformat": 4,

0 commit comments

Comments
 (0)