Your First Open Source Contribution
Welcome to the Gofannon community! This guide will walk you through making your first contribution step by step.
Step 1: Set Up Your Development Environment
- Install Python 3.10+
- Download from python.org
- Verify installation:
python --version
- Install Git
- Download from git-scm.com
- Verify installation:
git --version
- Set Up GitHub Account
- Create account at github.com
- Set up SSH keys: GitHub Guide
Step 2: Fork and Clone the Repository
- Fork the Repository
- Go to Gofannon GitHub
- Click “Fork” in the top right
- Clone Your Fork
git clone git@github.com:YOUR_USERNAME/gofannon.git cd gofannon
- Set Up Remote
git remote add upstream git@github.com:The-AI-Alliance/gofannon.git
Step 3: Set Up the Project
- Install Dependencies
pip install poetry poetry install --all-extras
- Run Tests
poetry run pytest
Step 4: Find an Issue to Work On
- Browse Issues
- Go to Issues
- Look for “good first issue” labels
- You can also propose a new function (there is a template for doing this).
- Claim the Issue
- Comment on the issue saying you’d like to work on it
- Wait for maintainer approval
Step 5: Make Your Changes
- Create a New Branch
git checkout -b feature/your-feature-name
- Make Your Changes
- Follow the contribution guidelines
- Write tests for your changes
- Update documentation if needed
- Commit Your Changes
git add . git commit -s -m "Your commit message"
Step 6: Push and Create a Pull Request
- Push Your Branch
git push origin feature/your-feature-name
- Create Pull Request
- Go to your fork on GitHub
- Click “Compare & pull request”
- Fill out the PR template
- Link to the issue you’re addressing
Step 7: Address Feedback
- Respond to Reviews
- Make requested changes
- Push updates to your branch
- Comment on resolved conversations
- Final Approval
- Wait for maintainer approval
- Address any final comments
Step 8: Celebrate!
Once your PR is merged:
- You’re now an open source contributor!
- Add yourself to the contributors list
- Share your achievement on social media
Troubleshooting
Common Issues
- Tests Fail
poetry run pytest -v
- Check test files for examples
- Merge Conflicts
git fetch upstream git rebase upstream/main # Resolve conflicts, then: git rebase --continue
- Code Style Issues
poetry run black .
- Check style guide
Next Steps
- Join our Discord for real-time help
- Explore more issues to contribute to
- Consider becoming a regular contributor
Welcome to the open source community!