Skip to content

Commit d36303f

Browse files
authored
Merge branch 'main' into oleh/grn-4953-dark-mode-support-for-chart-block-output
2 parents 8d8264b + 70a2459 commit d36303f

30 files changed

+4084
-948
lines changed

.github/workflows/ci.yml

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ jobs:
8181
uses: actions/checkout@ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493
8282

8383
- name: Install qlty
84-
uses: qltysh/qlty-action/install@a19242102d17e497f437d7466aa01b528537e899
84+
uses: qltysh/qlty-action/install@6bbb1add7432c45a3fd35a824ea69dc5bef27967
8585

8686
- name: Run qlty check
8787
run: qlty check
@@ -167,6 +167,30 @@ jobs:
167167
- name: Check Licenses
168168
run: npm run check-licenses
169169

170+
spell-check:
171+
name: Spell Check
172+
runs-on: ubuntu-latest
173+
timeout-minutes: 15
174+
steps:
175+
- name: Checkout
176+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
177+
178+
- name: Setup Node.js
179+
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
180+
with:
181+
cache: 'npm'
182+
node-version: ${{ env.NODE_VERSION }}
183+
registry-url: 'https://npm.pkg.github.com'
184+
scope: '@deepnote'
185+
186+
- name: Install dependencies
187+
run: npm ci --prefer-offline --no-audit
188+
env:
189+
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
190+
191+
- name: Run spell check
192+
run: npm run spell-check
193+
170194
audit-prod:
171195
name: Audit - Production
172196
runs-on: ubuntu-latest

.github/workflows/copilot-setup-steps.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ jobs:
7979
continue-on-error: true
8080

8181
- name: Install uv
82-
uses: astral-sh/setup-uv@3259c6206f993105e3a61b142c2d97bf4b9ef83d # v7
82+
uses: astral-sh/setup-uv@2ddd2b9cb38ad8efd50337e8ab201519a34c9f24 # v7
8383

8484
- name: Setup Venv
8585
run: |

.github/workflows/package.yml

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
name: CD
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
workflow_dispatch:
9+
10+
env:
11+
NODE_VERSION: 22.x
12+
13+
permissions:
14+
contents: read
15+
packages: read
16+
17+
concurrency:
18+
group: ${{ github.workflow }}-${{ github.ref }}
19+
cancel-in-progress: true
20+
21+
jobs:
22+
package:
23+
name: Build & Package Extension
24+
runs-on: ubuntu-latest
25+
timeout-minutes: 20
26+
steps:
27+
- name: Checkout
28+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
29+
30+
- name: Setup Node.js
31+
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
32+
with:
33+
cache: 'npm'
34+
node-version: ${{ env.NODE_VERSION }}
35+
registry-url: 'https://npm.pkg.github.com'
36+
scope: '@deepnote'
37+
38+
- name: Install dependencies
39+
run: npm ci --prefer-offline --no-audit
40+
env:
41+
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
42+
43+
- name: Install vsce
44+
run: npm install -g @vscode/vsce
45+
46+
- name: Extract version from package.json
47+
id: package-version
48+
run: |
49+
VERSION=$(node -p "require('./package.json').version")
50+
echo "version=$VERSION" >> $GITHUB_OUTPUT
51+
echo "Extension version: $VERSION"
52+
53+
- name: Extract and sanitize branch name
54+
id: branch-name
55+
env:
56+
UNTRUSTED_HEAD_REF: ${{ github.head_ref }}
57+
EVENT_NAME: ${{ github.event_name }}
58+
run: |
59+
# Get branch name from ref (use env vars to avoid direct interpolation)
60+
if [[ "$EVENT_NAME" == "pull_request" ]]; then
61+
BRANCH="$UNTRUSTED_HEAD_REF"
62+
else
63+
BRANCH="${GITHUB_REF#refs/heads/}"
64+
fi
65+
# Sanitize branch name for filename (replace / with -)
66+
SAFE_BRANCH=$(printf '%s' "$BRANCH" | sed 's/\//-/g')
67+
printf 'branch=%s\n' "$SAFE_BRANCH" >> "$GITHUB_OUTPUT"
68+
printf 'Branch name: %s (sanitized: %s)\n' "$BRANCH" "$SAFE_BRANCH"
69+
70+
- name: Package extension
71+
run: npm run package
72+
73+
- name: Rename VSIX file
74+
run: |
75+
# The package script creates vscode-deepnote-insiders.vsix
76+
# Rename it to include version and branch
77+
mv vscode-deepnote-insiders.vsix "vscode-deepnote-${{ steps.package-version.outputs.version }}-${{ steps.branch-name.outputs.branch }}.vsix"
78+
ls -lh *.vsix
79+
80+
- name: Upload VSIX artifact
81+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
82+
with:
83+
name: vscode-deepnote-${{ steps.package-version.outputs.version }}-${{ steps.branch-name.outputs.branch }}
84+
path: vscode-deepnote-*.vsix
85+
retention-days: 30
86+
if-no-files-found: error
87+
88+
- name: Add summary
89+
run: |
90+
echo "## 📦 Extension Packaged Successfully" >> $GITHUB_STEP_SUMMARY
91+
echo "" >> $GITHUB_STEP_SUMMARY
92+
echo "**Version:** ${{ steps.package-version.outputs.version }}" >> $GITHUB_STEP_SUMMARY
93+
echo "**Branch:** ${{ steps.branch-name.outputs.branch }}" >> $GITHUB_STEP_SUMMARY
94+
echo "" >> $GITHUB_STEP_SUMMARY
95+
echo "### Installation Instructions" >> $GITHUB_STEP_SUMMARY
96+
echo "1. Download the artifact from the Actions tab" >> $GITHUB_STEP_SUMMARY
97+
echo "2. Extract the .vsix file from the zip" >> $GITHUB_STEP_SUMMARY
98+
echo "3. Install in VS Code:" >> $GITHUB_STEP_SUMMARY
99+
echo " - Open VS Code" >> $GITHUB_STEP_SUMMARY
100+
echo " - Go to Extensions view (Ctrl+Shift+X / Cmd+Shift+X)" >> $GITHUB_STEP_SUMMARY
101+
echo " - Click the '...' menu → 'Install from VSIX...'" >> $GITHUB_STEP_SUMMARY
102+
echo " - Select the downloaded .vsix file" >> $GITHUB_STEP_SUMMARY
103+
echo "" >> $GITHUB_STEP_SUMMARY
104+
echo "Alternatively, use the command line:" >> $GITHUB_STEP_SUMMARY
105+
echo "\`\`\`bash" >> $GITHUB_STEP_SUMMARY
106+
echo "code --install-extension vscode-deepnote-${{ steps.package-version.outputs.version }}-${{ steps.branch-name.outputs.branch }}.vsix" >> $GITHUB_STEP_SUMMARY
107+
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY

.gitignore

Lines changed: 56 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,74 +1,75 @@
1+
__pycache__
2+
!build/
3+
!src/test/pythonEnvironments/**/*.*
4+
!yarn.lock
15
.DS_Store
6+
.eslintcache
7+
.github_token
28
.huskyrc.json
3-
dist
4-
out
9+
.nyc_output
10+
.pytest_cache
11+
.python-version
12+
.qlty/cache
13+
.qlty/logs
14+
.qlty/out
15+
.qlty/plugin_cachedir
16+
.qlty/results
17+
.vs/
18+
.vscode-test
19+
.vscode-test-web
520
*.exe
6-
log.log
7-
**/node_modules
21+
*.i18n.json
22+
*.nls.*.json
23+
*.noseids
824
*.pyc
925
*.vsix
26+
*.xlf
27+
**/.mypy_cache/**
28+
**/.venv*/
29+
**/.vscode test/**
30+
**/.vscode-smoke/**
31+
**/.vscode-test/**
1032
**/.vscode/.ropeproject/**
33+
**/*.esbuild.meta.json
34+
**/node_modules
1135
**/testFiles/**/.cache/**
12-
*.noseids
13-
.nyc_output
14-
.vscode-test
15-
__pycache__
16-
npm-debug.log
17-
**/.mypy_cache/**
18-
!yarn.lock
36+
# Compilation of less to css
37+
# Esbuild files
38+
# Qlty cache directories
39+
# translation files
40+
bin/**
1941
coverage/
2042
cucumber-report.json
21-
**/.vscode-test/**
22-
**/.vscode test/**
23-
**/.vscode-smoke/**
24-
**/.venv*/
25-
port.txt
26-
precommit.hook
27-
pythonFiles/lib/**
2843
debug_coverage*/**
29-
languageServer/**
44+
debug*.log
45+
debugpy*.log
46+
dist
47+
l10n/
3048
languageServer.*/**
31-
bin/**
49+
languageServer/**
50+
log.log
3251
logs/**
52+
nodeLanguageServer.*/**
53+
nodeLanguageServer/**
54+
npm-debug.log
3355
obj/**
34-
.pytest_cache
35-
temp
36-
tmp
37-
src/test/datascience/tmp/**
38-
src/test/datascience/temp/**
39-
.python-version
40-
.vs/
41-
test-results*.xml
42-
testresults.json
43-
telemetry.json
44-
xunit-test-results.xml
45-
!build/
46-
debug*.log
47-
debugpy*.log
56+
out
57+
port.txt
58+
precommit.hook
4859
pydevd*.log
49-
vscode.d.ts
50-
vscode.proposed.*.d.ts
51-
nodeLanguageServer/**
52-
nodeLanguageServer.*/**
60+
pythonFiles/lib/**
5361
src/test/datascience/.venv*
54-
!src/test/pythonEnvironments/**/*.*
55-
.vscode-test-web
56-
.github_token
57-
# translation files
58-
*.xlf
59-
*.nls.*.json
60-
*.i18n.json
61-
l10n/
62-
# Esbuild files
63-
**/*.esbuild.meta.json
64-
# Compilation of less to css
62+
src/test/datascience/temp/**
63+
src/test/datascience/tmp/**
6564
src/webviews/webview-side/interactive-common/variableExplorerGrid.css
6665
src/webviews/webview-side/interactive-common/variableExplorerGrid.css.map
6766
src/webviews/webview-side/react-common/seti/seti.css
6867
src/webviews/webview-side/react-common/seti/seti.css.map
69-
# Qlty cache directories
70-
.qlty/cache
71-
.qlty/logs
72-
.qlty/out
73-
.qlty/plugin_cachedir
74-
.qlty/results
68+
telemetry.json
69+
temp
70+
test-results*.xml
71+
testresults.json
72+
tmp
73+
vscode.d.ts
74+
vscode.proposed.*.d.ts
75+
xunit-test-results.xml

.husky/post-checkout

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
npm ci

.husky/pre-commit

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1 @@
1-
#!/bin/sh
2-
if npm list prettier | grep -q prettier@ ; then
3-
echo husky - prettier is installed
4-
else
5-
echo husky - prettier is not installed, skipping format check
6-
exit 0
7-
fi
8-
9-
# run prettier on all .ts files that are in the commit
10-
changed=$(git diff --diff-filter=ACM --cached --name-only | grep .ts$ | tr '\n' ' ')
11-
12-
if [ -z "$changed" ]; then
13-
echo husky - No modified files to check
14-
exit 0
15-
fi
16-
17-
npx prettier $changed --check
1+
npm exec lint-staged

.husky/pre-push

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
branch_name="$(git symbolic-ref --short HEAD)"
2+
if [ "$branch_name" = "main" ]; then
3+
echo "Pushing directly to main is not allowed."
4+
exit 1
5+
fi

cspell.json

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
{
2+
"version": "0.2",
3+
"files": [
4+
"src/notebooks/deepnote/**",
5+
"src/kernels/deepnote/**",
6+
"src/platform/errors/deepnoteServerNotFoundError.ts"
7+
],
8+
"ignorePaths": [
9+
"node_modules",
10+
"package-lock.json",
11+
"pnpm-lock.yaml",
12+
"dist",
13+
"out",
14+
"build",
15+
"coverage",
16+
".vscode",
17+
".git",
18+
"*.min.js",
19+
"*.min.css",
20+
"*.map"
21+
],
22+
"language": "en",
23+
"words": [
24+
"blockgroup",
25+
"channeldef",
26+
"dataframe",
27+
"deepnote",
28+
"deepnoteserver",
29+
"dntk",
30+
"dont",
31+
"DONT",
32+
"ename",
33+
"evalue",
34+
"findstr",
35+
"getsitepackages",
36+
"IMAGENAME",
37+
"ipykernel",
38+
"ipynb",
39+
"jupyter",
40+
"jupyterlab",
41+
"JVSC",
42+
"millis",
43+
"nbformat",
44+
"numpy",
45+
"pids",
46+
"Pids",
47+
"PYTHONHOME",
48+
"Reselecting",
49+
"taskkill",
50+
"unconfigured",
51+
"Unconfigured",
52+
"unittests",
53+
"vegalite",
54+
"venv",
55+
"venv's",
56+
"Venv",
57+
"venvs",
58+
"vscode"
59+
],
60+
"useGitignore": true
61+
}

icon.png

1.17 KB
Loading

0 commit comments

Comments
 (0)