diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2ad45aea3e..fa1826a07f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -21,12 +21,28 @@ git clone https://github.com/your-username/MemGPT.git ### 🧩 Install Dependencies +**Installing dependencies with poetry** (recommended): +```shell +cd MemGPT +pip install poetry +poetry install -E dev -E postgres -E local -E legacy +``` +If you are managing dependencies with poetry, you will need to run MemGPT commands with `poetry run memgpt run`. + +**Installing dependencies with pip**: ```shell cd MemGPT # Optional: set up a virtual environment. # python3 -m venv venv # . venv/bin/activate -pip install -r requirements.txt +pip install -e '.[dev,postgres,local,legacy]' +``` + +#### (Optional) Installing pre-commit +We recommend installing pre-commit to ensure proper formatting during development: +``` +poetry run pre-commit install +poetry run pre-commit run --all-files ``` ## 2. 🛠️ Making Changes @@ -47,13 +63,31 @@ Now, the world is your oyster! Go ahead and craft your fabulous changes. 🎨 Before we hit the 'Wow, I'm Done' button, let's make sure everything works as expected. Run tests and make sure the existing ones don't throw a fit. And if needed, create new tests. 🕵️ -Make sure that you can run -```shell -python3 main.py +### Run existing tests + +Running tests if you installed via poetry: ``` -successfully before submitting a pull request. +poetry run pytest -s tests +``` + +Running tests if you installed via pip: +``` +pytest -s tests +``` + +### Creating new tests +If you added a major feature change, please add new tests in the `tests/` directory. -## 4. 🚀 Submitting Changes +## 4. 🧩 Adding new dependencies +If you need to add a new dependency to MemGPT, please add the package via `poetry add `. This will update the `pyproject.toml` and `poetry.lock` files. If the dependency does not need to be installed by all users, make sure to mark the dependency as optional in the `pyproject.toml` file and if needed, create a new extra under `[tool.poetry.extras]`. + +## 5. 🚀 Submitting Changes + +### Check Formatting +Please ensure your code is formatted correctly by running: +``` +poetry run black . -l 140 +``` ### 🚀 Create a Pull Request @@ -64,15 +98,15 @@ You're almost there! It's time to share your brilliance with the world. 🌍 3. Choose the base branch (`main`) and the compare branch (your feature branch). 4. Whip up a catchy title and describe your changes in the description. 🪄 -## 5. 🔍 Review and Approval +## 6. 🔍 Review and Approval The maintainers, will take a look and might suggest some cool upgrades or ask for more details. Once they give the thumbs up, your creation becomes part of MemGPT! -## 6. 📜 Code of Conduct +## 7. 📜 Code of Conduct Please be sure to follow the project's Code of Conduct. -## 7. 📫 Contact +## 8. 📫 Contact Need help or just want to say hi? We're here for you. Reach out through filing an issue on this GitHub repository or message us on our [Discord server](https://discord.gg/9GEQrxmVyE).