From cbbfad8f3c2c57514fd325446caa49992e0602d1 Mon Sep 17 00:00:00 2001 From: randomness11 Date: Mon, 26 Jan 2026 11:57:49 +0530 Subject: [PATCH] feat: Add GitHub templates and release automation for open source launch - Add issue templates (bug report, feature request) - Add PR template with contribution checklist - Add release workflow for automated PyPI publishing Co-Authored-By: Claude Opus 4.5 --- .github/ISSUE_TEMPLATE/bug_report.md | 53 +++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 8 +++ .github/ISSUE_TEMPLATE/feature_request.md | 45 +++++++++++++ .github/PULL_REQUEST_TEMPLATE.md | 49 ++++++++++++++ .github/workflows/release.yml | 82 +++++++++++++++++++++++ 5 files changed, 237 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .github/workflows/release.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..7e40fdf --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,53 @@ +--- +name: Bug Report +about: Report a bug to help us improve ProbablyProfit +title: '[BUG] ' +labels: bug +assignees: '' +--- + +## Describe the Bug + +A clear and concise description of what the bug is. + +## To Reproduce + +Steps to reproduce the behavior: + +1. Run command '...' +2. With strategy '...' +3. See error + +## Expected Behavior + +A clear and concise description of what you expected to happen. + +## Actual Behavior + +What actually happened instead. + +## Environment + +- **OS**: [e.g., macOS 14.0, Ubuntu 22.04, Windows 11] +- **Python version**: [e.g., 3.11.0] +- **ProbablyProfit version**: [e.g., 1.1.0] +- **AI Provider**: [e.g., Anthropic Claude, OpenAI GPT-4] +- **Installation method**: [e.g., pip, Docker, from source] + +## Logs/Error Output + +``` +Paste any relevant logs or error messages here +``` + +## Configuration + +If relevant, share your configuration (with sensitive values redacted): + +```yaml +# Paste relevant config here (remove API keys!) +``` + +## Additional Context + +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..b707f25 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,8 @@ +blank_issues_enabled: true +contact_links: + - name: Documentation + url: https://probablyprofit.dev/docs + about: Check our documentation for guides and API reference + - name: Questions & Discussions + url: https://github.com/probablyprofit/probablyprofit/discussions + about: Ask questions and discuss ideas with the community diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..9c111e6 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,45 @@ +--- +name: Feature Request +about: Suggest an idea for ProbablyProfit +title: '[FEATURE] ' +labels: enhancement +assignees: '' +--- + +## Problem / Motivation + +A clear and concise description of what problem this feature would solve or what use case it enables. + +Example: "I'm always frustrated when..." or "It would be great if..." + +## Proposed Solution + +A clear and concise description of what you want to happen. + +## Alternatives Considered + +Describe any alternative solutions or features you've considered. + +## Example Usage + +If applicable, show how you'd expect to use this feature: + +```python +# Example code or CLI usage +``` + +Or for strategies: + +``` +Example strategy prompt that would use this feature... +``` + +## Additional Context + +Add any other context, screenshots, or references about the feature request here. + +## Would you be willing to contribute this? + +- [ ] Yes, I'd like to implement this feature +- [ ] I can help test a PR for this feature +- [ ] No, I'm just suggesting the idea diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..df56e02 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,49 @@ +## Description + +Brief description of the changes in this PR. + +## Type of Change + +- [ ] Bug fix (non-breaking change that fixes an issue) +- [ ] New feature (non-breaking change that adds functionality) +- [ ] Breaking change (fix or feature that would cause existing functionality to change) +- [ ] Documentation update +- [ ] Refactoring (no functional changes) +- [ ] CI/CD or tooling changes + +## Related Issues + +Closes #(issue number) + +## Changes Made + +- Change 1 +- Change 2 +- Change 3 + +## How Has This Been Tested? + +Describe the tests you ran to verify your changes: + +- [ ] Unit tests pass (`pytest`) +- [ ] Integration tests pass (if applicable) +- [ ] Manual testing with paper trading +- [ ] Tested with live trading (if applicable) + +## Checklist + +- [ ] My code follows the project's code style (ran `black` and `isort`) +- [ ] I have run the linter (`ruff check`) +- [ ] I have run type checking (`mypy probablyprofit/`) +- [ ] I have added tests that prove my fix/feature works +- [ ] I have updated the documentation (if needed) +- [ ] I have updated CHANGELOG.md (if this is a user-facing change) +- [ ] My changes generate no new warnings + +## Screenshots (if applicable) + +Add screenshots to help explain your changes. + +## Additional Notes + +Any additional information or context about the PR. diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..7607518 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,82 @@ +name: Release + +on: + push: + tags: + - 'v*' + +permissions: + contents: write + id-token: write + +jobs: + build: + name: Build distribution + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.11' + + - name: Install build dependencies + run: | + python -m pip install --upgrade pip + pip install build + + - name: Build package + run: python -m build + + - name: Upload distribution artifacts + uses: actions/upload-artifact@v4 + with: + name: python-package-distributions + path: dist/ + + publish-pypi: + name: Publish to PyPI + needs: build + runs-on: ubuntu-latest + environment: + name: pypi + url: https://pypi.org/p/probablyprofit + + steps: + - name: Download distribution artifacts + uses: actions/download-artifact@v4 + with: + name: python-package-distributions + path: dist/ + + - name: Publish to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + + github-release: + name: Create GitHub Release + needs: publish-pypi + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Download distribution artifacts + uses: actions/download-artifact@v4 + with: + name: python-package-distributions + path: dist/ + + - name: Extract version from tag + id: version + run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT + + - name: Create GitHub Release + env: + GITHUB_TOKEN: ${{ github.token }} + run: | + gh release create "${{ github.ref_name }}" \ + --title "ProbablyProfit ${{ steps.version.outputs.VERSION }}" \ + --generate-notes \ + dist/*