Skip to content

Commit 4908fed

Browse files
committed
Merge remote-tracking branch 'origin/tomaskislan/grn-4762-support-big-number-blocks' into tomaskislan/grn-4776-support-input-blocks
2 parents c1becf8 + 68567e0 commit 4908fed

File tree

103 files changed

+9336
-10792
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

103 files changed

+9336
-10792
lines changed

.github/CODEOWNERS

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Default owners for everything in the repository
2+
* @saltenasl @jamesbhobbs @Artmann @andyjakubowski

.github/actions/create-venv-for-tests/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ runs:
1616
using: 'composite'
1717
steps:
1818
- name: Install uv
19-
uses: astral-sh/setup-uv@v6
19+
uses: astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6
2020

2121
# Used by tests for installation of ipykernel.
2222
# Create a venv & register it as a kernel.

.github/workflows/ci.yml

Lines changed: 117 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ jobs:
2626
timeout-minutes: 15
2727
steps:
2828
- name: Checkout
29-
uses: actions/checkout@v5
29+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
3030

3131
- name: Setup Node.js
32-
uses: actions/setup-node@v5
32+
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
3333
with:
3434
cache: 'npm'
3535
node-version: ${{ env.NODE_VERSION }}
@@ -47,16 +47,62 @@ jobs:
4747
- name: Check Prettier formatting
4848
run: npm run format
4949

50+
typecheck:
51+
name: TypeCheck
52+
runs-on: ubuntu-latest
53+
timeout-minutes: 15
54+
steps:
55+
- name: Checkout
56+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
57+
58+
- name: Setup Node.js
59+
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
60+
with:
61+
cache: 'npm'
62+
node-version: ${{ env.NODE_VERSION }}
63+
registry-url: 'https://npm.pkg.github.com'
64+
scope: '@deepnote'
65+
66+
- name: Install dependencies
67+
run: npm ci --prefer-offline --no-audit
68+
env:
69+
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
70+
71+
- name: Run TypeScript type checking
72+
run: npm run typecheck
73+
74+
qlty:
75+
name: Qlty Check
76+
runs-on: ubuntu-latest
77+
timeout-minutes: 3
78+
79+
steps:
80+
- name: Checkout code
81+
uses: actions/checkout@ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493
82+
83+
- name: Install qlty
84+
uses: qltysh/qlty-action/install@a19242102d17e497f437d7466aa01b528537e899
85+
86+
- name: Run qlty check
87+
run: qlty check
88+
89+
- name: Run qlty code smells analysis
90+
run: qlty smells
91+
5092
build:
5193
name: Build & Test
5294
runs-on: ubuntu-latest
5395
timeout-minutes: 15
96+
permissions:
97+
id-token: write
98+
contents: read
99+
packages: read
54100
steps:
55101
- name: Checkout
56-
uses: actions/checkout@v5
102+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
57103

58104
- name: Setup Node.js
59-
uses: actions/setup-node@v5
105+
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
60106
with:
61107
cache: 'npm'
62108
node-version: ${{ env.NODE_VERSION }}
@@ -73,6 +119,23 @@ jobs:
73119

74120
- name: Run tests
75121
run: npm test
122+
env:
123+
VSC_JUPYTER_INSTRUMENT_CODE_FOR_COVERAGE: true
124+
125+
- name: Upload coverage to Codecov
126+
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5
127+
with:
128+
use_oidc: true
129+
files: coverage/lcov.info
130+
fail_ci_if_error: true
131+
132+
- name: Upload test results to Codecov
133+
if: '!cancelled()'
134+
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1
135+
with:
136+
use_oidc: true
137+
files: test-results.xml
138+
fail_ci_if_error: true
76139

77140
- name: Check dependencies
78141
run: npm run checkDependencies
@@ -86,10 +149,10 @@ jobs:
86149
runs-on: ubuntu-latest
87150
steps:
88151
- name: Checkout
89-
uses: actions/checkout@v5
152+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
90153

91154
- name: Setup Node.js
92-
uses: actions/setup-node@v5
155+
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
93156
with:
94157
cache: 'npm'
95158
node-version: ${{ env.NODE_VERSION }}
@@ -103,3 +166,51 @@ jobs:
103166

104167
- name: Check Licenses
105168
run: npm run check-licenses
169+
170+
audit-prod:
171+
name: Audit - Production
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 audit for production dependencies
192+
run: npm audit --production
193+
194+
audit-all:
195+
name: Audit - All
196+
runs-on: ubuntu-latest
197+
timeout-minutes: 15
198+
steps:
199+
- name: Checkout
200+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
201+
202+
- name: Setup Node.js
203+
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
204+
with:
205+
cache: 'npm'
206+
node-version: ${{ env.NODE_VERSION }}
207+
registry-url: 'https://npm.pkg.github.com'
208+
scope: '@deepnote'
209+
210+
- name: Install dependencies
211+
run: npm ci --prefer-offline --no-audit
212+
env:
213+
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
214+
215+
- name: Run audit for all dependencies
216+
run: npm audit

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,23 +37,23 @@ jobs:
3737
# If you do not check out your code, Copilot will do this for you.
3838
steps:
3939
- name: Checkout code
40-
uses: actions/checkout@v5
40+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
4141

4242
- name: Use Node ${{env.NODE_VERSION}}
43-
uses: actions/setup-node@v5
43+
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
4444
with:
4545
node-version: ${{env.NODE_VERSION}}
4646
registry-url: 'https://npm.pkg.github.com'
4747
scope: '@deepnote'
4848

4949
- name: Cache npm files
50-
uses: actions/cache@v4
50+
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
5151
with:
5252
path: ~/.npm
5353
key: ${{runner.os}}-${{env.CACHE_NPM_DEPS}}-${{hashFiles('package-lock.json')}}
5454

5555
- name: Cache the out/ directory
56-
uses: actions/cache@v4
56+
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
5757
with:
5858
path: ./out
5959
key: ${{runner.os}}-${{env.CACHE_OUT_DIRECTORY}}-${{hashFiles('src/**')}}
@@ -79,7 +79,7 @@ jobs:
7979
continue-on-error: true
8080

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

8484
- name: Setup Venv
8585
run: |

.github/workflows/deps.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ jobs:
2424
runs-on: ubuntu-latest
2525
steps:
2626
- name: Checkout
27-
uses: actions/checkout@v5
27+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
2828

2929
- name: Setup Node.js
30-
uses: actions/setup-node@v5
30+
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
3131
with:
3232
cache: 'npm'
3333
node-version: ${{ env.NODE_VERSION }}
@@ -44,7 +44,7 @@ jobs:
4444

4545
- name: Upload audit report
4646
if: always()
47-
uses: actions/upload-artifact@v4
47+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
4848
with:
4949
name: npm-audit-report
5050
path: audit-report.json
@@ -57,10 +57,10 @@ jobs:
5757
runs-on: ubuntu-latest
5858
steps:
5959
- name: Checkout
60-
uses: actions/checkout@v5
60+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
6161

6262
- name: Setup Node.js
63-
uses: actions/setup-node@v5
63+
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
6464
with:
6565
node-version: ${{ env.NODE_VERSION }}
6666
cache: 'npm'

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,3 +66,9 @@ src/webviews/webview-side/interactive-common/variableExplorerGrid.css
6666
src/webviews/webview-side/interactive-common/variableExplorerGrid.css.map
6767
src/webviews/webview-side/react-common/seti/seti.css
6868
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

.qlty/qlty.toml

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# Qlty Configuration
2+
# Learn more at https://docs.qlty.sh
3+
config_version = "0"
4+
5+
# Plugins configuration
6+
[[plugin]]
7+
name = "actionlint"
8+
9+
[[plugin]]
10+
name = "trufflehog"
11+
12+
[[plugin]]
13+
name = "osv-scanner"
14+
15+
# Source configuration
16+
[[source]]
17+
name = "default"
18+
default = true
19+
20+
# Exclusion patterns
21+
exclude_patterns = [
22+
"node_modules/**",
23+
"dist/**",
24+
"build/**",
25+
"coverage/**",
26+
"**/*.min.js",
27+
"**/*.min.css",
28+
".git/**",
29+
]
30+
31+
# Code Smells Configuration
32+
[smells]
33+
mode = "block"
34+
35+
[smells.boolean_logic]
36+
enabled = true
37+
threshold = 4
38+
39+
[smells.nested_control_flow]
40+
enabled = true
41+
threshold = 4
42+
43+
[smells.function_parameters]
44+
enabled = true
45+
threshold = 5
46+
47+
[smells.function_length]
48+
enabled = true
49+
threshold = 50
50+
51+
[smells.file_length]
52+
enabled = true
53+
threshold = 500
54+
55+
[smells.cognitive_complexity]
56+
enabled = true
57+
threshold = 15
58+
59+
[smells.duplicate_code]
60+
enabled = true
61+
threshold = 6
62+
63+
[smells.large_class]
64+
enabled = true
65+
threshold = 500
66+
67+
[smells.long_parameter_list]
68+
enabled = true
69+
threshold = 2

CLAUDE.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
## Code Style & Organization
22
- Order method, fields and properties, first by accessibility and then by alphabetical order.
33
- Don't add the Microsoft copyright header to new files.
4+
- Use `Uri.joinPath()` for constructing file paths to ensure platform-correct path separators (e.g., `Uri.joinPath(venvPath, 'share', 'jupyter', 'kernels')` instead of string concatenation with `/`)
45

56
## Testing
67
- Unit tests use Mocha/Chai framework with `.unit.test.ts` extension

0 commit comments

Comments
 (0)