69 lines
3.4 KiB
Markdown
69 lines
3.4 KiB
Markdown
# Contributing to [SQLGlot](https://github.com/tobymao/sqlglot/blob/main/README.md)
|
|
|
|
SQLGLot is open source software. We value feedback and we want to make contributing to this project as
|
|
easy and transparent as possible, whether it's:
|
|
|
|
- Reporting a bug
|
|
- Discussing the current state of the code
|
|
- Submitting a fix
|
|
- Proposing new features
|
|
|
|
## We develop with Github
|
|
|
|
We use github to host code, to track issues and feature requests, as well as accept pull requests.
|
|
|
|
## Finding tasks to work on
|
|
|
|
When the core SQLGlot team does not plan to work on an issue, it is usually closed as "not planned". This may happen
|
|
when a request is exceptionally difficult to address, or because the team deems that it shouldn't be prioritized.
|
|
|
|
These issues can be a good starting point when looking for tasks to work on. Simply filter the issue list to fetch
|
|
the closed issues and then search for those marked as "not planned". If the scope of an issue is not clear or you
|
|
need guidance, feel free to ask for clarifications.
|
|
|
|
Before taking on a task, consider studying the [AST primer](https://github.com/tobymao/sqlglot/blob/main/posts/ast_primer.md) and the [onboarding document](https://github.com/tobymao/sqlglot/blob/main/posts/onboarding.md).
|
|
|
|
## Submitting code changes
|
|
|
|
Pull requests are the best way to propose changes to the codebase, and we actively welcome them.
|
|
|
|
Pull requests should be small and they need to follow the conventions of the project. For features that require
|
|
many changes, please reach out to us on [Slack](https://tobikodata.com/slack) before making a request, in order
|
|
to share any relevant context and increase its chances of getting merged.
|
|
|
|
1. Fork the repo and create your branch from `main`
|
|
2. If you've added code with non-trivial changes, add tests
|
|
3. If you've changed APIs, update the documentation (docstrings)
|
|
4. Ensure the test suite & linter [checks](https://github.com/tobymao/sqlglot/blob/main/README.md#run-tests-and-lint) pass
|
|
5. Issue that pull request and wait for it to be reviewed by a maintainer or contributor
|
|
|
|
Note: make sure to follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) guidelines when creating a PR.
|
|
|
|
## Report bugs using Github's [issues](https://github.com/tobymao/sqlglot/issues)
|
|
|
|
We use GitHub issues to track public bugs. Report a bug by opening a new issue.
|
|
|
|
**Great Bug Reports** tend to have:
|
|
|
|
- A quick summary and/or background
|
|
- Steps to reproduce
|
|
- Be specific
|
|
- Give sample code if you can
|
|
- What you expected would happen
|
|
- What actually happens
|
|
- Notes (possibly including why you think this might be happening, or stuff you tried that didn't work)
|
|
- References (e.g. documentation pages related to the issue)
|
|
|
|
## Start a discussion using Github's [discussions](https://github.com/tobymao/sqlglot/discussions)
|
|
|
|
[We use GitHub discussions](https://github.com/tobymao/sqlglot/discussions/190) to discuss about the current state
|
|
of the code. If you want to propose a new feature, this is the right place to do it. Just start a discussion, and
|
|
let us know why you think this feature would be a good addition to SQLGlot (by possibly including some usage examples).
|
|
|
|
## [License](https://github.com/tobymao/sqlglot/blob/main/LICENSE)
|
|
|
|
By contributing, you agree that your contributions will be licensed under its MIT License.
|
|
|
|
## References
|
|
|
|
This document was adapted from [briandk's template](https://gist.github.com/briandk/3d2e8b3ec8daf5a27a62).
|