Skip to main content
GRDB is an open-source project that welcomes contributions from the community. There are several ways you can help improve the library.

Ways to Contribute

Code

Submit pull requests with improvements and bug fixes

Support

Help others in issues and discussions

Sponsor

Support development financially

Contribute to the Codebase

Setup Your Development Environment

1

Install Required Tools

For running tests:For contributing code:
2

Clone the Repository

Clone the development branch:
git clone -b development https://github.com/groue/GRDB.swift.git
cd GRDB.swift
3

Build Custom SQLite (Optional)

Run at the repository root:
make SQLiteCustom
This avoids warnings in Xcode, though it’s not strictly necessary if you don’t plan to work on custom SQLite builds.
4

Open the Workspace

Open GRDB.xcworkspace in Xcode:
  • GRDB.xcodeproj: Main framework and tests
  • GRDBCustom.xcodeproj: Custom SQLite builds
  • GRDBProfiling.xcodeproj: Profiling with Instruments
  • Demo app projects

Running Tests

You can run tests from Xcode or the command line. Before submitting a pull request, run smoke tests:
make smokeTest
The smoke tests perform minimal testing of system SQLite, SQLCipher, custom SQLite builds, and SPM integration. Before a release, the full test suite must pass:
make test

Code Style Guidelines

1

Follow Swift API Design Guidelines

Familiarize yourself with the Swift API Design Guidelines.
2

Use Spaces, Not Tabs

All indentation should use spaces.
3

Preserve Whitespace-Only Lines

Don’t trim whitespace-only lines.
4

Wrap Documentation Comments

Hard-wrap documentation comments at column 76.Set in Xcode: Preferences > Text Editing > Display > Page guide at column: 76
5

No SwiftLint Warnings

Ensure there are no SwiftLint warnings after building.

Documentation Requirements

GRDB is documentation-driven: nothing ships without proper documentation.
  • DocC Reference: API documentation using DocC comments
  • Guides: README.md and files in the Documentation folder
To verify your DocC reference documentation:
  1. Close the workspace
  2. Open Package.swift in Xcode
  3. Use Product > Build Documentation
  • Someone who is not you can understand the feature’s purpose
  • Usage is clearly explained
  • Caveats and corner cases are documented
  • If documentation is hard to write, the API may need fixing

Submitting Your Contribution

1

Make Your Changes

Write code, add tests, and update documentation.
2

Test Thoroughly

Run make smokeTest to verify your changes.
3

Open a Pull Request

Target the development branch with your pull request.
If you’re granted push access to the repository, check ReleaseProcess.md for publishing a new version.

Answer Issues and Discussions

Helping others is a great way to contribute: This helps you:
  • Get familiar with the library
  • Help shape its direction
  • Build community expertise

GitHub Issues

Report bugs and request features

GitHub Discussions

Ask questions and share knowledge

Swift Forums

Discuss GRDB with the Swift community

Follow @groue

Get release announcements and tips

Financial Support

GRDB is free and openly developed by contributors on their free time. It’s not controlled by any company.

Support Channels

Support is free as long as it happens publicly and is available to everyone (including search engines). This excludes:
  • Private social network channels
  • Closed environments like Slack

Commercial Support

For specific development or support needs, contact:

Sponsorship

You can sponsor GRDB development:

Sponsor @groue on GitHub

Support ongoing development and maintenance

Project Governance

GRDB is not controlled by any company. Development happens according to contributors’ will, needs, and availability. All major decisions are made transparently in issues and discussions.

Recognition

Contributors are recognized in:
  • Release notes and CHANGELOG.md
  • GitHub contributor graphs
  • Pull request acknowledgments
Thank you for helping make GRDB better! 🙏

Build docs developers (and LLMs) love