mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-07-12 11:39:39 +00:00

* Update configs * Update configs * Update precommit black exclude * Update precommit exclude isort * Test precommit * Revert test commit * isort & black * Test precommit * Revert test precommit * Update docs * Apply recipe update * Fix black_check recipe * Grammar
86 lines
3.7 KiB
Markdown
86 lines
3.7 KiB
Markdown
# How to Contribute
|
|
|
|
Welcome to [OpenMetadata](https://open-metadata.org). Our goal is to build an Open standard for Metadata. We genuinely believe this mission can only be achieved through building a great community.
|
|
|
|
We ❤️ all contributions, big and small!
|
|
|
|
## Github issues
|
|
|
|
Look for issues under [github/issues tab](https://github.com/open-metadata/OpenMetadata/issues) . If you have a feature request or found a bug please file an issue. This will help us track and will help community overall as well.
|
|
|
|

|
|
|
|
## Fork Github project
|
|
|
|
OpenMetadata Github repository can be accessed here [https://github.com/open-metadata/OpenMetadata](https://github.com/open-metadata/OpenMetadata) .
|
|
|
|
.png>)
|
|
|
|
Create a local clone of your fork
|
|
|
|
```bash
|
|
git clone https://github.com/<username>/OpenMetadata.git
|
|
```
|
|
|
|
Set a new remote repository that points to the OpenMetadata repository to pull changes from the open source OpenMetadata codebase into your clone
|
|
|
|
```bash
|
|
cd OpenMetadata/
|
|
git remote add upstream https://github.com/open-metadata/OpenMetadata.git
|
|
git remote -v
|
|
```
|
|
|
|
## Create a branch in your fork
|
|
|
|
```bash
|
|
git checkout -b ISSUE-200
|
|
```
|
|
|
|
Make changes. Follow the [Coding Style](coding-style.md) Guide on best practices and [Build the code & run tests](build-code-run-tests.md) on how to setup Intellij, Maven
|
|
|
|
## Push your changes to Github
|
|
|
|
```bash
|
|
git add .
|
|
git commit -m "ISSUE-200: Meaningful commit message"
|
|
git push origin HEAD:refs/heads/issue-200
|
|
```
|
|
|
|
## Open a PR
|
|
|
|
1. Go to [https://github.com/open-metadata/OpenMetadata/pulls](https://github.com/open-metadata/OpenMetadata/pulls)
|
|
2. It should show an option to open a pull request. 
|
|
3. If not, click on "New Pull request"
|
|
|
|

|
|
4. Select your fork repository and branch 
|
|
5. Click "Create pull request"
|
|
|
|
## Quality tools
|
|
|
|
When working on the Ingestion Framework, you might want to take into consideration the following style-check tooling:
|
|
- [pylint](www.pylint.org) is a Static Code Analysis tool to catch errors, align coding standards and help us follow conventions and apply improvements.
|
|
- [black](https://black.readthedocs.io/en/stable/) can be used to both autoformat the code and validate that the codebase is compliant.
|
|
- [isort](https://pycqa.github.io/isort/) helps us not lose time trying to find the proper combination of importing from `stdlib`, requirements, project files…
|
|
|
|
The main goal is to ensure standardised formatting throughout the codebase.
|
|
|
|
When developing, you can run this tools with `make` recipes: `make lint`, `make black` and `make isort`. Note that we are excluding the generated sources
|
|
from the JSON Schema standards.
|
|
|
|
If you want to take this one step further and make sure that you are not commiting any malformed changes, you can use [pre-commit hooks](https://pre-commit.com/).
|
|
This is a powerful tool that allows us to run specific validations at commit-time. If those validations fail, the commit won't proceed. The interesting point
|
|
is that the tools are going to fix your code for you, so you can freely try to commit again!
|
|
|
|
You can install our hooks via `make precommit_install`.
|
|
|
|
### Tooling Status
|
|
|
|
We are currently using:
|
|
- `pylint` & `black` in the CI validations, so make sure to review your PRs for any warnings you generated.
|
|
- `black` & `isort` in the pre-commit hooks.
|
|
|
|
## We are here to help
|
|
|
|
Please reach out to us anytime you need any help. [Slack](https://slack.open-metadata.org) would be fastest way to get a response.
|