-
Notifications
You must be signed in to change notification settings - Fork 0
Development
Berkay Günaydın edited this page Aug 6, 2026
·
1 revision
Everything you need to build, test, and contribute to propq.
- Go 1.24+
make-
golangci-lint(formake lint)
make build # binary in build/propq
make build-all # cross-compile all 7 platforms
make install # install to $GOPATH/bin
make test # go test ./...
make lint # golangci-lint run ./...
make run ARGS="--sql \"SELECT 1\" -s local" # build + run with args
make tidy # go mod tidy
make update-deps # go get -u ./... && go mod tidycmd/propq/ entrypoint (main.go → app.Execute())
internal/app/ subcommands and glue (flags, run, skill, servers)
pkg/config/ TOML parsing, Connection struct, search logic
pkg/scanner/ SQL source: flag / file / pipe / editor
pkg/runner/ async executor: goroutine pool, semaphores, spinner, retry
pkg/display/ formatting: table, JSON, CSV, pager, summary
pkg/history/ query history store
The public API lives in pkg/ — anything there is importable by other projects, so keep it deliberate.
SQL → Scanner → Config → Runner → Display → stdout
↓
Filter (regex + tags)
↓
Async executor (goroutines + per-server semaphore)
↓
Result collection (with optional streaming)
-
gofmtclean, standard library first, existing patterns followed - Comments in English, matching the codebase
- Add or update tests for behavior changes (see
pkg/runner/spinner_test.go) - Commit with Conventional Commits:
feat:,fix:,docs:,refactor:,test:,chore:— imperative mood, lowercase scope when useful (feat(display): ...)
- Destructive SQL (DELETE/DROP/TRUNCATE/ALTER) covered by
--force— never silently allowed - No real credentials committed — config goes in
propq.toml.exampleonly, with placeholders - Defaults stay fail-closed: new risky behavior must default to off
-
--dry-run,--json, and quiet modes documented if behavior changed - README updated if flags, config keys, or output changed
The test workflow runs go test ./... against a real MySQL 8.0 service container.
See CONTRIBUTING.md for the full guidelines: bug report format, feature request process, PR workflow, and the safety checklist. Bugs and feature requests go to issues; security issues go through the Security Policy. All contributors follow the Code of Conduct.
This wiki is community-maintained. Found something outdated? Open an issue on the repository.
propq — Async SQL executor for MySQL/MariaDB
- Home
- Installation
- Getting-Started
- Configuration
- CLI-Reference
- Output-Formats
- Safety
- Examples
- AI-Agents
- Development
External links