Skip to content

Commit bff2dfd

Browse files
jamesbhobbsdevin-ai-integration[bot]coderabbitai[bot]
authored
feat: add cspell configuration and CI spell-check (#11)
* feat: add cspell configuration and CI spell-check * fix: add jlpm install step to spell-check CI job * fix: revert incorrect build.yml changes - Base Setup doesn't provide jlpm The previous commit attempted to add a 'Install dependencies' step using jlpm, but jlpm is not available after Base Setup alone. The correct fix requires updating yarn.lock locally with the cspell dependency, which is blocked by missing GITHUB_TOKEN in the development environment. This commit reverts the incorrect build.yml changes. The spell-check job still needs yarn.lock to be updated with the cspell@9.2.1 dependency. * fix: move spell check from build.yml to ci.yaml as separate CI workflow * fix: add jlpm install step before spell-check in CI The spell-check job was failing with 'jlpm: command not found' because the Base Setup action provides the jlpm binary but doesn't install node_modules. This adds the missing install step with GITHUB_TOKEN. * fix: use jlpm instead of jlpm install in CI spell-check job The jlpm command without arguments automatically runs yarn install. This matches the pattern used in build.yml and fixes the 'jlpm: command not found' error. * fix: install jupyterlab to provide jlpm command in spell-check CI The Base Setup action provides Python and yarn but not jlpm. Installing jupyterlab via pip provides the jlpm command, following the pattern used in build.yml. * fix: use npx cspell instead of adding to devDependencies - Avoids yarn.lock sync issue that causes CI failure - npx downloads cspell on-the-fly without requiring it in package.json - Fixes 'YN0028: The lockfile would have been modified' error * fix: add JupyterLab technical terms to cspell dictionary Add 22 technical terms found in spell check CI logs: - JupyterLab packages: apputils, coreutils, settingregistry, lumino, testutils - Notebook formats: nbformat, ipynb - Build tools: jlpm, pyproject, sdist, bdist, lintcache, stylelintcache, csstree - Test tools: pytest, Pytest, codegen - Library names: chakra, ydoc - Config: jpserver, venv, labextensions - Author names: Jakubowski, rseidelsohn * chore: cr feedback Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * fix: add --frozen-lockfile flag to jlpm install in CI Ensures dependencies are installed exactly as specified in yarn.lock without modifications during CI runs. * fix: remove unnecessary dependencies install step from spell check The spell check uses npx cspell which doesn't require project dependencies to be installed. The jlpm install step was causing authentication failures when trying to fetch @deepnote/blocks. --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
1 parent 36431a2 commit bff2dfd

File tree

2 files changed

+98
-0
lines changed

2 files changed

+98
-0
lines changed

.github/workflows/ci.yaml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: main
6+
pull_request:
7+
branches: '*'
8+
9+
concurrency:
10+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
11+
cancel-in-progress: true
12+
13+
jobs:
14+
spell-check:
15+
name: Spell Check
16+
permissions:
17+
contents: read
18+
timeout-minutes: 10
19+
runs-on: ubuntu-latest
20+
steps:
21+
- name: Checkout
22+
uses: actions/checkout@v4
23+
24+
- name: Base Setup
25+
uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
26+
27+
- name: Install JupyterLab
28+
run: python -m pip install -U "jupyterlab>=4.0.0,<5"
29+
30+
- name: Run spell check
31+
run: npx cspell@9.2.1 "**/*.{md,txt,json,js,ts,tsx,jsx,yml,yaml}"

cspell.json

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
{
2+
"version": "0.2",
3+
"ignorePaths": [
4+
"node_modules",
5+
"package-lock.json",
6+
"yarn.lock",
7+
"dist",
8+
"lib",
9+
"build",
10+
"coverage",
11+
".vscode",
12+
".git",
13+
"*.min.js",
14+
"*.min.css",
15+
"*.map",
16+
"jupyterlab_deepnote/labextension"
17+
],
18+
"language": "en",
19+
"overrides": [
20+
{
21+
"filename": "**/*.md",
22+
"words": [
23+
"deepnote",
24+
"jupyter",
25+
"jupyterlab",
26+
"ipynb",
27+
"labextension",
28+
"jlpm",
29+
"pnpm",
30+
"monorepo"
31+
]
32+
}
33+
],
34+
"words": [
35+
"apputils",
36+
"bdist",
37+
"chakra",
38+
"codegen",
39+
"coreutils",
40+
"csstree",
41+
"deepnote",
42+
"ipynb",
43+
"Jakubowski",
44+
"jlpm",
45+
"jpserver",
46+
"jupyter",
47+
"jupyterlab",
48+
"labextension",
49+
"labextensions",
50+
"lintcache",
51+
"lumino",
52+
"monorepo",
53+
"nbformat",
54+
"pnpm",
55+
"pyproject",
56+
"Pytest",
57+
"pytest",
58+
"rseidelsohn",
59+
"sdist",
60+
"settingregistry",
61+
"stylelintcache",
62+
"testutils",
63+
"venv",
64+
"ydoc"
65+
],
66+
"useGitignore": true
67+
}

0 commit comments

Comments
 (0)