Skip to content

Latest commit

 

History

History
76 lines (52 loc) · 2.45 KB

File metadata and controls

76 lines (52 loc) · 2.45 KB

Contributing to SQL Assist Desktop

Thanks for your interest in contributing! This document covers how to get started.

How to Contribute

  1. Fork the repository on GitHub
  2. Clone your fork and create a branch: git checkout -b feature/your-feature-name
  3. Make your changes, following the code style below
  4. Run tests and lint
  5. Commit with clear messages (e.g. feat: add X, fix: resolve Y)
  6. Push to your fork and open a Pull Request against main

Development Setup

npm install
npm run dev

This starts the Electron app in development mode with hot reload.

Running Tests

npm run test

For watch mode during development:

npm run test:watch

Code Style

  • ESLint: Run npm run lint before committing
  • Prettier: Run npm run format to format code

We use ESLint and Prettier for consistent style. Please ensure both pass before submitting a PR.

Building

npm run build

Platform-specific builds:

  • macOS: npm run build:mac (produces universal DMG, requires Apple credentials for notarization)
  • Windows: npm run build:win (when configured)
  • Linux: npm run build:linux (when configured)

macOS Notarization

Building for macOS with notarization requires Apple Developer credentials. See the README for setup instructions (.env.example, APPLE_ID, APPLE_APP_SPECIFIC_PASSWORD, APPLE_TEAM_ID).

Release Workflow

The release workflow (.github/workflows/release.yml) runs on tag push (v*.*.*) and produces a signed, notarized macOS DMG. It requires these GitHub repository secrets:

Secret Purpose
MACOS_CERTIFICATE Base64-encoded .p12 code signing certificate (Developer ID Application, not Apple Distribution)
MACOS_CERTIFICATE_PWD Password for the .p12 file
MACOS_CERTIFICATE_NAME Certificate identity, e.g. Developer ID Application: Your Name (TEAM_ID) — from Keychain Access, double-click cert → Details
APPLE_ID Apple ID email
APPLE_APP_SPECIFIC_PASSWORD App-specific password for notarization
APPLE_TEAM_ID Apple Developer Team ID

Project Structure

  • src/main/ — Electron main process (services, IPC handlers, database)
  • src/preload/ — Preload scripts exposing secure APIs via contextBridge
  • src/renderer/ — Vue 3 frontend (components, stores, views)
  • src/shared/ — Shared types and constants