Skip to content

Commit 6a2ba44

Browse files
committed
Merge branch 'main' into spatial_start
2 parents dbca85a + e7f9c6e commit 6a2ba44

34 files changed

Lines changed: 2905 additions & 1528 deletions

File tree

.github/workflows/release-packages.yml

Lines changed: 98 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ jobs:
6262
uses: ./.github/workflows/actions/sign-files
6363
with:
6464
paths: |
65-
./src/target/release/packager/*.exe
66-
./src/target/release/packager/*.msi
65+
./ggsql-cli/target/release/packager/*.exe
66+
./ggsql-cli/target/release/packager/*.msi
6767
env:
6868
# environment variables required to sign with signtool
6969
SM_HOST: ${{ secrets.SM_HOST }}
@@ -76,14 +76,14 @@ jobs:
7676
uses: actions/upload-artifact@v4
7777
with:
7878
name: ggsql-windows-nsis
79-
path: src/target/release/packager/*.exe
79+
path: ggsql-cli/target/release/packager/*.exe
8080
retention-days: 30
8181

8282
- name: Upload MSI installer
8383
uses: actions/upload-artifact@v4
8484
with:
8585
name: ggsql-windows-msi
86-
path: src/target/release/packager/*.msi
86+
path: ggsql-cli/target/release/packager/*.msi
8787
retention-days: 30
8888

8989
build-macos-x86_64:
@@ -162,10 +162,10 @@ jobs:
162162
xargs -0 -I{} codesign --force --options runtime --timestamp --sign "$SIGN_ID" "{}"
163163
# Then sign the executables with hardened runtime + entitlements
164164
codesign --force --options runtime --timestamp \
165-
--entitlements src/entitlements.plist \
165+
--entitlements entitlements.plist \
166166
--sign "$SIGN_ID" target/release/ggsql
167167
codesign --force --options runtime --timestamp \
168-
--entitlements src/entitlements.plist \
168+
--entitlements entitlements.plist \
169169
--sign "$SIGN_ID" target/release/ggsql-jupyter
170170
171171
- name: Build and notarize PKG installer (x86_64)
@@ -285,10 +285,10 @@ jobs:
285285
xargs -0 -I{} codesign --force --options runtime --timestamp --sign "$SIGN_ID" "{}"
286286
# Then sign the executables with hardened runtime + entitlements
287287
codesign --force --options runtime --timestamp \
288-
--entitlements src/entitlements.plist \
288+
--entitlements entitlements.plist \
289289
--sign "$SIGN_ID" target/release/ggsql
290290
codesign --force --options runtime --timestamp \
291-
--entitlements src/entitlements.plist \
291+
--entitlements entitlements.plist \
292292
--sign "$SIGN_ID" target/release/ggsql-jupyter
293293
294294
- name: Build and notarize PKG installer (aarch64)
@@ -377,7 +377,7 @@ jobs:
377377
uses: actions/upload-artifact@v4
378378
with:
379379
name: ggsql-linux-deb-x86_64
380-
path: src/target/release/packager/*.deb
380+
path: ggsql-cli/target/release/packager/*.deb
381381
retention-days: 30
382382

383383
build-linux-aarch64:
@@ -428,7 +428,7 @@ jobs:
428428
uses: actions/upload-artifact@v4
429429
with:
430430
name: ggsql-linux-deb-aarch64
431-
path: src/target/release/packager/*.deb
431+
path: ggsql-cli/target/release/packager/*.deb
432432
retention-days: 30
433433

434434
build-cargo:
@@ -485,9 +485,95 @@ jobs:
485485
env:
486486
CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }}
487487

488+
- name: Publish ggsql-cli
489+
run: cargo publish --package ggsql-cli
490+
env:
491+
CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }}
492+
493+
build-wasm:
494+
name: Build Wasm Package (wasm32)
495+
runs-on: ubuntu-latest
496+
environment: npm
497+
permissions:
498+
id-token: write
499+
contents: read
500+
501+
steps:
502+
- name: Checkout code
503+
uses: actions/checkout@v4
504+
505+
- name: Increase disk space
506+
run: |
507+
sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc /opt/hostedtoolcache/CodeQL
508+
sudo docker image prune --all --force
509+
sudo docker builder prune -a
510+
511+
- name: Install Node.js
512+
uses: actions/setup-node@v4
513+
with:
514+
node-version: "22"
515+
registry-url: "https://registry.npmjs.org"
516+
517+
- name: Install tree-sitter-cli
518+
run: npm install -g tree-sitter-cli
519+
520+
- name: Install Rust toolchain
521+
uses: dtolnay/rust-toolchain@stable
522+
523+
- name: Install LLVM
524+
run: sudo apt-get install -y llvm
525+
526+
- name: Install wasm-pack
527+
run: cargo install wasm-pack
528+
529+
- name: Install wasm-opt
530+
run: cargo install wasm-opt
531+
532+
- name: Build WASM library
533+
working-directory: ggsql-wasm/library
534+
run: npm install && npm run build
535+
536+
- name: Build WASM package
537+
working-directory: ggsql-wasm
538+
run: wasm-pack build --target web --profile wasm --no-opt
539+
540+
- name: Optimise WASM binary
541+
working-directory: ggsql-wasm
542+
run: wasm-opt pkg/ggsql_wasm_bg.wasm -o pkg/ggsql_wasm_bg.wasm -Oz --all-features
543+
544+
- name: Create npm tarball
545+
working-directory: ggsql-wasm/pkg
546+
run: npm pack
547+
548+
- name: Upload npm tarball
549+
uses: actions/upload-artifact@v4
550+
with:
551+
name: ggsql-wasm-npm
552+
path: ggsql-wasm/pkg/*.tgz
553+
retention-days: 30
554+
555+
- name: Update npm for OIDC support
556+
if: startsWith(github.ref, 'refs/tags/v')
557+
run: npm install -g npm@latest
558+
559+
- name: Determine npm dist-tag
560+
if: startsWith(github.ref, 'refs/tags/v')
561+
id: dist-tag
562+
run: |
563+
if [[ "$GITHUB_REF_NAME" == *"-dev"* || "$GITHUB_REF_NAME" == *"-rc"* ]]; then
564+
echo "tag=next" >> "$GITHUB_OUTPUT"
565+
else
566+
echo "tag=latest" >> "$GITHUB_OUTPUT"
567+
fi
568+
569+
- name: Publish to npm
570+
if: startsWith(github.ref, 'refs/tags/v')
571+
working-directory: ggsql-wasm/pkg
572+
run: npm publish --access=public --provenance --tag ${{ steps.dist-tag.outputs.tag }}
573+
488574
create-release:
489575
name: Create GitHub Release
490-
needs: [build-windows, build-macos-x86_64, build-macos-aarch64, build-linux-x86_64, build-linux-aarch64, build-cargo]
576+
needs: [build-windows, build-macos-x86_64, build-macos-aarch64, build-linux-x86_64, build-linux-aarch64, build-cargo, build-wasm]
491577
runs-on: ubuntu-latest
492578
permissions:
493579
contents: write
@@ -510,5 +596,6 @@ jobs:
510596
artifacts/**/*.msi
511597
artifacts/**/*.pkg
512598
artifacts/**/*.deb
599+
artifacts/**/*.tgz
513600
env:
514601
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,31 @@
44

55
- Add cell delimiters and code lens actions to the Positron extension (#366)
66
- ODBC is now turned on for the CLI as well (#344)
7+
- `FROM` can now come before `VISUALIZE`, mirroring the DuckDB style. This means
8+
that `FROM table VISUALIZE x, y` and `VISUALIZE x, y FROM table` are equivalent
9+
queries (#369)
10+
- CLI now has built-in documentation through the `docs` command as well as a
11+
skill for llms through the `skill` command (#361)
712

813
### Fixed
914

1015
- Rendering of inline plots in Positron had a bad interaction with how we
1116
handled auto-resizing in the plot pane. We now have a per-output-location path
1217
in the Jupyter kernel (#360)
18+
- Passing the shape aesthetic via `SETTING` now correctly translates named
19+
shapes (#368)
20+
- Asterisk shape now has lines 60 degrees apart, giving an even shape
1321

1422
### Changed
1523

1624
- Reverted an earlier decision to materialize CTEs and the global query in Rust
1725
before registering them back to the backend. We now keep the data purely on the
1826
backend until the layer query as was always intended (#363)
27+
- Relieved some grammatical constraints on the SQL-portion before the VISUALISE
28+
portion (#364).
1929
- Simplified internal approach to DataFrame with DuckDB reader (#365)
30+
- Moved the CLI to its own module rather than be part of the main crate (#379)
31+
- Restructured CLAUDE.md to better deal with the rising complexity of the project (#382)
2032

2133
### Removed
2234

0 commit comments

Comments
 (0)