Thank you for your interest in contributing! All kinds of contributions are welcome.
- Search Issues first to check if it has already been reported.
- Create a new Issue using the Bug Report template.
- Provide detailed reproduction steps and environment information.
- Search Issues to make sure the suggestion hasn't already been raised.
- Create a new Issue using the Feature Request template.
- Describe your use case and expected behavior in detail.
# Clone the repository
git clone https://github.com/ZhuLinsen/daily_stock_analysis.git
cd daily_stock_analysis
# Create a virtual environment
python -m venv venv
source venv/bin/activate # Linux/Mac
# venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txt
# Configure environment variables
cp .env.example .env
# Edit .env and fill in the required API keys- Fork this repository.
- Create a feature branch:
git checkout -b feature/your-feature - Commit your changes:
git commit -m 'feat: add some feature' - Push the branch:
git push origin feature/your-feature - Open a Pull Request against
main.
This project follows Conventional Commits:
feat: New feature
fix: Bug fix
docs: Documentation update
style: Code formatting (no logic change)
refactor: Code refactoring
perf: Performance improvement
test: Test-related changes
chore: Build / tooling changes
Examples:
feat: add DingTalk bot support
fix: handle 429 rate-limit with retry backoff
docs: update README deployment section
- Python code follows PEP 8 (line length: 120).
- Add docstrings to functions and classes.
- Add comments for non-obvious logic.
- Update relevant documentation when adding new features.
After opening a PR, CI will automatically run the following PR checks:
| Check | Description | Required |
|---|---|---|
backend-gate |
scripts/ci_gate.sh — py_compile + flake8 critical errors + ./test.sh code + ./test.sh yfinance + offline pytest |
✅ |
docker-build |
Docker image build and key module import smoke test | ✅ |
web-gate |
npm run lint + npm run build (triggered when apps/dsa-web/ changes) |
✅ (when triggered) |
Separately, the repository also has a non-blocking network-smoke workflow in .github/workflows/network-smoke.yml, but it is only triggered by schedule and workflow_dispatch, not by pull requests.
Running checks locally:
# Backend gate (recommended)
pip install -r requirements.txt
pip install flake8 pytest
./scripts/ci_gate.sh
# Frontend gate (only if you changed apps/dsa-web/)
cd apps/dsa-web
npm ci
npm run lint
npm run buildWhen modifying a Chinese-language core document (e.g., docs/full-guide.md), your PR description must state whether the corresponding English document has been updated. If not updated, explain why.
- 🔔 New notification channels (e.g., Slack, Matrix)
- 🤖 New AI model integrations
- 📊 New data source adapters
- 🐛 Bug fixes and performance improvements
- 📖 Documentation improvements and translations
Feel free to:
- Open an Issue for discussion.
- Browse existing Issues and Discussions.
Thank you for contributing! 🎉