CONTRIBUTING¶
First off, thanks for taking the time to contribute! ❤️
Whether it’s a bug report, feature suggestion, or a pull request — you’re helping make this project better.
🛠 Setup¶
git clone https://github.com/trivox-io/evolving-ideas.git
cd evolving-ideas
python -m venv .venv
.venv/Scripts/activate
pip install -r requirements.txt
📦 Environment¶
Python >=3.9<=3.11
OpenAI API Key in .env
Run with: python manage.py add
✅ How to Contribute¶
🐞 Report Bugs¶
Use GitHub Issues with:
Steps to reproduce
Expected behavior
Environment info (OS, Python version)
💡 Suggest Features¶
Open a discussion or issue and explain:
What problem you’re solving
Why it’s useful
Example use case or workflow
🧪 Submit a Pull Request¶
Fork the repo
Create your branch: git checkout -b my-feature
Commit changes: git commit -am ‘Add cool feature’
Push to your fork: git push origin my-feature
Open a pull request on GitHub
🧼 Style & Linting¶
For now, we use pylint
to ensure code quality. Please run it before submitting:
pylint evolving_ideas
🛠 Note: In the future, we plan to adopt
black
,isort
, and a full formatting + linting pipeline usingpoetry
. Stay tuned!
🧪 Tests¶
Test suite coming soon — but if you want to get ahead of it, feel free to contribute tests using pytest
.
pip install pytest
pytest
🛠 We’ll integrate
pytest
officially once the test structure is ready. If you’re adding tests, please follow the pattern: tests/test_<your_module>.py.
Testing with Example Data¶
To run the CLI using test data instead of your own ideas, you can override the default storage path by creating a config file.
1. Create a YAML config file¶
Create a file at:
.storage/config.yml
With the following content:
storage_path: tests/example_data/ideas
This setting will override the default storage path (.storage/ideas
) and load the example ideas provided for testing.
2. How settings are loaded¶
The app loads settings in the following order of priority:
.storage/config.yml
(YAML config – highest priority)
.env
file (for things like OpenAI API keys)
Hardcoded defaults (fallbacks in case the above don’t exist)
3. Accessing settings in code¶
If you need to check or use any setting in the codebase, use the settings singleton:
from evolving_ideas.settings import settings
# Get the storage path
path = settings.get("storage_path")
# Get the OpenAI model name
model = settings.get("openai.model")
This setup ensures contributors can easily point the CLI to test data while developing features like list, show, or show_tree.
Thanks again! You’re awesome 🙌