diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..e69de29 diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..e69de29 diff --git a/.github/SUPPORT.md b/.github/SUPPORT.md new file mode 100644 index 0000000..e69de29 diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..24dec5e --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,42 @@ +version: 2 + +updates: + - package-ecosystem: "pip" + directory: "/" + schedule: + interval: weekly + + open-pull-requests-limit: 10 + + assignees: + - ViratiAkiraNandhanReddy + - BairaboinaLokeshKumarYadav + - ZeroMergeConflicts + + labels: + - "automated" + - "dependencies" + + groups: + production-dependencies: + dependency-type: "production" + + development-dependencies: + dependency-type: "development" + + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: weekly + + open-pull-requests-limit: 10 + + assignees: + - ViratiAkiraNandhanReddy + - BairaboinaLokeshKumarYadav + - ZeroMergeConflicts + + labels: + - "automated" + - "dependencies" + - "github-actions" \ No newline at end of file diff --git a/.github/workflows/ruff.yml b/.github/workflows/ruff.yml new file mode 100644 index 0000000..0b18b28 --- /dev/null +++ b/.github/workflows/ruff.yml @@ -0,0 +1,58 @@ +name: Ruff + +on: + # Run Ruff on changes that can affect Python code or its configuration. + push: + branches: + - main + paths: + - '**/*.py' + - 'requirements.txt' + - '.github/workflows/ruff.yml' + + # Validate pull requests before they are merged into main. + pull_request: + branches: + - main + paths: + - '**/*.py' + - 'requirements.txt' + - '.github/workflows/ruff.yml' + + # Allow Ruff to be run manually when needed. + workflow_dispatch: + +# Cancel outdated runs when new commits are pushed to the same ref. +# Only the latest commit needs to pass Ruff. +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +# Ruff only needs read access to the repository. +permissions: + contents: read + +jobs: + ruff: + name: Ruff + runs-on: ubuntu-latest + timeout-minutes: 10 + + steps: + # Fetch the repository so Ruff can inspect the source tree. + - name: Checkout + uses: actions/checkout@v7.0.1 + + # Run all enabled Ruff lint rules from pyproject.toml. + # GitHub output adds inline annotations to the workflow results. + - name: Check lint + uses: astral-sh/ruff-action@v4.1.0 + with: + args: check --output-format=github + + # Verify that the repository is formatted with Ruff. + # --check keeps CI read-only, while --diff shows the required changes. + - name: Check formatting + uses: astral-sh/ruff-action@v4.1.0 + with: + args: format --check --diff --output-format=github diff --git a/.github/workflows/ty.yml b/.github/workflows/ty.yml new file mode 100644 index 0000000..08ad6e8 --- /dev/null +++ b/.github/workflows/ty.yml @@ -0,0 +1,52 @@ +name: ty + +on: + # Run type checking when Python code or its configuration changes. + push: + branches: + - main + paths: + - '**/*.py' + - 'requirements.txt' + - '.github/workflows/ty.yml' + + # Validate pull requests before they are merged into main. + pull_request: + branches: + - main + paths: + - '**/*.py' + - 'requirements.txt' + - '.github/workflows/ty.yml' + + # Allow type checking to be run manually when needed. + workflow_dispatch: + +# Cancel outdated runs when new commits are pushed to the same ref. +# Only the latest commit needs to pass type checking. +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +# ty only needs read access to the repository. +permissions: + contents: read + +jobs: + ty: + name: ty + runs-on: ubuntu-latest + timeout-minutes: 10 + + steps: + # Fetch the repository so ty can inspect the source tree. + - name: Checkout + uses: actions/checkout@v7.0.1 + + # Install uv for managing the project's development environment. + - name: Set up uv + uses: astral-sh/setup-uv@v10.1.0 + + # Install ty and run type checking. + - name: Type check + run: uv run --with ty ty check diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..e69de29 diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md new file mode 100644 index 0000000..e69de29 diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..b9c0ed1 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,23 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +### Added + +* +* + +## [0.1.0] - YYYY-MM-DD + +### Added + +* +* + +[Unreleased]: ../../compare/v0.1.0...HEAD +[0.1.0]: ../../releases/tag/v0.1.0 diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..e69de29 diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..e69de29 diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..5fa3661 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,33 @@ +[tool.ruff] +src = ["HackTogether_01", "tests"] + +target-version = "py314" + +[tool.ruff.lint] +select = [ + "E", # pycodestyle + "F", # Pyflakes + "A", # flake8-builtins + "I", # isort + "UP", # pyupgrade + "B", # flake8-bugbear + "C4", # flake8-comprehensions + "SIM", # flake8-simplify + "RET", # flake8-return + "PTH", # flake8-use-pathlib + "RUF", # Ruff-specific rules +] +ignore = [ + "N999", # Invalid module name rule +] + +[tool.ruff.format] +quote-style = "double" +indent-style = "space" +line-ending = "auto" + +[tool.ty.src] +include = ["HackTogether_01", "tests"] + +[tool.ty.rules] +all = "error" \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..6be6e06 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +google-genai==2.24.0 +fastapi==0.141.1 \ No newline at end of file