diff --git a/content/concepts/contributing.md b/content/concepts/contributing.md index f9bcd006..f58ec879 100644 --- a/content/concepts/contributing.md +++ b/content/concepts/contributing.md @@ -1,38 +1,73 @@ --- title: Ways to Contribute -description: Help develop Ocean core software, more +description: Help to improve and develop Ocean core software. --- -### Help develop Ocean core software +## Report a bug -We'd love to have you help contribute to the Ocean core software! Here are ways to get going: +To report a bug that isn't a vulnerability, go to the relevant GitHub repository, click on the _Issues_ tab and select _Bug report_. -- _Just do it:)_ Branch from the code, improve it, submit a Pull Request. -- Chat with other Ocean developers in [Discord](https://discord.gg/TnXjkR5). -- Because of the weird world of intellectual property, before it can go through, we need to follow the [legal requirements](/concepts/legal-reqs/). Please be aware of this. -- Finally, here's the [Contributor Code of Conduct](/concepts/code-of-conduct/). +Before reporting a bug, search existing open and closed issues and PRs to see if something has already been reported. If not, then go ahead and create a new bug report, following the structure suggested in the issue template. -### Develop an app or integration, using Ocean as a tool +To report a vulnerability, you may do so in a [less public manner](/concepts/vulnerabilities/). -Integrate Ocean at one of its interface points: React hooks, Javascript library, Python library, smart contracts, etc. +## Suggest a new feature + +Use the _Issues_ section of each repository and select _Feature request_ to suggest and discuss any features you would like to see added. + +As with bug reports, search existing open and closed issues and PRs to see if something has already been reported. + +## Fix or improve core software + +We'd love to have you contribute to any repository within the `oceanprotocol` GitHub organization! + +Before you start coding right away, please follow those basic guidelines: + +- If no issue for your case is present, open one first before starting to work on something, so it can be discussed. +- Make yourself familiar with eventual repository-specific contribution requirements and code style requirements. +- Because of the weird world of intellectual property, we need you to follow the [legal requirements](/concepts/legal-reqs/) for contributing code. +- Be excellent to each other, as outlined in our [Contributor Code of Conduct](/concepts/code-of-conduct/). + +### Workflow + +A typical code contribution in any Ocean Protocol repository would go as follows: + +1. As an external developer, fork the respective repo and push to your own fork. Ocean core developers push directly on the repo under `oceanprotocol` org. +2. We follow [Trunk Based Development](https://trunkbaseddevelopment.com) so work in feature branches, branched off from the `main` branch. For naming use `feature/your-feature` or `feature/23` for new features and `fix/your-fix` or `fix/23` for bug fixes, referring to the issue number. +3. To get visibility and Continuous Integration feedback as early as possible, open your Pull Request as a `Draft`. +4. Give it a meaningful title, and at least link to the respective issue in the Pull Request description, like `Fixes #23`. Describe your changes, mention things for reviewers to look out for, and for UI changes screenshots and videos are helpful. +5. Once your Pull Request is ready, mark it as `Ready for Review`, in most repositories code owners are automatically notified and asked for review. +6. Get all CI checks green and address eventual change requests. +7. If your PR stays open for longer and merge conflicts are detected, merge or rebase your branch against the current `main` branch. +8. Once a Pull Request is approved, you can merge it. + +Depending on the release management of each repository, your contribution will be either included in a next release, or is put live automatically. + +Except for GitHub, you can find most Ocean Protocol core developers in [Discord](https://discord.gg/TnXjkR5) if you have further development questions. + +## Develop an app or integration on top of Ocean Protocol + +Create an app with one of Ocean Protocol's interface points: + + + + + Ocean documentation will help. And... you're here:) -### Report a bug +## Improve these docs -To report a vulnerability, [go here](/concepts/vulnerabilities/). +These docs can always be improved. Every content page has an edit link at its end linking you to the content source on GitHub for simple copy editing. -To report a bug that isn't a vulnerability, go to the relevant GitHub repository, click on the Issues tab, click on the New issue button, and read the instructions. +If you found a technical bug or have an improvement suggestion, head over to the repo's _Issues_ section: -### Improve these docs - -These docs can always be improved. Here's the repo. -### Apply for a developer job +## Apply for a developer job Really love building on Ocean and want to dive deeper? Consider joining us full time. Our openings are listed at https://github.com/oceanprotocol/devjobs. -### Other ways to get involved +## Other ways to get involved Please go to the [Ocean Community Page](https://www.oceanprotocol.com/community) for more ideas on how to get involved.