This document describes the development process for Griptape. It is intended for anyone considering opening an issue or pull request. If in doubt, please open a discussion; we can always convert that to an issue later.
I'd like to contribute!
All issues are actionable. Pick one and start working on it. If you need help or guidance, comment on the issue. Issues that are extra friendly to new contributors are tagged with "good first issue".
I have a bug!
- Search the issue tracker and discussions for similar issues.
- If you don't have steps to reproduce, open a discussion.
- If you have steps to reproduce, open an issue.
I have an idea for a feature!
- Open a discussion.
I've implemented a feature!
- If there is an issue for the feature, open a pull request.
- If there is no issue, open a discussion and link to your branch.
I have a question!
- Open a discussion or use Discord.
The Griptape issue tracker is for actionable items.
Unlike some other projects, Griptape does not use the issue tracker for discussion or feature requests. Instead, we use GitHub discussions for that. Once a discussion reaches a point where a well-understood, actionable item is identified, it is moved to the issue tracker. This pattern makes it easier for maintainers or contributors to find issues to work on since every issue is ready to be worked on.
If you are experiencing a bug and have clear steps to reproduce it, please open an issue. If you are experiencing a bug but you are not sure how to reproduce it or aren't sure if it's a bug, please open a discussion. If you have an idea for a feature, please open a discussion.
Pull requests should be associated with a previously accepted issue. If you open a pull request for something that wasn't previously discussed, it may be closed or remain stale for an indefinite period of time.
Note
Pull requests are NOT a place to discuss feature design. Please do not open a WIP pull request to discuss a feature. Instead, use a discussion and link to your branch.
Griptape's extensibility allows anyone to develop and distribute functionality independently. All new integrations, including Tools, Drivers, Tasks, etc., should initially be developed as extensions and then can be upstreamed into Griptape core if discussed and approved.
The Griptape Extension Template provides the recommended structure, step-by-step instructions, basic automation, and usage examples for new integrations.
Install all dependencies via Make:
make install
Run tests:
make test/unit
Run checks:
make check
Review Makefile for more commands.