First off, thanks for taking the time to contribute! 🎉💥
The following are some simple guidelines for contributing to the project. Before you get started though, it is highly recommended that you read the Wiki article entry available here to get an idea of how the project is put structured and to learn about the various components.
Finally, when submitting your pull request, please try and be as descriptive as possible about what is changing/is fixed. Ideally, including tests greatly helps facilitate this process.
Thanks! 🤘
Objection consists of two major parts. The Python command line environment and the TypeScript agent. Both of these parts live in this single, monorepo.
Whether you want to contribute to the TypeScript agent or the Python command line, both components would require some setup.
Any Python 3 environment should do, but we recommend you use the latest version of Python. To satisfy all of the dependencies that you may need, install the development dependency group defined in pyproject.toml:
uv sync --group devThis makes the code dependencies available, along with pytest and other useful development helpers.
To run the test suite, you can then use:
uv run pytestor:
make testThe objection agent is written using TypeScript 3. It is recommended that you download Visual Studio Code for agent development given the excellent TypeScript support that it has.
For more information on developing for the agent, please see the Wiki article here.