From 6a28236c5918ef273997692bb8201f3c318636f8 Mon Sep 17 00:00:00 2001 From: Jackson Kearl Date: Tue, 16 Jun 2020 23:44:36 -0700 Subject: [PATCH] Adopt GPU issue classifier. Closes #100202. --- .github/classifier.json | 251 ++++++++++++------ .github/workflows/author-verified.yml | 2 +- .github/workflows/commands.yml | 2 +- .github/workflows/deep-classifier-runner.yml | 49 ++++ .github/workflows/english-please.yml | 2 +- .github/workflows/feature-request.yml | 2 +- .github/workflows/latest-release-monitor.yml | 2 +- .github/workflows/locker.yml | 2 +- .github/workflows/needs-more-info-closer.yml | 2 +- .github/workflows/on-label.yml | 2 +- .github/workflows/on-open.yml | 2 +- .../workflows/release-pipeline-labeler.yml | 2 +- .../workflows/test-plan-item-validator.yml | 2 +- 13 files changed, 235 insertions(+), 87 deletions(-) create mode 100644 .github/workflows/deep-classifier-runner.yml diff --git a/.github/classifier.json b/.github/classifier.json index 8dd33213239..67b33bbe6e0 100644 --- a/.github/classifier.json +++ b/.github/classifier.json @@ -1,82 +1,181 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/vscode-github-triage-actions/master/classifier/apply/apply-labels/classifier-config.schema.json", + "$schema": "https://raw.githubusercontent.com/microsoft/vscode-github-triage-actions/master/classifier-deep/apply/apply-labels/deep-classifier-config.schema.json", "assignees": { - "JacksonKearl": { - "assign": true - }, - "bpasero": { - "assign": true - }, - "Tyriar": { - "assign": true - }, - "misolori": { - "assign": true - }, - "joaomoreno": { - "assign": true - } + "JacksonKearl": {"accuracy": 0.5} }, "labels": { - "search-editor": { - "applyLabel": true, - "assign": [ - "JacksonKearl" - ] - }, - "snippets": { - "applyLabel": false, - "assign": [ - "jrieken" - ] - }, - "integrated-terminal": { - "applyLabel": true, - "assign": [ - "Tyriar" - ] - }, - "workbench-editors": { - "applyLabel": false, - "assign": [ - "bpasero" - ] - }, - "workbench-history": { - "applyLabel": false, - "assign": [ - "bpasero" - ] - }, - "workbench-notifications": { - "applyLabel": false, - "assign": [ - "bpasero" - ] - }, - "workbench-tabs": { - "applyLabel": false, - "assign": [ - "bpasero" - ] - }, - "icons-product": { - "applyLabel": true, - "assign": [ - "misolori" - ] - }, - "ux": { - "applyLabel": true, - "assign": [ - "misolori" - ] - }, - "git": { - "applyLabel": false, - "assign": [ - "joaomoreno" - ] + "L10N": {"assign": []}, + "VIM": {"assign": []}, + "api": {"assign": ["jrieken"]}, + "api-finalization": {"assign": []}, + "api-proposal": {"assign": ["jrieken"]}, + "authentication": {"assign": ["RMacfarlane"]}, + "breadcrumbs": {"assign": ["jrieken"]}, + "callhierarchy": {"assign": ["jrieken"]}, + "code-lens": {"assign": ["jrieken"]}, + "color-palette": {"assign": []}, + "comments": {"assign": ["rebornix"]}, + "config": {"assign": ["sandy081"]}, + "context-keys": {"assign": []}, + "css-less-scss": {"assign": ["aeschli"]}, + "custom-editors": {"assign": ["mjbvz"]}, + "debug": {"assign": ["isidorn"]}, + "debug-console": {"assign": ["isidorn"]}, + "dialogs": {"assign": ["sbatten"]}, + "diff-editor": {"assign": []}, + "dropdown": {"assign": []}, + "editor": {"assign": ["rebornix"]}, + "editor-autoclosing": {"assign": []}, + "editor-autoindent": {"assign": ["rebornix"]}, + "editor-bracket-matching": {"assign": []}, + "editor-clipboard": {"assign": ["jrieken"]}, + "editor-code-actions": {"assign": []}, + "editor-color-picker": {"assign": ["rebornix"]}, + "editor-columnselect": {"assign": ["alexdima"]}, + "editor-commands": {"assign": ["jrieken"]}, + "editor-comments": {"assign": []}, + "editor-contrib": {"assign": []}, + "editor-core": {"assign": []}, + "editor-drag-and-drop": {"assign": ["rebornix"]}, + "editor-error-widget": {"assign": ["sandy081"]}, + "editor-find": {"assign": ["rebornix"]}, + "editor-folding": {"assign": ["aeschli"]}, + "editor-hover": {"assign": []}, + "editor-indent-guides": {"assign": []}, + "editor-input": {"assign": ["alexdima"]}, + "editor-input-IME": {"assign": ["rebornix"]}, + "editor-minimap": {"assign": []}, + "editor-multicursor": {"assign": ["alexdima"]}, + "editor-parameter-hints": {"assign": []}, + "editor-render-whitespace": {"assign": []}, + "editor-rendering": {"assign": ["alexdima"]}, + "editor-scrollbar": {"assign": []}, + "editor-symbols": {"assign": ["jrieken"]}, + "editor-synced-region": {"assign": ["aeschli"]}, + "editor-textbuffer": {"assign": ["rebornix"]}, + "editor-theming": {"assign": []}, + "editor-wordnav": {"assign": ["alexdima"]}, + "editor-wrapping": {"assign": ["alexdima"]}, + "emmet": {"assign": []}, + "error-list": {"assign": ["sandy081"]}, + "explorer-custom": {"assign": ["sandy081"]}, + "extension-host": {"assign": []}, + "extensions": {"assign": ["sandy081"]}, + "extensions-development": {"assign": []}, + "file-decorations": {"assign": ["jrieken"]}, + "file-encoding": {"assign": ["bpasero"]}, + "file-explorer": {"assign": ["isidorn"]}, + "file-glob": {"assign": []}, + "file-guess-encoding": {"assign": ["bpasero"]}, + "file-io": {"assign": ["bpasero"]}, + "file-watcher": {"assign": ["bpasero"]}, + "font-rendering": {"assign": []}, + "formatting": {"assign": []}, + "git": {"assign": ["joaomoreno"]}, + "gpu": {"assign": ["bpasero"]}, + "grammar": {"assign": ["mjbvz"]}, + "grid-view": {"assign": ["joaomoreno"]}, + "html": {"assign": ["aeschli"]}, + "i18n": {"assign": []}, + "icon-brand": {"assign": []}, + "icons-product": {"assign": ["misolori"]}, + "install-update": {"assign": ["joaomoreno"]}, + "integrated-terminal": {"assign": ["Tyriar"]}, + "integrated-terminal-conpty": {"assign": ["Tyriar"]}, + "integrated-terminal-links": {"assign": ["Tyriar"]}, + "integration-test": {"assign": []}, + "intellisense-config": {"assign": []}, + "ipc": {"assign": ["joaomoreno"]}, + "issue-bot": {"assign": ["chrmarti"]}, + "issue-reporter": {"assign": ["RMacfarlane"]}, + "javascript": {"assign": ["mjbvz"]}, + "json": {"assign": ["aeschli"]}, + "keybindings": {"assign": []}, + "keybindings-editor": {"assign": ["sandy081"]}, + "keyboard-layout": {"assign": ["alexdima"]}, + "languages-basic": {"assign": ["aeschli"]}, + "languages-diagnostics": {"assign": ["jrieken"]}, + "layout": {"assign": []}, + "lcd-text-rendering": {"assign": []}, + "list": {"assign": ["joaomoreno"]}, + "log": {"assign": []}, + "markdown": {"assign": ["mjbvz"]}, + "marketplace": {"assign": []}, + "menus": {"assign": ["sbatten"]}, + "merge-conflict": {"assign": ["chrmarti"]}, + "notebook": {"assign": ["rebornix"]}, + "outline": {"assign": ["jrieken"]}, + "output": {"assign": []}, + "perf": {"assign": []}, + "perf-bloat": {"assign": []}, + "perf-startup": {"assign": []}, + "php": {"assign": ["roblourens"]}, + "portable-mode": {"assign": ["joaomoreno"]}, + "proxy": {"assign": []}, + "quick-pick": {"assign": ["bpasero"]}, + "references-viewlet": {"assign": ["jrieken"]}, + "release-notes": {"assign": []}, + "remote": {"assign": []}, + "remote-explorer": {"assign": ["alexr00"]}, + "rename": {"assign": ["jrieken"]}, + "scm": {"assign": ["joaomoreno"]}, + "screencast-mode": {"assign": ["joaomoreno"]}, + "search": {"assign": ["roblourens"]}, + "search-editor": {"assign": ["JacksonKearl"]}, + "search-replace": {"assign": ["sandy081"]}, + "semantic-tokens": {"assign": ["aeschli"]}, + "settings-editor": {"assign": ["roblourens"]}, + "settings-sync": {"assign": ["sandy081"]}, + "simple-file-dialog": {"assign": ["alexr00"]}, + "smart-select": {"assign": ["jrieken"]}, + "smoke-test": {"assign": []}, + "snap": {"assign": ["joaomoreno"]}, + "snippets": {"assign": ["jrieken"]}, + "splitview": {"assign": ["joaomoreno"]}, + "suggest": {"assign": ["jrieken"]}, + "tasks": {"assign": ["alexr00"]}, + "telemetry": {"assign": []}, + "themes": {"assign": []}, + "timeline": {"assign": ["eamodio"]}, + "timeline-git": {"assign": ["eamodio"]}, + "titlebar": {"assign": ["sbatten"]}, + "tokenization": {"assign": []}, + "tree": {"assign": ["joaomoreno"]}, + "typescript": {"assign": ["mjbvz"]}, + "undo-redo": {"assign": []}, + "unit-test": {"assign": []}, + "uri": {"assign": ["jrieken"]}, + "ux": {"assign": ["misolori"]}, + "variable-resolving": {"assign": []}, + "vscode-build": {"assign": []}, + "web": {"assign": []}, + "webview": {"assign": ["mjbvz"]}, + "workbench-cli": {"assign": []}, + "workbench-diagnostics": {"assign": []}, + "workbench-dnd": {"assign": []}, + "workbench-editor-grid": {"assign": []}, + "workbench-editors": {"assign": ["bpasero"]}, + "workbench-electron": {"assign": []}, + "workbench-feedback": {"assign": []}, + "workbench-history": {"assign": ["bpasero"]}, + "workbench-hot-exit": {"assign": ["Tyriar"]}, + "workbench-launch": {"assign": []}, + "workbench-link": {"assign": ["octref"]}, + "workbench-multiroot": {"assign": []}, + "workbench-notifications": {"assign": ["bpasero"]}, + "workbench-os-integration": {"assign": []}, + "workbench-rapid-render": {"assign": ["jrieken"]}, + "workbench-run-as-admin": {"assign": []}, + "workbench-state": {"assign": ["bpasero"]}, + "workbench-status": {"assign": []}, + "workbench-tabs": {"assign": ["bpasero"]}, + "workbench-touchbar": {"assign": []}, + "workbench-views": {"assign": ["sbatten"]}, + "workbench-welcome": {"assign": ["chrmarti"]}, + "workbench-window": {"assign": []}, + "workbench-zen": {"assign": ["isidorn"]}, + "workspace-edit": {"assign": ["jrieken"]}, + "workspace-symbols": {"assign": []}, + "zoom": {"assign": ["alexdima"] } } - } } diff --git a/.github/workflows/author-verified.yml b/.github/workflows/author-verified.yml index 5ba6db14812..91ae98b6d80 100644 --- a/.github/workflows/author-verified.yml +++ b/.github/workflows/author-verified.yml @@ -17,7 +17,7 @@ jobs: uses: actions/checkout@v2 with: repository: 'microsoft/vscode-github-triage-actions' - ref: v27 + ref: v29 path: ./actions - name: Install Actions if: github.event_name != 'issues' || contains(github.event.issue.labels.*.name, 'author-verification-requested') diff --git a/.github/workflows/commands.yml b/.github/workflows/commands.yml index b4542529e4d..2f90b5b3c7a 100644 --- a/.github/workflows/commands.yml +++ b/.github/workflows/commands.yml @@ -13,7 +13,7 @@ jobs: with: repository: 'microsoft/vscode-github-triage-actions' path: ./actions - ref: v27 + ref: v29 - name: Install Actions run: npm install --production --prefix ./actions - name: Run Commands diff --git a/.github/workflows/deep-classifier-runner.yml b/.github/workflows/deep-classifier-runner.yml new file mode 100644 index 00000000000..85b396bd382 --- /dev/null +++ b/.github/workflows/deep-classifier-runner.yml @@ -0,0 +1,49 @@ +name: "Deep Classifier: Runner" +on: + schedule: + - cron: 0/30 * * * * + repository_dispatch: + types: [trigger-deep-classifier-runner] + +jobs: + main: + runs-on: ubuntu-latest + steps: + - name: Checkout Actions + uses: actions/checkout@v2 + with: + repository: 'microsoft/vscode-github-triage-actions' + ref: v29 + path: ./actions + - name: Install Actions + run: npm install --production --prefix ./actions + - name: Install Additional Dependencies + # Pulls in a bunch of other packages that arent needed for the rest of the actions + run: npm install @azure/storage-blob@12 + - name: "Run Classifier: Scraper" + uses: ./actions/classifier-deep/apply/fetch-sources + with: + # slightly overlapping to protect against issues slipping through the cracks if a run is delayed + from: 40 + until: 5 + configPath: classifier + blobContainerName: vscode-issue-classifier + blobStorageKey: ${{secrets.AZURE_BLOB_STORAGE_CONNECTION_STRING}} + token: ${{secrets.VSCODE_ISSUE_TRIAGE_BOT_PAT}} + appInsightsKey: ${{secrets.TRIAGE_ACTIONS_APP_INSIGHTS}} + - name: Set up Python 3.7 + uses: actions/setup-python@v1 + with: + python-version: 3.7 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install --upgrade numpy scipy scikit-learn joblib nltk simpletransformers torch torchvision + - name: "Run Classifier: Generator" + run: python ./actions/classifier-deep/apply/generate-labels/main.py + - name: "Run Classifier: Labeler" + uses: ./actions/classifier-deep/apply/apply-labels + with: + configPath: classifier + appInsightsKey: ${{secrets.TRIAGE_ACTIONS_APP_INSIGHTS}} + token: ${{secrets.VSCODE_ISSUE_TRIAGE_BOT_PAT}} diff --git a/.github/workflows/english-please.yml b/.github/workflows/english-please.yml index 7efae4bafc1..797cdf68f82 100644 --- a/.github/workflows/english-please.yml +++ b/.github/workflows/english-please.yml @@ -13,7 +13,7 @@ jobs: uses: actions/checkout@v2 with: repository: 'microsoft/vscode-github-triage-actions' - ref: v27 + ref: v29 path: ./actions - name: Install Actions if: contains(github.event.issue.labels.*.name, '*english-please') diff --git a/.github/workflows/feature-request.yml b/.github/workflows/feature-request.yml index f681f3ab0d4..d6c6bf54c49 100644 --- a/.github/workflows/feature-request.yml +++ b/.github/workflows/feature-request.yml @@ -18,7 +18,7 @@ jobs: with: repository: 'microsoft/vscode-github-triage-actions' path: ./actions - ref: v27 + ref: v29 - name: Install Actions if: github.event_name != 'issues' || contains(github.event.issue.labels.*.name, 'feature-request') run: npm install --production --prefix ./actions diff --git a/.github/workflows/latest-release-monitor.yml b/.github/workflows/latest-release-monitor.yml index 28ee7bb37d5..88e545a15a9 100644 --- a/.github/workflows/latest-release-monitor.yml +++ b/.github/workflows/latest-release-monitor.yml @@ -12,7 +12,7 @@ jobs: with: repository: 'microsoft/vscode-github-triage-actions' path: ./actions - ref: v27 + ref: v29 - name: Install Actions run: npm install --production --prefix ./actions - name: Install Storage Module diff --git a/.github/workflows/locker.yml b/.github/workflows/locker.yml index f9dbefb567f..5efa5cab412 100644 --- a/.github/workflows/locker.yml +++ b/.github/workflows/locker.yml @@ -14,7 +14,7 @@ jobs: with: repository: 'microsoft/vscode-github-triage-actions' path: ./actions - ref: v27 + ref: v29 - name: Install Actions run: npm install --production --prefix ./actions - name: Run Locker diff --git a/.github/workflows/needs-more-info-closer.yml b/.github/workflows/needs-more-info-closer.yml index a4c4e3396ea..d821b45a9b8 100644 --- a/.github/workflows/needs-more-info-closer.yml +++ b/.github/workflows/needs-more-info-closer.yml @@ -14,7 +14,7 @@ jobs: with: repository: 'microsoft/vscode-github-triage-actions' path: ./actions - ref: v27 + ref: v29 - name: Install Actions run: npm install --production --prefix ./actions - name: Run Needs More Info Closer diff --git a/.github/workflows/on-label.yml b/.github/workflows/on-label.yml index 8f9ef71a0e9..84fefefcc92 100644 --- a/.github/workflows/on-label.yml +++ b/.github/workflows/on-label.yml @@ -11,7 +11,7 @@ jobs: uses: actions/checkout@v2 with: repository: 'microsoft/vscode-github-triage-actions' - ref: v27 + ref: v29 path: ./actions - name: Install Actions run: npm install --production --prefix ./actions diff --git a/.github/workflows/on-open.yml b/.github/workflows/on-open.yml index 3c9a2ea54df..445cbfc2046 100644 --- a/.github/workflows/on-open.yml +++ b/.github/workflows/on-open.yml @@ -11,7 +11,7 @@ jobs: uses: actions/checkout@v2 with: repository: 'microsoft/vscode-github-triage-actions' - ref: v27 + ref: v29 path: ./actions - name: Install Actions run: npm install --production --prefix ./actions diff --git a/.github/workflows/release-pipeline-labeler.yml b/.github/workflows/release-pipeline-labeler.yml index ebe6d5cab18..8a6281c8e47 100644 --- a/.github/workflows/release-pipeline-labeler.yml +++ b/.github/workflows/release-pipeline-labeler.yml @@ -13,7 +13,7 @@ jobs: uses: actions/checkout@v2 with: repository: 'microsoft/vscode-github-triage-actions' - ref: v27 + ref: v29 path: ./actions - name: Checkout Repo if: github.event_name != 'issues' diff --git a/.github/workflows/test-plan-item-validator.yml b/.github/workflows/test-plan-item-validator.yml index 530f51ae695..7c115ab8361 100644 --- a/.github/workflows/test-plan-item-validator.yml +++ b/.github/workflows/test-plan-item-validator.yml @@ -14,7 +14,7 @@ jobs: with: repository: 'microsoft/vscode-github-triage-actions' path: ./actions - ref: v27 + ref: v29 - name: Install Actions if: contains(github.event.issue.labels.*.name, 'testplan-item') || contains(github.event.issue.labels.*.name, 'invalid-testplan-item') run: npm install --production --prefix ./actions -- GitLab