From f220596dd3bd8dd79881fb717633df5e23f26ca6 Mon Sep 17 00:00:00 2001 From: Mohit Tilwani Date: Wed, 22 Oct 2025 13:00:43 +0200 Subject: [PATCH] Remove outdated issue and pull request templates, along with related workflows for Docker builds and publishing. --- .github/ISSUE_TEMPLATE/bug_report.yml | 61 -------------- .github/ISSUE_TEMPLATE/config.yml | 1 - .github/ISSUE_TEMPLATE/feature_request.yml | 26 ------ .github/ISSUE_TEMPLATE/question.yml | 26 ------ .github/dependabot.yml | 11 --- .github/pull_request_template.md | 32 -------- .github/workflows/azure-aca-deploy.yml | 79 +++++++++++++++++++ .github/workflows/docker-build-lite.yml | 84 -------------------- .github/workflows/docker-build-manual.yml | 80 ------------------- .github/workflows/docker-publish.yml | 75 ------------------ .github/workflows/linting.yaml | 30 ------- .github/workflows/pypi-publish.yml | 92 ---------------------- .github/workflows/stale.yaml | 27 ------- 13 files changed, 79 insertions(+), 545 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml delete mode 100644 .github/ISSUE_TEMPLATE/config.yml delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml delete mode 100644 .github/ISSUE_TEMPLATE/question.yml delete mode 100644 .github/dependabot.yml delete mode 100644 .github/pull_request_template.md create mode 100644 .github/workflows/azure-aca-deploy.yml delete mode 100644 .github/workflows/docker-build-lite.yml delete mode 100644 .github/workflows/docker-build-manual.yml delete mode 100644 .github/workflows/docker-publish.yml delete mode 100644 .github/workflows/linting.yaml delete mode 100644 .github/workflows/pypi-publish.yml delete mode 100644 .github/workflows/stale.yaml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml deleted file mode 100644 index 780a2008..00000000 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ /dev/null @@ -1,61 +0,0 @@ -name: Bug Report -description: File a bug report -title: "[Bug]:" -labels: ["bug", "triage"] - -body: - - type: checkboxes - id: existingcheck - attributes: - label: Do you need to file an issue? - description: Please help us manage our time by avoiding duplicates and common bugs with the steps below. - options: - - label: I have searched the existing issues and this bug is not already filed. - - label: I believe this is a legitimate bug, not just a question or feature request. - - type: textarea - id: description - attributes: - label: Describe the bug - description: A clear and concise description of what the bug is. - placeholder: What went wrong? - - type: textarea - id: reproduce - attributes: - label: Steps to reproduce - description: Steps to reproduce the behavior. - placeholder: How can we replicate the issue? - - type: textarea - id: expected_behavior - attributes: - label: Expected Behavior - description: A clear and concise description of what you expected to happen. - placeholder: What should have happened? - - type: textarea - id: configused - attributes: - label: LightRAG Config Used - description: The LightRAG configuration used for the run. - placeholder: The settings content or LightRAG configuration - value: | - # Paste your config here - - type: textarea - id: screenshotslogs - attributes: - label: Logs and screenshots - description: If applicable, add screenshots and logs to help explain your problem. - placeholder: Add logs and screenshots here - - type: textarea - id: additional_information - attributes: - label: Additional Information - description: | - - LightRAG Version: e.g., v0.1.1 - - Operating System: e.g., Windows 10, Ubuntu 20.04 - - Python Version: e.g., 3.8 - - Related Issues: e.g., #1 - - Any other relevant information. - value: | - - LightRAG Version: - - Operating System: - - Python Version: - - Related Issues: diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 3ba13e0c..00000000 --- a/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1 +0,0 @@ -blank_issues_enabled: false diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml deleted file mode 100644 index 3c127d59..00000000 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: Feature Request -description: File a feature request -labels: ["enhancement"] -title: "[Feature Request]:" - -body: - - type: checkboxes - id: existingcheck - attributes: - label: Do you need to file a feature request? - description: Please help us manage our time by avoiding duplicates and common feature request with the steps below. - options: - - label: I have searched the existing feature request and this feature request is not already filed. - - label: I believe this is a legitimate feature request, not just a question or bug. - - type: textarea - id: feature_request_description - attributes: - label: Feature Request Description - description: A clear and concise description of the feature request you would like. - placeholder: What this feature request add more or improve? - - type: textarea - id: additional_context - attributes: - label: Additional Context - description: Add any other context or screenshots about the feature request here. - placeholder: Any additional information diff --git a/.github/ISSUE_TEMPLATE/question.yml b/.github/ISSUE_TEMPLATE/question.yml deleted file mode 100644 index 26fed23d..00000000 --- a/.github/ISSUE_TEMPLATE/question.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: Question -description: Ask a general question -labels: ["question"] -title: "[Question]:" - -body: - - type: checkboxes - id: existingcheck - attributes: - label: Do you need to ask a question? - description: Please help us manage our time by avoiding duplicates and common questions with the steps below. - options: - - label: I have searched the existing question and discussions and this question is not already answered. - - label: I believe this is a legitimate question, not just a bug or feature request. - - type: textarea - id: question - attributes: - label: Your Question - description: A clear and concise description of your question. - placeholder: What is your question? - - type: textarea - id: context - attributes: - label: Additional Context - description: Provide any additional context or details that might help us understand your question better. - placeholder: Add any relevant information here diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 9d866e39..00000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,11 +0,0 @@ -# To get started with Dependabot version updates, you'll need to specify which -# package ecosystems to update and where the package manifests are located. -# Please see the documentation for all configuration options: -# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file - -version: 2 -updates: - - package-ecosystem: "pip" # See documentation for possible values - directory: "/" # Location of package manifests - schedule: - interval: "weekly" diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md deleted file mode 100644 index 6eb2f2ac..00000000 --- a/.github/pull_request_template.md +++ /dev/null @@ -1,32 +0,0 @@ - - -## Description - -[Briefly describe the changes made in this pull request.] - -## Related Issues - -[Reference any related issues or tasks addressed by this pull request.] - -## Changes Made - -[List the specific changes made in this pull request.] - -## Checklist - -- [ ] Changes tested locally -- [ ] Code reviewed -- [ ] Documentation updated (if necessary) -- [ ] Unit tests added (if applicable) - -## Additional Notes - -[Add any additional notes or context for the reviewer(s).] diff --git a/.github/workflows/azure-aca-deploy.yml b/.github/workflows/azure-aca-deploy.yml new file mode 100644 index 00000000..e5d0a780 --- /dev/null +++ b/.github/workflows/azure-aca-deploy.yml @@ -0,0 +1,79 @@ +name: Deploy LightRAG to Azure Container Apps + +on: + push: + branches: + - main + paths: + - "Dockerfile" + - "Dockerfile.lite" + - ".github/workflows/azure-aca-deploy.yml" + - "lightrag/**" + - "lightrag-api/**" + - "lightrag_webui/**" + - "pyproject.toml" + - "setup.py" + - "uv.lock" + - "requirements-*.txt" + workflow_dispatch: + +concurrency: + group: lightrag-aca-deploy + cancel-in-progress: true + +jobs: + build-and-deploy: + name: Build and Deploy Container App + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + id-token: write + env: + IMAGE_NAME: ${{ vars.IMAGE_NAME }} + CONTAINER_APP_NAME: ${{ secrets.AZURE_CONTAINER_APP_NAME }} + AZURE_RESOURCE_GROUP: ${{ secrets.AZURE_RESOURCE_GROUP }} + REGISTRY_LOGIN_SERVER: ${{ secrets.AZURE_REGISTRY_LOGIN_SERVER }} + AZURE_REGISTRY_USERNAME: ${{ secrets.AZURE_REGISTRY_USERNAME }} + AZURE_REGISTRY_PASSWORD: ${{ secrets.AZURE_REGISTRY_PASSWORD }} + AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to Azure + uses: azure/login@v2 + with: + creds: ${{ env.AZURE_CREDENTIALS }} + + - name: Log in to Azure Container Registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY_LOGIN_SERVER }} + username: ${{ env.AZURE_REGISTRY_USERNAME }} + password: ${{ env.AZURE_REGISTRY_PASSWORD }} + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: . + file: ./Dockerfile.lite + push: true + tags: | + ${{ env.REGISTRY_LOGIN_SERVER }}/${{ env.IMAGE_NAME }}:${{ github.sha }} + ${{ env.REGISTRY_LOGIN_SERVER }}/${{ env.IMAGE_NAME }}:latest + cache-from: type=registry,ref=${{ env.REGISTRY_LOGIN_SERVER }}/${{ env.IMAGE_NAME }}:buildcache + cache-to: type=registry,ref=${{ env.REGISTRY_LOGIN_SERVER }}/${{ env.IMAGE_NAME }}:buildcache,mode=max + + - name: Deploy to Azure Container Apps + uses: azure/container-apps-deploy-action@v1 + with: + resourceGroup: ${{ env.AZURE_RESOURCE_GROUP }} + containerAppName: ${{ env.CONTAINER_APP_NAME }} + imageToDeploy: ${{ env.REGISTRY_LOGIN_SERVER }}/${{ env.IMAGE_NAME }}:${{ github.sha }} + registryLoginServer: ${{ env.REGISTRY_LOGIN_SERVER }} + registryUsername: ${{ env.AZURE_REGISTRY_USERNAME }} + registryPassword: ${{ env.AZURE_REGISTRY_PASSWORD }} diff --git a/.github/workflows/docker-build-lite.yml b/.github/workflows/docker-build-lite.yml deleted file mode 100644 index 9cbe6289..00000000 --- a/.github/workflows/docker-build-lite.yml +++ /dev/null @@ -1,84 +0,0 @@ -name: Build Lite Docker Image - -on: - workflow_dispatch: - inputs: - _notes_: - description: '⚠️ Create lite Docker images only after non-trivial version releases.' - required: false - type: boolean - default: false - -permissions: - contents: read - packages: write - -jobs: - build-and-push-lite: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Get latest tag - id: get_tag - run: | - LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "") - if [ -z "$LATEST_TAG" ]; then - LATEST_TAG="sha-$(git rev-parse --short HEAD)" - echo "No tags found, using commit SHA: $LATEST_TAG" - else - echo "Latest tag found: $LATEST_TAG" - fi - echo "tag=$LATEST_TAG" >> $GITHUB_OUTPUT - - - name: Prepare lite tag - id: lite_tag - run: | - LITE_TAG="${{ steps.get_tag.outputs.tag }}-lite" - echo "Lite image tag: $LITE_TAG" - echo "lite_tag=$LITE_TAG" >> $GITHUB_OUTPUT - - - name: Update version in __init__.py - run: | - sed -i "s/__version__ = \".*\"/__version__ = \"${{ steps.get_tag.outputs.tag }}\"/" lightrag/__init__.py - cat lightrag/__init__.py | grep __version__ - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Extract metadata for Docker - id: meta - uses: docker/metadata-action@v5 - with: - images: ghcr.io/${{ github.repository }} - tags: | - type=raw,value=${{ steps.lite_tag.outputs.lite_tag }} - type=raw,value=lite - - - name: Build and push lite Docker image - uses: docker/build-push-action@v5 - with: - context: . - file: ./Dockerfile.lite - platforms: linux/amd64,linux/arm64 - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - cache-from: type=gha - cache-to: type=gha,mode=min - - - name: Output image details - run: | - echo "Lite Docker image built and pushed successfully!" - echo "Image tag: ghcr.io/${{ github.repository }}:${{ steps.lite_tag.outputs.lite_tag }}" - echo "Base Git tag used: ${{ steps.get_tag.outputs.tag }}" diff --git a/.github/workflows/docker-build-manual.yml b/.github/workflows/docker-build-manual.yml deleted file mode 100644 index de459d5a..00000000 --- a/.github/workflows/docker-build-manual.yml +++ /dev/null @@ -1,80 +0,0 @@ -name: Build Test Docker Image manually - -on: - workflow_dispatch: - inputs: - _notes_: - description: '⚠️ Please create a new git tag before building the docker image.' - required: false - type: boolean - default: false - -permissions: - contents: read - packages: write - -jobs: - build-and-push: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 # Fetch all history for tags - - - name: Get latest tag - id: get_tag - run: | - # Get the latest tag, fallback to commit SHA if no tags exist - LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "") - if [ -z "$LATEST_TAG" ]; then - LATEST_TAG="sha-$(git rev-parse --short HEAD)" - echo "No tags found, using commit SHA: $LATEST_TAG" - else - echo "Latest tag found: $LATEST_TAG" - fi - echo "tag=$LATEST_TAG" >> $GITHUB_OUTPUT - echo "image_tag=$LATEST_TAG" >> $GITHUB_OUTPUT - - - name: Update version in __init__.py - run: | - sed -i "s/__version__ = \".*\"/__version__ = \"${{ steps.get_tag.outputs.tag }}\"/" lightrag/__init__.py - echo "Updated __init__.py with version ${{ steps.get_tag.outputs.tag }}" - cat lightrag/__init__.py | grep __version__ - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Extract metadata for Docker - id: meta - uses: docker/metadata-action@v5 - with: - images: ghcr.io/${{ github.repository }} - tags: | - type=raw,value=${{ steps.get_tag.outputs.tag }} - - - name: Build and push Docker image - uses: docker/build-push-action@v5 - with: - context: . - file: ./Dockerfile - platforms: linux/amd64,linux/arm64 - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - cache-from: type=gha - cache-to: type=gha,mode=max - - - name: Output image details - run: | - echo "Docker image built and pushed successfully!" - echo "Image tags:" - echo " - ghcr.io/${{ github.repository }}:${{ steps.get_tag.outputs.tag }}" - echo "Latest Git tag used: ${{ steps.get_tag.outputs.tag }}" diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml deleted file mode 100644 index 6c290d59..00000000 --- a/.github/workflows/docker-publish.yml +++ /dev/null @@ -1,75 +0,0 @@ -name: Build Latest Docker Image on Release - -on: - release: - types: [published] - workflow_dispatch: - -permissions: - contents: read - packages: write - -jobs: - build-and-push: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 # Fetch all history for tags - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Get latest tag - id: get_tag - run: | - TAG=$(git describe --tags --abbrev=0) - echo "Found tag: $TAG" - echo "tag=$TAG" >> $GITHUB_OUTPUT - - - name: Check if pre-release - id: check_prerelease - run: | - TAG="${{ steps.get_tag.outputs.tag }}" - if [[ "$TAG" == *"rc"* ]] || [[ "$TAG" == *"dev"* ]]; then - echo "is_prerelease=true" >> $GITHUB_OUTPUT - echo "This is a pre-release version: $TAG" - else - echo "is_prerelease=false" >> $GITHUB_OUTPUT - echo "This is a stable release: $TAG" - fi - - - name: Update version in __init__.py - run: | - sed -i "s/__version__ = \".*\"/__version__ = \"${{ steps.get_tag.outputs.tag }}\"/" lightrag/__init__.py - echo "Updated __init__.py with version ${{ steps.get_tag.outputs.tag }}" - cat lightrag/__init__.py | grep __version__ - - - name: Extract metadata for Docker - id: meta - uses: docker/metadata-action@v5 - with: - images: ghcr.io/${{ github.repository }} - tags: | - type=raw,value=${{ steps.get_tag.outputs.tag }} - type=raw,value=latest,enable=${{ steps.check_prerelease.outputs.is_prerelease == 'false' }} - - - name: Build and push Docker image - uses: docker/build-push-action@v5 - with: - context: . - file: ./Dockerfile - platforms: linux/amd64,linux/arm64 - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - cache-from: type=gha - cache-to: type=gha,mode=max diff --git a/.github/workflows/linting.yaml b/.github/workflows/linting.yaml deleted file mode 100644 index aa054369..00000000 --- a/.github/workflows/linting.yaml +++ /dev/null @@ -1,30 +0,0 @@ -name: Linting and Formatting - -on: - push: - branches: - - main - pull_request: - branches: - - main - -jobs: - lint-and-format: - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v2 - - - name: Set up Python - uses: actions/setup-python@v2 - with: - python-version: '3.x' - - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install pre-commit - - - name: Run pre-commit - run: pre-commit run --all-files --show-diff-on-failure diff --git a/.github/workflows/pypi-publish.yml b/.github/workflows/pypi-publish.yml deleted file mode 100644 index 14c2bcc5..00000000 --- a/.github/workflows/pypi-publish.yml +++ /dev/null @@ -1,92 +0,0 @@ -name: Upload LightRAG-hku Package - -on: - release: - types: [published] - workflow_dispatch: - -permissions: - contents: read - -jobs: - release-build: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 # Fetch all history for tags - - # Build frontend WebUI - - name: Setup Bun - uses: oven-sh/setup-bun@v1 - with: - bun-version: latest - - - name: Build Frontend WebUI - run: | - cd lightrag_webui - bun install --frozen-lockfile - bun run build - cd .. - - - name: Verify Frontend Build - run: | - if [ ! -f "lightrag/api/webui/index.html" ]; then - echo "❌ Error: Frontend build failed - index.html not found" - exit 1 - fi - echo "✅ Frontend build verified" - echo "Frontend files:" - ls -lh lightrag/api/webui/ | head -10 - - - uses: actions/setup-python@v5 - with: - python-version: "3.x" - - - name: Get version from tag - id: get_version - run: | - TAG=$(git describe --tags --abbrev=0) - echo "Found tag: $TAG" - echo "Extracted version: $TAG" - echo "version=$TAG" >> $GITHUB_OUTPUT - - - name: Update version in __init__.py - run: | - sed -i "s/__version__ = \".*\"/__version__ = \"${{ steps.get_version.outputs.version }}\"/" lightrag/__init__.py - echo "Updated __init__.py with version ${{ steps.get_version.outputs.version }}" - cat lightrag/__init__.py | grep __version__ - - - name: Build release distributions - run: | - python -m pip install build - python -m build - - - name: Upload distributions - uses: actions/upload-artifact@v4 - with: - name: release-dists - path: dist/ - - pypi-publish: - runs-on: ubuntu-latest - needs: - - release-build - permissions: - id-token: write - - environment: - name: pypi - - steps: - - name: Retrieve release distributions - uses: actions/download-artifact@v4 - with: - name: release-dists - path: dist/ - - - name: Publish release distributions to PyPI - uses: pypa/gh-action-pypi-publish@release/v1 - with: - packages-dir: dist/ diff --git a/.github/workflows/stale.yaml b/.github/workflows/stale.yaml deleted file mode 100644 index 30643dda..00000000 --- a/.github/workflows/stale.yaml +++ /dev/null @@ -1,27 +0,0 @@ -# .github/workflows/stale.yml -name: Mark stale issues and pull requests - -on: - schedule: - - cron: '30 22 * * *' # run at 22:30+08 every day - -permissions: - issues: write - pull-requests: write - -jobs: - stale: - runs-on: ubuntu-latest - steps: - - uses: actions/stale@v9 - with: - days-before-stale: 90 # 90 days - days-before-close: 7 # 7 days after marked as stale - stale-issue-message: 'This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.' - close-issue-message: 'This issue has been automatically closed because it has not had recent activity. Please open a new issue if you still have this problem.' - stale-pr-message: 'This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.' - close-pr-message: 'This pull request has been automatically closed because it has not had recent activity.' - # If there are specific labels, exempt them from being marked as stale, for example: - exempt-issue-labels: 'enhancement,tracked' - # exempt-pr-labels: 'bug,enhancement,help wanted' - repo-token: ${{ secrets.GITHUB_TOKEN }} # token provided by GitHub