From 5c68d8299510fc0e9aced92e81edb2885405e983 Mon Sep 17 00:00:00 2001 From: Yufan Song <33971064+yufansong@users.noreply.github.com> Date: Fri, 22 Mar 2024 18:08:19 -0700 Subject: [PATCH] doc: add contribution docs (#101) * add doc * fix typo --- CONTRIBUTING.md | 83 +++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 2 ++ 2 files changed, 85 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000000..dc1f7647c9 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,83 @@ +# Contributing + +Thanks for your interest in contributing to OpenDevin! We welcome and appreciate contributions. +To report bugs, create a [GitHub issue](https://github.com/OpenDevin/OpenDevin/issues/new/choose). + +## Contribution Guide +### 1. Fork the Official Repository + +Fork [OpenDevin repository](https://github.com/OpenDevin/OpenDevin) into your own account. +Clone your own forked repository into your local environment. + +```shell +git clone git@github.com:/OpenDevin.git +``` + +### 2. Configure Git + +Set the official repository as your [upstream](https://www.atlassian.com/git/tutorials/git-forks-and-upstreams) to synchronize with the latest update in the official repository. +Add the original repository as upstream + +```shell +cd OpenDevin +git remote add upstream git@github.com:OpenDevin/OpenDevin.git +``` + +Verify that the remote is set. +```shell +git remote -v +``` +You should see both `origin` and `upstream` in the output. + +### 3. Synchronize with Official Repository +Synchronize latest commit with offical repository before coding. + +```shell +git fetch upstream +git checkout main +git merge upstream/main +git push origin main +``` + +### 4. Create a New Branch And Open a Pull Request +After you finish implementation, open forked repository. The source branch is your new branch, and the target branch is `OpenDevin/OpenDevin` `main` branch. Then PR should appears in [OpenDevin PRs](https://github.com/OpenDevin/OpenDevin/pulls). + +Then OpenDevin team will review your code. + +## PR Rules + +### 1. Pull Request title + +As described in [here](https://github.com/commitizen/conventional-commit-types/blob/master/index.json), a valid PR title should begin with one of the following prefixes: + +- `feat`: A new feature +- `fix`: A bug fix +- `doc`: Documentation only changes +- `refactor`: A code change that neither fixes a bug nor adds a feature +- `style`: A refactoring that improves code style +- `perf`: A code change that improves performance +- `test`: Adding missing tests or correcting existing tests +- `ci`: Changes to CI configuration files and scripts (example scopes: `.github`, `ci` (Buildkite)) +- `chore`: Other changes that don't modify src or test files +- `revert`: Reverts a previous commit + +For example, a PR title could be: +- `refactor: modify package path` +- `feat(frontend): xxxx`, where `(frontend)` means that this PR mainly focuses on the frontend component. + +You may also check out previous PRs in the [PR list](https://github.com/OpenDevin/OpenDevin/pulls). + +As described in [here](https://github.com/OpenDevin/OpenDevin/labels), we create several labels. Every PR should better tag with corresponding labels. + +### 2. Pull Request description + +- If your PR is small (such as a typo fix), you can go brief. +- If it is large and you have changed a lot, it's better to write more details. + + +## How to begin +Please check the details in each parts: [frontend](./frontend/README.md), [agenthub](./agenthub/README.md), [evaluation](./evaluation/README.md), [server](./server/README.md). + +## Tests +TODO: make sure code pass the test before submit. + diff --git a/README.md b/README.md index 298d159cb1..894a286322 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,8 @@ OpenDevin is a community-driven project, and we welcome contributions from every - **Research and Evaluation:** Contribute to our understanding of LLMs in software engineering, participate in evaluating the models, or suggest improvements. - **Feedback and Testing:** Use the OpenDevin toolset, report bugs, suggest features, or provide feedback on usability. +For details, please check [doc].(./CONTRIBUTING.md) + ## Join Us We use Slack to discuss. Feel free to fill in the [form](https://forms.gle/758d5p6Ve8r2nxxq6) if you would like to join the Slack organization of OpenDevin. We will reach out shortly if we feel you are a good fit to the current team!