Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions .github/workflows/release-jupyter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,14 @@ jobs:

linux:
needs: generate
runs-on: ubuntu-latest
runs-on: ${{ matrix.runner }}
strategy:
matrix:
target: [x86_64, aarch64]
include:
- target: x86_64
runner: ubuntu-latest
- target: aarch64
runner: ubuntu-24.04-arm
env:
GGSQL_SKIP_GENERATE: "1"
steps:
Expand Down Expand Up @@ -71,9 +75,9 @@ jobs:
matrix:
include:
- target: x86_64
runner: macos-latest
runner: macos-15-intel
- target: aarch64
runner: macos-latest
runner: macos-15
env:
GGSQL_SKIP_GENERATE: "1"
steps:
Expand Down
132 changes: 117 additions & 15 deletions .github/workflows/release-packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,9 @@ jobs:
path: src/target/release/packager/*.msi
retention-days: 30

build-macos:
name: Build macOS Installers
runs-on: macos-latest
build-macos-x86_64:
name: Build macOS Installers (x86_64)
runs-on: macos-15-intel

steps:
- name: Checkout code
Expand All @@ -108,7 +108,7 @@ jobs:
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-apple-darwin, aarch64-apple-darwin
targets: x86_64-apple-darwin

- name: Set up Apple notarization key
run: |
Expand Down Expand Up @@ -144,26 +144,80 @@ jobs:
APPLE_API_KEY: ${{ secrets.GWS_APPLE_API_KEY }}
APPLE_API_ISSUER: ${{ secrets.GWS_APPLE_API_ISSUER }}

- name: Upload DMG installer (x86_64)
uses: actions/upload-artifact@v4
with:
name: ggsql-macos-dmg-x86_64
path: src/target/release/packager/*.dmg
retention-days: 30

build-macos-aarch64:
name: Build macOS Installers (aarch64)
runs-on: macos-15

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: "22"

- name: Install tree-sitter-cli
run: npm install -g tree-sitter-cli

- name: Install ODBC
run: brew install unixodbc

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: aarch64-apple-darwin

- name: Set up Apple notarization key
run: |
mkdir -p ~/.private_keys
echo -n "$APPLE_API_KEY_BASE64" | base64 --decode -o ~/.private_keys/AuthKey_${APPLE_API_KEY}.p8
chmod 600 ~/.private_keys/AuthKey_${APPLE_API_KEY}.p8
env:
APPLE_API_KEY_BASE64: ${{ secrets.GWS_APPLE_API_KEY_BASE64 }}
APPLE_API_KEY: ${{ secrets.GWS_APPLE_API_KEY }}

- name: Configure macOS installer signing
env:
APPLE_SIGN_IDENTITY: ${{ secrets.GWS_APPLE_SIGN_IDENTITY }}
run: |
cat <<EOF >> src/Cargo.toml

[package.metadata.packager.macos]
signing-identity = "${APPLE_SIGN_IDENTITY}"
entitlements = "entitlements.plist"
EOF

- name: Install cargo-packager
run: cargo install cargo-packager --locked

- name: Build ggsql binary (aarch64)
run: cargo build --release --bin ggsql --bin ggsql-jupyter --target aarch64-apple-darwin
run: cargo build --release --bin ggsql --bin ggsql-jupyter

- name: Build DMG installer (aarch64)
run: cargo packager --release --target aarch64-apple-darwin --formats dmg
run: cargo packager --release --formats dmg
env:
APPLE_CERTIFICATE: ${{ secrets.GWS_APPLE_SIGN_P12 }}
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.GWS_APPLE_SIGN_PW }}
APPLE_API_KEY: ${{ secrets.GWS_APPLE_API_KEY }}
APPLE_API_ISSUER: ${{ secrets.GWS_APPLE_API_ISSUER }}

- name: Upload DMG installers
- name: Upload DMG installer (aarch64)
uses: actions/upload-artifact@v4
with:
name: ggsql-macos-dmg
name: ggsql-macos-dmg-aarch64
path: src/target/release/packager/*.dmg
retention-days: 30

build-linux:
name: Build Linux Installers
build-linux-x86_64:
name: Build Linux Installers (x86_64)
runs-on: ubuntu-latest

steps:
Expand Down Expand Up @@ -197,16 +251,64 @@ jobs:
- name: Install cargo-packager
run: cargo install cargo-packager --locked

- name: Build ggsql binary
- name: Build ggsql binary (x86_64)
run: cargo build --release --bin ggsql --bin ggsql-jupyter

- name: Build Debian package (x86_64)
run: cargo packager --release --formats deb

- name: Upload Debian package (x86_64)
uses: actions/upload-artifact@v4
with:
name: ggsql-linux-deb-x86_64
path: src/target/release/packager/*.deb
retention-days: 30

build-linux-aarch64:
name: Build Linux Installers (aarch64)
runs-on: ubuntu-24.04-arm

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: "22"

- name: Install tree-sitter-cli
run: npm install -g tree-sitter-cli

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: aarch64-unknown-linux-gnu

- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
libgtk-3-dev \
libwebkit2gtk-4.1-dev \
libappindicator3-dev \
librsvg2-dev \
patchelf \
unixodbc-dev

- name: Install cargo-packager
run: cargo install cargo-packager --locked

- name: Build ggsql binary (aarch64)
run: cargo build --release --bin ggsql --bin ggsql-jupyter

- name: Build Debian package
- name: Build Debian package (aarch64)
run: cargo packager --release --formats deb

- name: Upload Debian package
- name: Upload Debian package (aarch64)
uses: actions/upload-artifact@v4
with:
name: ggsql-linux-deb
name: ggsql-linux-deb-aarch64
path: src/target/release/packager/*.deb
retention-days: 30

Expand Down Expand Up @@ -265,7 +367,7 @@ jobs:

create-release:
name: Create GitHub Release
needs: [build-windows, build-macos, build-linux, build-cargo]
needs: [build-windows, build-macos-x86_64, build-macos-aarch64, build-linux-x86_64, build-linux-aarch64, build-cargo]
runs-on: ubuntu-latest
permissions:
contents: write
Expand Down
10 changes: 5 additions & 5 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ default-members = [
resolver = "2"

[workspace.package]
version = "0.2.2"
version = "0.2.3"
edition = "2021"
authors = ["ggsql Team"]
license = "MIT"
Expand All @@ -26,8 +26,8 @@ description = "A declarative visualization language that extends SQL with powerf

[workspace.dependencies]
# workspace packages
tree-sitter-ggsql = { path = "tree-sitter-ggsql", version = "0.2.2" }
ggsql = { path = "src", version = "0.2.2" }
tree-sitter-ggsql = { path = "tree-sitter-ggsql", version = "0.2.3" }
ggsql = { path = "src", version = "0.2.3" }

# Parsing
csscolorparser = "0.8.1"
Expand Down
2 changes: 1 addition & 1 deletion ggsql-jupyter/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "maturin"

[project]
name = "ggsql-jupyter"
version = "0.2.2"
version = "0.2.3"
description = "Jupyter kernel for ggsql - SQL extension for declarative data visualization"
readme = "README.md"
license = { text = "MIT" }
Expand Down
2 changes: 1 addition & 1 deletion ggsql-python/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "ggsql-python"
version = "0.2.2"
version = "0.2.3"
edition = "2021"
authors.workspace = true
license.workspace = true
Expand Down
2 changes: 1 addition & 1 deletion ggsql-python/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "maturin"

[project]
name = "ggsql"
version = "0.2.2"
version = "0.2.3"
description = "SQL extension for declarative data visualization"
readme = "README.md"
requires-python = ">=3.10"
Expand Down
2 changes: 1 addition & 1 deletion ggsql-python/python/ggsql/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
"execute",
"render_altair",
]
__version__ = "0.2.2"
__version__ = "0.2.3"

# Type alias for any Altair chart type
AltairChart = Union[
Expand Down
6 changes: 6 additions & 0 deletions ggsql-vscode/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Changelog

## 0.2.3

Alpha release.

- Build natively for targets in GHA release workflows

## 0.2.2

Alpha release.
Expand Down
4 changes: 2 additions & 2 deletions ggsql-vscode/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion ggsql-vscode/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "ggsql",
"displayName": "ggsql",
"description": "Syntax highlighting and language runtime for ggsql - SQL with declarative visualization",
"version": "0.2.2",
"version": "0.2.3",
"publisher": "ggsql",
"engines": {
"vscode": "^1.75.0"
Expand Down
2 changes: 1 addition & 1 deletion ggsql-wasm/demo/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion tree-sitter-ggsql/bindings/python/__init__.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion tree-sitter-ggsql/package.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion tree-sitter-ggsql/pyproject.toml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion tree-sitter-ggsql/tree-sitter.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
}
],
"metadata": {
"version": "0.2.2",
"version": "0.2.3",
"license": "MIT",
"description": "ggsql grammar for tree-sitter",
"authors": [
Expand Down
Loading