From 65156d517672fc2d15cbe051d473dd8deda97106 Mon Sep 17 00:00:00 2001 From: Kartik Date: Mon, 23 Mar 2026 16:34:51 +0530 Subject: [PATCH] chore: update issue templates and workflows for improved labeling and formatting (#4501) --- .../ISSUE_TEMPLATE/benchmark_submission.yml | 109 +++++------------- .github/ISSUE_TEMPLATE/bug_report.yml | 94 ++++----------- .../ISSUE_TEMPLATE/documentation_issue.yml | 26 ++--- .github/ISSUE_TEMPLATE/feature_request.yml | 48 +++----- .github/advanced-issue-labeler.yml | 22 ++++ .github/workflows/issue-labeler.yml | 39 +++++++ .github/workflows/stale.yml | 48 ++++++++ 7 files changed, 191 insertions(+), 195 deletions(-) create mode 100644 .github/advanced-issue-labeler.yml create mode 100644 .github/workflows/issue-labeler.yml create mode 100644 .github/workflows/stale.yml diff --git a/.github/ISSUE_TEMPLATE/benchmark_submission.yml b/.github/ISSUE_TEMPLATE/benchmark_submission.yml index b6fd83524..a53bd553c 100644 --- a/.github/ISSUE_TEMPLATE/benchmark_submission.yml +++ b/.github/ISSUE_TEMPLATE/benchmark_submission.yml @@ -3,86 +3,41 @@ description: Submit evaluation or benchmark results for a model configuration labels: ["benchmark"] body: - - type: markdown - attributes: - value: | - Share your benchmark results to help the community compare model configurations. Please include enough detail for others to reproduce your results. - - - type: input - id: model-name - attributes: - label: Model name - description: The LLM used for memory extraction. - placeholder: "e.g., gpt-4o, claude-3.5-sonnet, llama-3.1-70b" - validations: - required: true - - - type: textarea - id: model-config - attributes: - label: Model configuration - description: | - Paste your mem0 config (redact any API keys). - placeholder: | - ```python - config = { - "llm": { - "provider": "openai", - "config": { - "model": "gpt-4o", - "temperature": 0.0, - } - }, - "vector_store": { - "provider": "qdrant", - "config": { - "collection_name": "benchmark", - "embedding_model_dims": 1536, - } - } - } - ``` - validations: - required: true - - - type: input - id: dataset - attributes: - label: Dataset / eval suite - description: Which dataset or evaluation suite did you use? - placeholder: "e.g., LOCOMO, custom dataset (link), internal eval" - validations: - required: true - - type: textarea id: results attributes: label: Results - description: | - Paste your results. Use a markdown table if comparing multiple configs. - placeholder: | - | Metric | Score | - |--------------|--------| - | Precision | 0.85 | - | Recall | 0.78 | - | F1 | 0.81 | - | Latency (ms) | 120 | + value: | + ### Model + + Name and provider (e.g., gpt-4o, claude-3.5-sonnet, llama-3.1-70b) + + ### Configuration + + ```python + config = { + "llm": {"provider": "...", "config": {"model": "..."}}, + "vector_store": {"provider": "...", "config": {...}} + } + ``` + + ### Dataset + + Which dataset or eval suite did you use? + + ### Results + + | Metric | Score | + |--------------|-------| + | Precision | | + | Recall | | + | F1 | | + | Latency (ms) | | + + ### Environment + + - Hardware: + - mem0 version: + - Python version: validations: required: true - - - type: textarea - id: hardware - attributes: - label: Hardware / environment - description: What hardware did you run this on? - placeholder: "e.g., M2 MacBook Pro 16GB, AWS g5.xlarge, local RTX 4090" - validations: - required: false - - - type: textarea - id: reproduction - attributes: - label: Reproduction steps - description: How can someone reproduce these results? - validations: - required: false diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 4904f0e28..f815ed020 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,13 +1,8 @@ name: Bug Report -description: Report a bug to help us fix it +description: Report a bug in mem0 labels: ["bug"] body: - - type: markdown - attributes: - value: | - Thanks for taking the time to report a bug! Please search [existing issues](https://github.com/mem0ai/mem0/issues?q=is%3Aissue) first to avoid duplicates. - - type: dropdown id: component attributes: @@ -29,76 +24,33 @@ body: - type: textarea id: description attributes: - label: Describe the bug - description: A clear and concise description of what the bug is. - placeholder: What happened? - validations: - required: true + label: Description + value: | + ### Summary + + A clear summary of the bug. + + ### Steps to Reproduce - - type: textarea - id: reproduction - attributes: - label: Steps to reproduce - description: | - Provide a minimal code example or steps to reproduce the bug. We will copy-paste your code, so keep it self-contained. - placeholder: | ```python from mem0 import Memory m = Memory() - # Steps that trigger the bug... + # Your code here... ``` + + ### Expected Behavior + + What you expected to happen. + + ### Actual Behavior + + What actually happened. Paste the full error traceback if applicable. + + ### Environment + + - mem0 version: + - Python/Node version: + - OS: validations: required: true - - - type: textarea - id: expected - attributes: - label: Expected behavior - description: What did you expect to happen? - validations: - required: true - - - type: textarea - id: actual - attributes: - label: Actual behavior - description: What actually happened? Include the full error traceback if applicable. - placeholder: | - Paste error output here, including the full traceback. - validations: - required: true - - - type: input - id: mem0-version - attributes: - label: mem0 version - description: "Run `pip show mem0ai` or check your package.json" - placeholder: "e.g., 0.1.29" - validations: - required: true - - - type: input - id: python-version - attributes: - label: Python / Node.js version - description: "Run `python --version` or `node --version`" - placeholder: "e.g., Python 3.11.5 or Node 20.10.0" - validations: - required: true - - - type: input - id: os - attributes: - label: Operating system - placeholder: "e.g., macOS 14.2, Ubuntu 22.04, Windows 11" - validations: - required: false - - - type: textarea - id: context - attributes: - label: Additional context - description: Any other context — config files, environment variables, related issues, etc. - validations: - required: false diff --git a/.github/ISSUE_TEMPLATE/documentation_issue.yml b/.github/ISSUE_TEMPLATE/documentation_issue.yml index a36b3962d..0ac173a52 100644 --- a/.github/ISSUE_TEMPLATE/documentation_issue.yml +++ b/.github/ISSUE_TEMPLATE/documentation_issue.yml @@ -1,23 +1,23 @@ name: Documentation Issue description: Report an issue or suggest an improvement to the mem0 docs labels: ["documentation"] -title: "DOC: " body: - type: textarea id: description attributes: - label: Issue with current documentation - description: | - Describe what's wrong or missing. Please link to the specific page or section. - placeholder: "https://docs.mem0.ai/... — this section is missing X / incorrect about Y" + label: Description + value: | + ### Page + + Link to the docs page: https://docs.mem0.ai/... + + ### What's Wrong or Missing + + Describe what's incorrect, unclear, or missing. + + ### Suggested Fix + + How should the docs be improved? validations: required: true - - - type: textarea - id: suggestion - attributes: - label: Suggested fix - description: How should the docs be improved? - validations: - required: false diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index 073e3fc3b..68509ae02 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -3,11 +3,6 @@ description: Suggest a new feature or improvement for mem0 labels: ["enhancement"] body: - - type: markdown - attributes: - value: | - Thanks for suggesting a feature! Please search [existing issues](https://github.com/mem0ai/mem0/issues?q=is%3Aissue+label%3Aenhancement) first to avoid duplicates. - - type: dropdown id: component attributes: @@ -28,35 +23,20 @@ body: required: true - type: textarea - id: use-case + id: description attributes: - label: Use case - description: | - What problem are you trying to solve? Describe the situation where you need this feature. - placeholder: "I'm building X and need Y because..." + label: Description + value: | + ### Use Case + + What problem are you trying to solve? + + ### Proposed Solution + + How should this work? Include API examples or pseudocode if helpful. + + ### Alternatives Considered + + Any workarounds you've tried or other approaches considered. validations: required: true - - - type: textarea - id: proposed-solution - attributes: - label: Proposed solution - description: How do you think this should work? Include API examples or pseudocode if helpful. - validations: - required: true - - - type: textarea - id: alternatives - attributes: - label: Alternatives considered - description: Have you tried any workarounds? Are there other approaches you've considered? - validations: - required: false - - - type: textarea - id: context - attributes: - label: Additional context - description: Any other context, screenshots, or references. - validations: - required: false diff --git a/.github/advanced-issue-labeler.yml b/.github/advanced-issue-labeler.yml new file mode 100644 index 000000000..93a201e77 --- /dev/null +++ b/.github/advanced-issue-labeler.yml @@ -0,0 +1,22 @@ +# Maps dropdown selections to GitHub labels +# Used by the advanced-issue-labeler GitHub Action + +component: + - label: "sdk-python" + matcher: "Core / Python SDK" + - label: "sdk-typescript" + matcher: "TypeScript SDK" + - label: "vector-store" + matcher: "Vector Store" + - label: "graph-memory" + matcher: "Graph Memory" + - label: "ollama" + matcher: "Ollama" + - label: "openmemory" + matcher: "OpenMemory" + - label: "openclaw" + matcher: "OpenClaw" + - label: "rest-api" + matcher: "REST API" + - label: "benchmark" + matcher: "Benchmarks" diff --git a/.github/workflows/issue-labeler.yml b/.github/workflows/issue-labeler.yml new file mode 100644 index 000000000..0486a57b1 --- /dev/null +++ b/.github/workflows/issue-labeler.yml @@ -0,0 +1,39 @@ +name: Auto-label issues + +on: + issues: + types: [opened] + +permissions: + contents: read + issues: write + +jobs: + label: + runs-on: ubuntu-latest + steps: + - uses: stefanbuck/github-issue-parser@v3 + id: issue-parser + with: + template-path: .github/ISSUE_TEMPLATE/bug_report.yml + + - uses: redhat-plumbers-in-action/advanced-issue-labeler@v3 + with: + issue-form: ${{ steps.issue-parser.outputs.jsonString }} + section: component + token: ${{ secrets.GITHUB_TOKEN }} + config-path: .github/advanced-issue-labeler.yml + + - uses: stefanbuck/github-issue-parser@v3 + id: feature-parser + if: contains(github.event.issue.labels.*.name, 'enhancement') + with: + template-path: .github/ISSUE_TEMPLATE/feature_request.yml + + - uses: redhat-plumbers-in-action/advanced-issue-labeler@v3 + if: contains(github.event.issue.labels.*.name, 'enhancement') + with: + issue-form: ${{ steps.feature-parser.outputs.jsonString }} + section: component + token: ${{ secrets.GITHUB_TOKEN }} + config-path: .github/advanced-issue-labeler.yml diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 000000000..89fec8e27 --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,48 @@ +name: Close stale issues + +on: + schedule: + - cron: '0 0 * * *' + workflow_dispatch: + +permissions: + issues: write + pull-requests: write + +jobs: + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v9 + with: + # Issue settings + days-before-issue-stale: 90 + days-before-issue-close: 14 + stale-issue-label: 'stale' + stale-issue-message: > + This issue has been automatically marked as stale because it has not + had any activity in 90 days. It will be closed in 14 days if no + further activity occurs. If this is still relevant, please leave a + comment or remove the `stale` label. + close-issue-message: > + This issue has been closed due to inactivity. If this is still + relevant, feel free to reopen it or create a new issue. + + # PR settings — mark stale but never auto-close + days-before-pr-stale: 90 + days-before-pr-close: -1 + stale-pr-label: 'stale' + stale-pr-message: > + This pull request has been automatically marked as stale because it + has not had any activity in 90 days. Please update your branch and + address any review comments, or it may be closed in the future. + + # Exempt these labels from stale processing + exempt-issue-labels: 'P0-critical,P1-high,good first issue,security' + exempt-pr-labels: 'P0-critical,P1-high' + + # Remove stale label when there is new activity + remove-stale-when-updated: true + + # Process up to 100 issues per run to stay within API limits + operations-per-run: 100