Thank you for your interest in contributing to LLMSession! We welcome all contributions including bug fixes, new features, documentation improvements, and more.
src/: Contains the Python source codeverify_flow.py: Verification script for testingverify_aistudio.py: Additional verification script.github/workflows/: CI/CD workflows for automated publishingpyproject.toml: Package configuration and dependencies
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/llm_session.git cd llm_session
-
Create a virtual environment (recommended):
python -m venv venv source venv/bin/activate # Linux/Mac # or .\venv\Scripts\activate # Windows
-
Install the package in Editable Mode:
pip install -e .This allows you to modify code in
src/and test it immediately without reinstalling. -
Install build tools (optional, for testing builds):
pip install build
We use manual verification scripts to test the full flow (Browser launch → Auth → Prompt).
python verify_flow.pyTip: You can modify verify_flow.py to use headless=False to watch the bot work in real-time.
To test the build process locally before pushing:
python -m buildThis will create distribution files in the dist/ directory.
To test changes, you will likely need to put real credentials into verify_flow.py.
Caution
NEVER commit files containing your real passwords. If you modify the verification scripts with real credentials, please revert those changes before pushing, or ensure they are ignored by git.
- Fork & Clone: Fork the repo and clone it locally (see above)
- Branch: Create a feature branch from
main:git checkout -b feature/your-feature-name
- Code: Implement your changes
- Adhere to PEP 8 style guidelines
- Add docstrings to new functions and classes
- Keep code clean and well-commented
- Test: Run the verification scripts to ensure everything works:
python verify_flow.py
- Commit: Use clear, descriptive commit messages:
git commit -m "Add feature: description of what you added" - Push: Push to your fork:
git push origin feature/your-feature-name
- Open PR: Open a Pull Request against the
mainbranch on GitHub
- Follow PEP 8 conventions for Python code
- Use meaningful variable and function names
- Add comments for complex logic
- Keep functions focused and single-purpose
- Add type hints where appropriate
If you're fixing a bug:
- Describe the bug in your PR
- Explain how your fix resolves it
- Test thoroughly before submitting
If you're adding a new feature:
- Open an issue first to discuss the feature
- Wait for maintainer feedback before implementing
- Update documentation (README.md) if needed
- Add examples showing how to use the feature
Documentation improvements are always welcome:
- Fix typos or unclear explanations
- Add more examples
- Improve API documentation
- Update outdated information
If you're fixing broken selectors because ChatGPT updated their UI:
- Update
src/llm_session/providers/chatgpt.py - Test thoroughly with the verification script
- Document which elements changed in your PR description
This project uses GitHub Actions for automated publishing to PyPI:
- Push to
main: Automatically publishes to TestPyPI for testing - Push a version tag (e.g.,
v0.1.4): Automatically publishes to PyPI
-
Update version in
pyproject.toml:version = "0.1.4"
-
Commit and push:
git add pyproject.toml git commit -m "Release version 0.1.4" git push origin main -
Create and push a tag:
git tag v0.1.4 git push origin v0.1.4
-
The GitHub Actions workflow will automatically build and publish to PyPI
If you need help with contributing:
- Open a GitHub Discussion
- Check existing Issues
- Reach out to maintainers in your PR
- Be respectful and constructive
- Welcome newcomers and help them learn
- Focus on what is best for the community
- Show empathy towards other community members
By contributing, you agree that your contributions will be licensed under the MIT License.
Thank you for contributing to LLMSession! 🎉