All pull request titles must follow the Conventional Commits specification. Individual commits within your PR can use any format you prefer; only the PR title matters, as it becomes the commit message on main after squashing.
<type>(<scope>): <subject>
- feat: A new feature
- fix: A bug fix
- docs: Documentation changes
- refactor: Code refactoring without feature changes or bug fixes
- test: Adding or updating tests
- chore: Build, CI, dependencies, or tooling changes
- perf: Performance improvements
Optional but recommended. Use the affected component:
migrations- Migration system changesschema- Schema package changesbuilder- SQL builder changesexecutor- Executor changesdialects/postgresql- PostgreSQL dialectdialects/sqlite- SQLite dialectdialects/sqlserver- SQL Server dialect
feat(migrations): add transaction support for Up/Down operationsfix(schema): validate table names case-insensitivelydocs(README): add foreign key examplestest(dialects/postgresql): add boolean conversion testsrefactor: remove hungarian notation from variable names
All pull requests must be squashed before merging to main. This ensures that only the PR title (following Conventional Commits) becomes a commit on the main branch.
- Use GitHub's "Squash and merge" option when merging
- The PR title becomes the commit message on
main - One logical change = one squashed commit
Before opening a PR:
- Code follows Go idioms and project conventions
- Tests added/updated for new functionality
- No Hungarian notation or inconsistent naming
- Error messages are wrapped with context using
fmt.Errorf(...%w...) - Godoc comments added for exported types/functions
- PR title follows Conventional Commits format