forked from geekan/MetaGPT
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'geekan:main' into send18
- Loading branch information
Showing
709 changed files
with
46,985 additions
and
7,334 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,39 +1,34 @@ | ||
# Dev container | ||
# Dev Container | ||
|
||
This project includes a [dev container](https://containers.dev/), which lets you use a container as a full-featured dev environment. | ||
This project includes a [Dev Container](https://containers.dev/), offering you a comprehensive and fully-featured development environment within a container. By leveraging the Dev Container configuration in this folder, you can seamlessly build and initiate MetaGPT locally. For detailed information, please refer to the main README in the home directory. | ||
|
||
You can use the dev container configuration in this folder to build and start running MetaGPT locally! For more, refer to the main README under the home directory. | ||
You can use it in [GitHub Codespaces](https://github.com/features/codespaces) or the [VS Code Dev Containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers). | ||
You can utilize this Dev Container in [GitHub Codespaces](https://github.com/features/codespaces) or with the [VS Code Dev Containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers). | ||
|
||
## GitHub Codespaces | ||
<a href="https://codespaces.new/geekan/MetaGPT"><img src="https://github.com/codespaces/badge.svg" alt="Open in GitHub Codespaces"></a> | ||
[](https://codespaces.new/geekan/MetaGPT) | ||
|
||
You may use the button above to open this repo in a Codespace | ||
Click the button above to open this repository in a Codespace. For additional information, refer to the [GitHub documentation on creating a Codespace](https://docs.github.com/en/free-pro-team@latest/github/developing-online-with-codespaces/creating-a-codespace#creating-a-codespace). | ||
|
||
For more info, check out the [GitHub documentation](https://docs.github.com/en/free-pro-team@latest/github/developing-online-with-codespaces/creating-a-codespace#creating-a-codespace). | ||
|
||
## VS Code Dev Containers | ||
<a href="https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/geekan/MetaGPT"><img src="https://img.shields.io/static/v1?label=Dev%20Containers&message=Open&color=blue&logo=visualstudiocode" alt="Open in Dev Containers"></a> | ||
[](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/geekan/MetaGPT) | ||
|
||
Note: If you click this link you will open the main repo and not your local cloned repo, you can use this link and replace with your username and cloned repo name: | ||
https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/geekan/MetaGPT | ||
Note: Clicking the link above opens the main repository. To open your local cloned repository, replace the URL with your username and cloned repository's name: `https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/<your-username>/<your-repo-name>` | ||
|
||
If you have VS Code and Docker installed, use the button above to get started. This will prompt VS Code to install the Dev Containers extension if it's not already installed, clone the source code into a container volume, and set up a dev container for you. | ||
|
||
If you already have VS Code and Docker installed, you can use the button above to get started. This will cause VS Code to automatically install the Dev Containers extension if needed, clone the source code into a container volume, and spin up a dev container for use. | ||
Alternatively, follow these steps to open this repository in a container using the VS Code Dev Containers extension: | ||
|
||
You can also follow these steps to open this repo in a container using the VS Code Dev Containers extension: | ||
1. For first-time users of a development container, ensure your system meets the prerequisites (e.g., Docker installation) as outlined in the [getting started steps](https://aka.ms/vscode-remote/containers/getting-started). | ||
|
||
1. If this is your first time using a development container, please ensure your system meets the pre-reqs (i.e. have Docker installed) in the [getting started steps](https://aka.ms/vscode-remote/containers/getting-started). | ||
|
||
2. Open a locally cloned copy of the code: | ||
|
||
- Fork and Clone this repository to your local filesystem. | ||
2. To open a locally cloned copy of the code: | ||
- Fork and clone this repository to your local file system. | ||
- Press <kbd>F1</kbd> and select the **Dev Containers: Open Folder in Container...** command. | ||
- Select the cloned copy of this folder, wait for the container to start, and try things out! | ||
- Choose the cloned folder, wait for the container to initialize, and start exploring! | ||
|
||
Learn more in the [VS Code Dev Containers documentation](https://code.visualstudio.com/docs/devcontainers/containers). | ||
|
||
You can learn more in the [Dev Containers documentation](https://code.visualstudio.com/docs/devcontainers/containers). | ||
## Tips and Tricks | ||
|
||
## Tips and tricks | ||
* When working with the same repository folder in both a container and on Windows, it's crucial to have consistent line endings to avoid numerous changes in the SCM view. The `.gitattributes` file in the root of this repository disables line ending conversion, helping to prevent this issue. For more information, see [resolving git line ending issues in containers](https://code.visualstudio.com/docs/devcontainers/tips-and-tricks#_resolving-git-line-ending-issues-in-containers-resulting-in-many-modified-files). | ||
|
||
* If you are working with the same repository folder in a container and Windows, you'll want consistent line endings (otherwise you may see hundreds of changes in the SCM view). The `.gitattributes` file in the root of this repo will disable line ending conversion and should prevent this. See [tips and tricks](https://code.visualstudio.com/docs/devcontainers/tips-and-tricks#_resolving-git-line-ending-issues-in-containers-resulting-in-many-modified-files) for more info. | ||
* If you'd like to review the contents of the image used in this dev container, you can check it out in the [devcontainers/images](https://github.com/devcontainers/images/tree/main/src/python) repo. | ||
* If you're curious about the contents of the image used in this Dev Container, you can review it in the [devcontainers/images](https://github.com/devcontainers/images/tree/main/src/python) repository. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,6 @@ | ||
workspace | ||
tmp | ||
build | ||
workspace | ||
dist | ||
data | ||
geckodriver.log |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
# HTML code is incorrectly calculated into statistics, so ignore them | ||
*.html linguist-detectable=false | ||
|
||
# Auto detect text files and perform LF normalization | ||
* text=auto eol=lf | ||
|
||
# Ensure shell scripts use LF (Linux style) line endings on Windows | ||
*.sh text eol=lf | ||
|
||
# Treat specific binary files as binary and prevent line ending conversion | ||
*.png binary | ||
*.jpg binary | ||
*.gif binary | ||
*.ico binary | ||
*.jpeg binary | ||
*.mp3 binary | ||
*.zip binary | ||
*.bin binary | ||
|
||
|
||
# Preserve original line endings for specific document files | ||
*.doc text eol=crlf | ||
*.docx text eol=crlf | ||
*.pdf binary | ||
|
||
# Ensure source code and script files use LF line endings | ||
*.py text eol=lf | ||
*.js text eol=lf | ||
*.html text eol=lf | ||
*.css text eol=lf | ||
|
||
# Specify custom diff driver for specific file types | ||
*.md diff=markdown | ||
*.json diff=json |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
blank_issues_enabled: false | ||
contact_links: | ||
- name: "📑 Read online docs" | ||
url: https://docs.deepwisdom.ai/ | ||
about: Find the tutorials, use cases and blogs from the doc site. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
--- | ||
name: "🤔 Request new features" | ||
about: There are some ideas or demands want to discuss with the official and hope to be implemented in the future. | ||
title: '' | ||
labels: kind/features | ||
assignees: '' | ||
--- | ||
|
||
**Feature description** | ||
<!-- Clear and direct description of the functionality of the currently submitted or proposed feature --> | ||
|
||
**Your Feature** | ||
<!-- Describe the idea or process of implementing the current feature. Of course, you can also paste the URL address of your Pull Request. --> | ||
<!-- When submitting features, you need to complete the corresponding doc/tests/examples to facilitate verification by reviewers. --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
--- | ||
name: "🪲 Show me the Bug" | ||
about: Something happened when I use MetaGPT, I want to report it and hope to get help from the official and community. | ||
title: '' | ||
labels: kind/bug | ||
assignees: '' | ||
--- | ||
|
||
**Bug description** | ||
<!-- Clearly and directly describe the current bug --> | ||
|
||
**Bug solved method** | ||
<!-- If you solved the bug, describe the idea or process to solve the current bug. Of course, you can also paste the URL address of your Pull Request. --> | ||
<!-- If not, provide more auxiliary information to facilitate our further positioning and investigation --> | ||
|
||
**Environment information** | ||
<!-- Environment:System version (like ubuntu 22.04), Python version (conda python 3.7), LLM type and model (OpenAI gpt-4-1106-preview) --> | ||
|
||
- LLM type and model name: | ||
- System version: | ||
- Python version: | ||
|
||
<!-- Dependent packagess:the packages version cause the bug(like `pydantic 1.10.8`), installation method(like `pip install metagpt` or `pip install from source` or `run in docker`) --> | ||
|
||
- packages version: | ||
- installation method: | ||
|
||
**Screenshots or logs** | ||
<!-- Screenshots or logs of the bug can help us understand the problem more quickly --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
|
||
**Features** | ||
<!-- Clear and direct description of the submit features. --> | ||
<!-- If it's a bug fix, please also paste the issue link. --> | ||
|
||
- xx | ||
- yy | ||
|
||
**Feature Docs** | ||
<!-- The RFC, tutorial, or use cases about the feature if it's a pretty big update. If not, there is no need to fill. --> | ||
|
||
**Influence** | ||
<!-- Tell me the impact of the new feature and I'll focus on it. --> | ||
|
||
**Result** | ||
<!-- The screenshot/log of unittest/running result --> | ||
|
||
**Other** | ||
<!-- Something else about this PR. --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
name: Build and upload python package | ||
|
||
on: | ||
release: | ||
types: [created] | ||
|
||
jobs: | ||
deploy: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Set up Python | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: '3.9' | ||
cache: 'pip' | ||
- name: Install dependencies | ||
run: | | ||
python -m pip install --upgrade pip | ||
pip install -r requirements.txt | ||
pip install -e. | ||
pip install setuptools wheel twine | ||
- name: Set package version | ||
run: | | ||
export VERSION="${GITHUB_REF#refs/tags/v}" | ||
sed -i "s/version=.*/version=\"${VERSION}\",/" setup.py | ||
- name: Build and publish | ||
env: | ||
TWINE_USERNAME: __token__ | ||
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} | ||
run: | | ||
python setup.py bdist_wheel sdist | ||
twine upload dist/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
name: Full Tests | ||
|
||
on: | ||
workflow_dispatch: | ||
pull_request_target: | ||
push: | ||
branches: | ||
- 'main' | ||
- 'dev' | ||
- '*-release' | ||
- '*-debugger' | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
environment: unittest | ||
strategy: | ||
matrix: | ||
# python-version: ['3.9', '3.10', '3.11'] | ||
python-version: ['3.9'] | ||
|
||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
ref: ${{ github.event.pull_request.head.sha }} | ||
- name: Set up Python ${{ matrix.python-version }} | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
cache: 'pip' | ||
- name: Install dependencies | ||
run: | | ||
sh tests/scripts/run_install_deps.sh | ||
- name: Run reverse proxy script for ssh service | ||
if: contains(github.ref, '-debugger') | ||
continue-on-error: true | ||
env: | ||
FPR_SERVER_ADDR: ${{ secrets.FPR_SERVER_ADDR }} | ||
FPR_TOKEN: ${{ secrets.FPR_TOKEN }} | ||
FPR_SSH_REMOTE_PORT: ${{ secrets.FPR_SSH_REMOTE_PORT }} | ||
RSA_PUB: ${{ secrets.RSA_PUB }} | ||
SSH_PORT: ${{ vars.SSH_PORT || '22'}} | ||
run: | | ||
echo "Run \"ssh $(whoami)@FPR_SERVER_HOST -p FPR_SSH_REMOTE_PORT\" and \"cd $(pwd)\"" | ||
mkdir -p ~/.ssh/ | ||
echo $RSA_PUB >> ~/.ssh/authorized_keys | ||
chmod 600 ~/.ssh/authorized_keys | ||
wget https://github.com/fatedier/frp/releases/download/v0.32.1/frp_0.32.1_linux_amd64.tar.gz -O frp.tar.gz | ||
tar xvzf frp.tar.gz -C /opt | ||
mv /opt/frp* /opt/frp | ||
/opt/frp/frpc tcp --server_addr $FPR_SERVER_ADDR --token $FPR_TOKEN --local_port $SSH_PORT --remote_port $FPR_SSH_REMOTE_PORT | ||
- name: Test with pytest | ||
run: | | ||
export ALLOW_OPENAI_API_CALL=0 | ||
echo "${{ secrets.METAGPT_KEY_YAML }}" | base64 -d > config/key.yaml | ||
mkdir -p ~/.metagpt && echo "${{ secrets.METAGPT_CONFIG2_YAML }}" | base64 -d > ~/.metagpt/config2.yaml | ||
pytest tests/ --doctest-modules --cov=./metagpt/ --cov-report=xml:cov.xml --cov-report=html:htmlcov --durations=20 | tee unittest.txt | ||
- name: Show coverage report | ||
run: | | ||
coverage report -m | ||
- name: Show failed tests and overall summary | ||
run: | | ||
grep -E "FAILED tests|ERROR tests|[0-9]+ passed," unittest.txt | ||
failed_count=$(grep -E "FAILED|ERROR" unittest.txt | wc -l) | ||
if [[ "$failed_count" -gt 0 ]]; then | ||
echo "$failed_count failed lines found! Task failed." | ||
exit 1 | ||
fi | ||
- name: Upload pytest test results | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: pytest-results-${{ matrix.python-version }} | ||
path: | | ||
./unittest.txt | ||
./htmlcov/ | ||
./tests/data/rsp_cache_new.json | ||
retention-days: 3 | ||
if: ${{ always() }} | ||
- name: Upload coverage reports to Codecov | ||
uses: codecov/codecov-action@v3 | ||
env: | ||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | ||
if: ${{ always() }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
name: Pre-commit checks | ||
|
||
on: | ||
pull_request: | ||
branches: | ||
- '**' | ||
push: | ||
branches: | ||
- '**' | ||
|
||
jobs: | ||
pre-commit-check: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout Source Code | ||
uses: actions/checkout@v2 | ||
|
||
- name: Setup Python | ||
uses: actions/setup-python@v2 | ||
with: | ||
python-version: '3.9.17' | ||
|
||
- name: Install pre-commit | ||
run: pip install pre-commit | ||
|
||
- name: Initialize pre-commit | ||
run: pre-commit install | ||
|
||
- name: Run pre-commit hooks | ||
run: pre-commit run --all-files |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
name: Unit Tests | ||
|
||
on: | ||
pull_request_target: | ||
push: | ||
branches: | ||
- 'main' | ||
- 'dev' | ||
- '*-release' | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
# python-version: ['3.9', '3.10', '3.11'] | ||
python-version: ['3.9'] | ||
|
||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
ref: ${{ github.event.pull_request.head.sha }} | ||
- name: Set up Python ${{ matrix.python-version }} | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
cache: 'pip' | ||
- name: Install dependencies | ||
run: | | ||
sh tests/scripts/run_install_deps.sh | ||
- name: Test with pytest | ||
run: | | ||
export ALLOW_OPENAI_API_CALL=0 | ||
mkdir -p ~/.metagpt && cp tests/config2.yaml ~/.metagpt/config2.yaml | ||
pytest tests/ --doctest-modules --cov=./metagpt/ --cov-report=xml:cov.xml --cov-report=html:htmlcov --durations=20 | tee unittest.txt | ||
- name: Show coverage report | ||
run: | | ||
coverage report -m | ||
- name: Show failed tests and overall summary | ||
run: | | ||
grep -E "FAILED tests|ERROR tests|[0-9]+ passed," unittest.txt | ||
failed_count=$(grep -E "FAILED|ERROR" unittest.txt | wc -l) | ||
if [[ "$failed_count" -gt 0 ]]; then | ||
echo "$failed_count failed lines found! Task failed." | ||
exit 1 | ||
fi | ||
- name: Upload pytest test results | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: pytest-results-${{ matrix.python-version }} | ||
path: | | ||
./unittest.txt | ||
./htmlcov/ | ||
./tests/data/rsp_cache_new.json | ||
retention-days: 3 | ||
if: ${{ always() }} | ||
- name: Upload coverage reports to Codecov | ||
uses: codecov/codecov-action@v3 | ||
env: | ||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | ||
if: ${{ always() }} |
Oops, something went wrong.