mirror of
https://github.com/aljazceru/gpt-engineer.git
synced 2025-12-17 20:55:09 +01:00
fix README.md + add CONTRIBUTING.md
This commit is contained in:
112
.github/CONTRIBUTING.md
vendored
Normal file
112
.github/CONTRIBUTING.md
vendored
Normal file
@@ -0,0 +1,112 @@
|
||||
# Contributing to GPT Engineer
|
||||
|
||||
By participating in this project, you agree to abide by the [code of conduct](CODE_OF_CONDUCT.md).
|
||||
|
||||
## Getting Started
|
||||
|
||||
To get started with contributing, please follow these steps:
|
||||
|
||||
1. Fork the repository and clone it to your local machine.
|
||||
2. Install any necessary dependencies.
|
||||
3. Create a new branch for your changes: `git checkout -b my-branch-name`.
|
||||
4. Make your desired changes or additions.
|
||||
5. Run the tests to ensure everything is working as expected.
|
||||
6. Commit your changes: `git commit -m "Descriptive commit message"`.
|
||||
7. Push to the branch: `git push origin my-branch-name`.
|
||||
8. Submit a pull request to the `main` branch of the original repository.
|
||||
|
||||
|
||||
## Code Style
|
||||
|
||||
Please make sure to follow the established code style guidelines for this project. Consistent code style helps maintain readability and makes it easier for others to contribute to the project.
|
||||
|
||||
To enforce this we use [`pre-commit`](https://pre-commit.com/) to run [`black`](https://black.readthedocs.io/en/stable/index.html) and [`ruff`](https://beta.ruff.rs/docs/) on every commit.
|
||||
|
||||
`pre-commit` is part of our `requirements.txt` file so you should already have it installed. If you don't, you can install the library via pip with:
|
||||
|
||||
```bash
|
||||
$ pip install -r requirements.txt
|
||||
```
|
||||
|
||||
And then install the `pre-commit` hooks with:
|
||||
```bash
|
||||
$ pre-commit install
|
||||
|
||||
pre-commit installed at .git/hooks/pre-commit
|
||||
|
||||
```
|
||||
|
||||
If you are not familiar with the concept of [git hooks](https://git-scm.com/docs/githooks) and/or [`pre-commit`](https://pre-commit.com/) please read the documentation to understand how they work.
|
||||
|
||||
As an introduction of the actual workflow, here is an example of the process you will encounter when you make a commit:
|
||||
|
||||
Let's add a file we have modified with some errors, see how the pre-commit hooks run `black` and fails.
|
||||
`black` is set to automatically fix the issues it finds:
|
||||
```bash
|
||||
$ git add chat_to_files.py
|
||||
$ git commit -m "commit message"
|
||||
black....................................................................Failed
|
||||
- hook id: black
|
||||
- files were modified by this hook
|
||||
|
||||
reformatted chat_to_files.py
|
||||
|
||||
All done! ✨ 🍰 ✨
|
||||
1 file reformatted.
|
||||
```
|
||||
|
||||
You can see that `chat_to_files.py` is both staged and not staged for commit. This is because `black` has formatted it and now it is different from the version you have in your working directory. To fix this you can simply run `git add chat_to_files.py` again and now you can commit your changes.
|
||||
```bash
|
||||
$ git status
|
||||
On branch pre-commit-setup
|
||||
Changes to be committed:
|
||||
(use "git restore --staged <file>..." to unstage)
|
||||
modified: chat_to_files.py
|
||||
|
||||
Changes not staged for commit:
|
||||
(use "git add <file>..." to update what will be committed)
|
||||
(use "git restore <file>..." to discard changes in working directory)
|
||||
modified: chat_to_files.py
|
||||
```
|
||||
|
||||
|
||||
Now let's add the file again to include the latest commits and see how `ruff` fails.
|
||||
```bash
|
||||
$ git add chat_to_files.py
|
||||
$ git commit -m "commit message"
|
||||
black....................................................................Passed
|
||||
ruff.....................................................................Failed
|
||||
- hook id: ruff
|
||||
- exit code: 1
|
||||
- files were modified by this hook
|
||||
|
||||
Found 2 errors (2 fixed, 0 remaining).
|
||||
```
|
||||
|
||||
Same as before, you can see that `chat_to_files.py` is both staged and not staged for commit. This is because `ruff` has formatted it and now it is different from the version you have in your working directory. To fix this you can simply run `git add chat_to_files.py` again and now you can commit your changes.
|
||||
```bash
|
||||
$ git add chat_to_files.py
|
||||
$ git commit -m "commit message"
|
||||
black....................................................................Passed
|
||||
ruff.....................................................................Passed
|
||||
fix end of files.........................................................Passed
|
||||
[pre-commit-setup f00c0ce] testing
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
```
|
||||
|
||||
Now your file has been committed and you can push your changes.
|
||||
|
||||
At the beggining this might seem like a tedious process (having to add the file again after `black` and `ruff` have modified it) but it is actually very useful. It allows you to see what changes `black` and `ruff` have made to your files and make sure that they are correct before you commit them.
|
||||
|
||||
|
||||
|
||||
## Issue Tracker
|
||||
|
||||
If you encounter any bugs, issues, or have feature requests, please [create a new issue](https://github.com/AntonOsika/gpt-engineer/issues/new) on the project's GitHub repository. Provide a clear and descriptive title along with relevant details to help us address the problem or understand your request.
|
||||
|
||||
|
||||
## Licensing
|
||||
|
||||
By contributing to GPT Engineer, you agree that your contributions will be licensed under the [LICENSE](../LICENSE) file of the project.
|
||||
|
||||
Thank you for your interest in contributing to GPT Engineer! We appreciate your support and look forward to your contributions.
|
||||
@@ -1,7 +1,7 @@
|
||||
# GPT Engineer
|
||||
**Specify what you want it to build, the AI asks for clarification, and then builds it.**
|
||||
|
||||
GPT Engineer is made to be easy to adapt, extend, and make your agent learn how you want your code to look. It generates an entire codebase based on a prompt.
|
||||
GPT Engineer is made to be easy to adapt, extend, and make your agent learn how you want your code to look. It generates an entire codebase based on a prompt.
|
||||
|
||||
|
||||
## Project philosophy
|
||||
@@ -42,6 +42,9 @@ Editing the identity, and evolving the main_prompt, is currently how you make th
|
||||
|
||||
Each step in steps.py will have its communication history with GPT4 stored in the logs folder, and can be rerun with scripts/rerun_edited_message_logs.py.
|
||||
|
||||
## Development/Contributing
|
||||
If you want to contribute, please check out the [issues tab](https://github.com/AntonOsika/gpt-engineer/issues) in the GitHub repo and please read the [contributing document]() regarding some specifics on how to contribute.
|
||||
|
||||
|
||||
## Demo
|
||||
|
||||
|
||||
Reference in New Issue
Block a user