From c2510e106718d5687a483346af79df1a3500f52a Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 29 Apr 2024 21:24:48 -0500 Subject: [PATCH 01/38] [pre-commit.ci] pre-commit autoupdate (#134) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/psf/black: 24.4.0 → 24.4.2](https://github.com/psf/black/compare/24.4.0...24.4.2) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 53c7ebb7..13e863b2 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -13,7 +13,7 @@ repos: # catch git merge/rebase problems - id: check-merge-conflict - repo: https://github.com/psf/black - rev: 24.4.0 + rev: 24.4.2 hooks: - id: black types_or: [python] From dfd3688b639ec6cf0a07847aca7572d0473454b9 Mon Sep 17 00:00:00 2001 From: conda-bot <18747875+conda-bot@users.noreply.github.com> Date: Mon, 13 May 2024 11:26:20 -0500 Subject: [PATCH 02/38] =?UTF-8?q?=F0=9F=94=84=20synced=20file(s)=20with=20?= =?UTF-8?q?conda/infrastructure=20(#135)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Conda Bot --- .github/workflows/cla.yml | 2 +- .github/workflows/issues.yml | 4 ++-- .github/workflows/labels.yml | 8 ++++---- .github/workflows/lock.yml | 2 +- .github/workflows/project.yml | 2 +- .github/workflows/stale.yml | 4 ++-- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/cla.yml b/.github/workflows/cla.yml index ad56cf6e..66df3b0f 100644 --- a/.github/workflows/cla.yml +++ b/.github/workflows/cla.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check CLA - uses: conda/actions/check-cla@1e442e090ad28c9b0f85697105703a303320ffd1 + uses: conda/actions/check-cla@976289d0cfd85139701b26ddd133abdd025a7b5f # v24.5.0 with: # [required] # A token with ability to comment, label, and modify the commit status diff --git a/.github/workflows/issues.yml b/.github/workflows/issues.yml index 7a114d6d..634bf13e 100644 --- a/.github/workflows/issues.yml +++ b/.github/workflows/issues.yml @@ -23,12 +23,12 @@ jobs: runs-on: ubuntu-latest steps: # remove [pending::feedback] - - uses: actions-ecosystem/action-remove-labels@2ce5d41b4b6aa8503e285553f75ed56e0a40bae0 + - uses: actions-ecosystem/action-remove-labels@2ce5d41b4b6aa8503e285553f75ed56e0a40bae0 # v1.3.0 with: labels: ${{ env.FEEDBACK_LBL }} github_token: ${{ secrets.PROJECT_TOKEN }} # add [pending::support], if still open - - uses: actions-ecosystem/action-add-labels@18f1af5e3544586314bbe15c0273249c770b2daf + - uses: actions-ecosystem/action-add-labels@18f1af5e3544586314bbe15c0273249c770b2daf # v1.1.3 if: github.event.issue.state == 'open' with: labels: ${{ env.SUPPORT_LBL }} diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index e6817ddf..4741235b 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -19,20 +19,20 @@ jobs: GLOBAL: https://raw.githubusercontent.com/conda/infra/main/.github/global.yml LOCAL: .github/labels.yml steps: - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - id: has_local - uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 + uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0 with: files: ${{ env.LOCAL }} - name: Global Only - uses: EndBug/label-sync@52074158190acb45f3077f9099fea818aa43f97a + uses: EndBug/label-sync@52074158190acb45f3077f9099fea818aa43f97a # v2.3.3 if: steps.has_local.outputs.files_exists == 'false' with: config-file: ${{ env.GLOBAL }} delete-other-labels: true dry-run: ${{ github.event.inputs.dryrun }} - name: Global & Local - uses: EndBug/label-sync@52074158190acb45f3077f9099fea818aa43f97a + uses: EndBug/label-sync@52074158190acb45f3077f9099fea818aa43f97a # v2.3.3 if: steps.has_local.outputs.files_exists == 'true' with: config-file: | diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml index 2204b62d..0b63dec3 100644 --- a/.github/workflows/lock.yml +++ b/.github/workflows/lock.yml @@ -17,7 +17,7 @@ jobs: if: '!github.event.repository.fork' runs-on: ubuntu-latest steps: - - uses: dessant/lock-threads@1bf7ec25051fe7c00bdd17e6a7cf3d7bfb7dc771 + - uses: dessant/lock-threads@1bf7ec25051fe7c00bdd17e6a7cf3d7bfb7dc771 # v5.0.1 with: # Number of days of inactivity before a closed issue is locked issue-inactive-days: 365 diff --git a/.github/workflows/project.yml b/.github/workflows/project.yml index 7d06584c..297ac226 100644 --- a/.github/workflows/project.yml +++ b/.github/workflows/project.yml @@ -13,7 +13,7 @@ jobs: if: '!github.event.repository.fork' runs-on: ubuntu-latest steps: - - uses: actions/add-to-project@9bfe908f2eaa7ba10340b31e314148fcfe6a2458 + - uses: actions/add-to-project@9bfe908f2eaa7ba10340b31e314148fcfe6a2458 # v1.0.1 with: # issues are added to the Planning project # PRs are added to the Review project diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 78f4ac5e..bde3340f 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -33,12 +33,12 @@ jobs: days-before-issue-stale: 90 days-before-issue-close: 21 steps: - - uses: conda/actions/read-yaml@1e442e090ad28c9b0f85697105703a303320ffd1 + - uses: conda/actions/read-yaml@976289d0cfd85139701b26ddd133abdd025a7b5f # v24.5.0 id: read_yaml with: path: https://raw.githubusercontent.com/conda/infra/main/.github/messages.yml - - uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e + - uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e # v9.0.0 id: stale with: # Only issues with these labels are checked whether they are stale From c6da777a7db2288c25371be265348b52d8160256 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 15 Jul 2024 15:59:57 -0500 Subject: [PATCH 03/38] [pre-commit.ci] pre-commit autoupdate (#136) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/asottile/blacken-docs: 1.16.0 → 1.18.0](https://github.com/asottile/blacken-docs/compare/1.16.0...1.18.0) - [github.com/PyCQA/flake8: 7.0.0 → 7.1.0](https://github.com/PyCQA/flake8/compare/7.0.0...7.1.0) - [github.com/PyCQA/pylint: v3.1.0 → v3.2.5](https://github.com/PyCQA/pylint/compare/v3.1.0...v3.2.5) - [github.com/PyCQA/bandit: 1.7.8 → 1.7.9](https://github.com/PyCQA/bandit/compare/1.7.8...1.7.9) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 13e863b2..37376410 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -18,24 +18,24 @@ repos: - id: black types_or: [python] - repo: https://github.com/asottile/blacken-docs - rev: 1.16.0 + rev: 1.18.0 hooks: - id: blacken-docs additional_dependencies: [black] types_or: [python] - repo: https://github.com/PyCQA/flake8 - rev: 7.0.0 + rev: 7.1.0 hooks: - id: flake8 types_or: [python] - repo: https://github.com/PyCQA/pylint - rev: v3.1.0 + rev: v3.2.5 hooks: - id: pylint args: [--exit-zero] types_or: [python] - repo: https://github.com/PyCQA/bandit - rev: 1.7.8 + rev: 1.7.9 hooks: - id: bandit args: [--exit-zero] From 19261762ef770373ec3f6d13e2e503697272f2f6 Mon Sep 17 00:00:00 2001 From: conda-bot <18747875+conda-bot@users.noreply.github.com> Date: Mon, 15 Jul 2024 17:24:24 -0500 Subject: [PATCH 04/38] =?UTF-8?q?=F0=9F=94=84=20synced=20file(s)=20with=20?= =?UTF-8?q?conda/infrastructure=20(#137)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Conda Bot --- .github/workflows/labels.yml | 2 +- .github/workflows/project.yml | 2 +- HOW_WE_USE_GITHUB.md | 51 +++++++++-------------------------- 3 files changed, 14 insertions(+), 41 deletions(-) diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index 4741235b..01894789 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -19,7 +19,7 @@ jobs: GLOBAL: https://raw.githubusercontent.com/conda/infra/main/.github/global.yml LOCAL: .github/labels.yml steps: - - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - id: has_local uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0 with: diff --git a/.github/workflows/project.yml b/.github/workflows/project.yml index 297ac226..4eda798e 100644 --- a/.github/workflows/project.yml +++ b/.github/workflows/project.yml @@ -13,7 +13,7 @@ jobs: if: '!github.event.repository.fork' runs-on: ubuntu-latest steps: - - uses: actions/add-to-project@9bfe908f2eaa7ba10340b31e314148fcfe6a2458 # v1.0.1 + - uses: actions/add-to-project@244f685bbc3b7adfa8466e08b698b5577571133e # v1.0.2 with: # issues are added to the Planning project # PRs are added to the Review project diff --git a/HOW_WE_USE_GITHUB.md b/HOW_WE_USE_GITHUB.md index 46a13ecd..16f9fcfe 100644 --- a/HOW_WE_USE_GITHUB.md +++ b/HOW_WE_USE_GITHUB.md @@ -219,29 +219,16 @@ This is a duplicate of [link to primary issue]; please feel free to conti
-Requesting an Uninstall/Reinstall of conda +Anaconda Products
+Thank you for filing this issue! Unfortunately, this is off-topic for this repo because it is related to an Anaconda product.
+If you are encountering issues with Anaconda products or services, you have several options for receiving community
+support:
 
-Please uninstall your current version of `conda` and reinstall the latest version.
-Feel free to use either the [miniconda](https://docs.anaconda.com/free/miniconda/)
-or [anaconda](https://www.anaconda.com/products/individual) installer,
-whichever is more appropriate for your needs.
-
- -
- -
-Redirect to Anaconda Issue Tracker - - -
-
-Thank you for filing this issue! Unfortunately, this is off-topic for this repo.
-If you are still encountering this issue please reopen in the
-[Anaconda issue tracker](https://github.com/ContinuumIO/anaconda-issues/issues)
-where `conda` installer/package issues are addressed.
+- [Anaconda community forums](https://community.anaconda.cloud)
+- [Anaconda issue tracker on GitHub](https://github.com/ContinuumIO/anaconda-issues/issues)
 
> [!WARNING] @@ -250,14 +237,15 @@ where `conda` installer/package issues are addressed.
-Redirecting to Nucleus Forums +General Off Topic -
+Unfortunately, this issue is outside the scope of support we offer via GitHub or is not directly related to this project.
+Community support can be found elsewhere, though, and we encourage you to explore the following options:
 
-Unfortunately, this issue is outside the scope of support we offer via GitHub;
-if you continue to experience the problems described here,
-please post details to the [Nucleus forums](https://community.anaconda.cloud/).
+- [Conda discourse forum](https://conda.discourse.group/)
+- [Community chat channels](https://conda.org/community#chat)
+- [Stack Overflow posts tagged "conda"](https://stackoverflow.com/questions/tagged/conda)
 
> [!WARNING] @@ -265,21 +253,6 @@ please post details to the [Nucleus forums](https://community.anaconda.cloud/).
-
-Slow solving of conda environment - - -
-Hi [@username],
-
-Thanks for voicing your concern about the performance of the classic dependency solver. To fix this, our official recommendation is using the new default "conda-libmamba-solver" instead of the classic solver (more information about the "conda-libmamba-solver" can be found here: https://conda.github.io/conda-libmamba-solver/getting-started/).
-
-In most cases "conda-libmamba-solver" should be significantly faster than the "classic" solver. We hope it provides you with a much better experience going forward.
-
- -
- - In order to not have to manually type or copy/paste the above repeatedly, note that it's possible to add text for the most commonly-used responses via [GitHub's "Add Saved Reply" option][docs-saved-reply]. ## Commit Signing From 23f50f2b99143783111189fcf83a9650f474f589 Mon Sep 17 00:00:00 2001 From: conda-bot <18747875+conda-bot@users.noreply.github.com> Date: Tue, 30 Jul 2024 18:56:30 -0500 Subject: [PATCH 05/38] =?UTF-8?q?=F0=9F=94=84=20synced=20file(s)=20with=20?= =?UTF-8?q?conda/infrastructure=20(#140)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Conda Bot --- .github/workflows/labels.yml | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index 01894789..6fd09350 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -5,11 +5,15 @@ on: # https://docs.github.com/en/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_dispatch workflow_dispatch: inputs: - dryrun: - description: 'dryrun: Preview changes to labels without editing them (true|false)' - required: true + delete-unmapped: + description: Delete labels not mapped in either global or local label configurations. + default: false + type: boolean + + dry-run: + description: Run label synchronization workflow without making any changes. + default: false type: boolean - default: true jobs: sync: @@ -20,17 +24,20 @@ jobs: LOCAL: .github/labels.yml steps: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - id: has_local uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0 with: files: ${{ env.LOCAL }} + - name: Global Only uses: EndBug/label-sync@52074158190acb45f3077f9099fea818aa43f97a # v2.3.3 if: steps.has_local.outputs.files_exists == 'false' with: config-file: ${{ env.GLOBAL }} - delete-other-labels: true - dry-run: ${{ github.event.inputs.dryrun }} + delete-other-labels: ${{ inputs.delete-unmapped }} + dry-run: ${{ inputs.dry-run }} + - name: Global & Local uses: EndBug/label-sync@52074158190acb45f3077f9099fea818aa43f97a # v2.3.3 if: steps.has_local.outputs.files_exists == 'true' @@ -38,5 +45,5 @@ jobs: config-file: | ${{ env.GLOBAL }} ${{ env.LOCAL }} - delete-other-labels: true - dry-run: ${{ github.event.inputs.dryrun }} + delete-other-labels: ${{ inputs.delete-unmapped }} + dry-run: ${{ inputs.dry-run }} From 8650a42344b62e37a9fc024c9e787a4b9b2693dd Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 30 Jul 2024 18:58:04 -0500 Subject: [PATCH 06/38] [pre-commit.ci] pre-commit autoupdate (#139) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/PyCQA/pylint: v3.2.5 → v3.2.6](https://github.com/PyCQA/pylint/compare/v3.2.5...v3.2.6) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 37376410..cfc0c4d3 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -29,7 +29,7 @@ repos: - id: flake8 types_or: [python] - repo: https://github.com/PyCQA/pylint - rev: v3.2.5 + rev: v3.2.6 hooks: - id: pylint args: [--exit-zero] From 276b873e1c8cb2de3c710743937f70f37adaa5b2 Mon Sep 17 00:00:00 2001 From: conda-bot <18747875+conda-bot@users.noreply.github.com> Date: Tue, 13 Aug 2024 09:05:10 -0500 Subject: [PATCH 07/38] =?UTF-8?q?=F0=9F=A4=96=20Init=20`update.yml`=20work?= =?UTF-8?q?flow=20(#143)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/template-files/config.yml | 50 ++++++++++++ .github/workflows/update.yml | 124 ++++++++++++++++++++++++++++++ 2 files changed, 174 insertions(+) create mode 100644 .github/template-files/config.yml create mode 100644 .github/workflows/update.yml diff --git a/.github/template-files/config.yml b/.github/template-files/config.yml new file mode 100644 index 00000000..10381688 --- /dev/null +++ b/.github/template-files/config.yml @@ -0,0 +1,50 @@ +conda/governance: + # [required] community files + - CODE_OF_CONDUCT.md + +conda/infrastructure: + # [required] general workflows + - .github/workflows/cla.yml + - .github/workflows/update.yml + + # [optional] to include repo in https://github.com/orgs/conda/projects/2 + - .github/workflows/issues.yml + - .github/workflows/labels.yml + - .github/workflows/project.yml + + # [optional] stale bot workflows + - .github/workflows/stale.yml + - .github/workflows/lock.yml + + # [optional] general processes for the conda org + - src: templates/HOW_WE_USE_GITHUB.md + dst: HOW_WE_USE_GITHUB.md + + # [optional] standard issue templates + - src: templates/issues/bug.yml + dst: .github/ISSUE_TEMPLATE/0_bug.yml + + - src: templates/issues/feature.yml + dst: .github/ISSUE_TEMPLATE/1_feature.yml + + - src: templates/issues/documentation.yml + dst: .github/ISSUE_TEMPLATE/2_documentation.yml + + - src: templates/issues/epic.yml + dst: .github/ISSUE_TEMPLATE/epic.yml + + # [optional] standard PR template + # - src: templates/pull_requests/news_tests_docs.md + # dst: .github/template-files/templates/pull_request_template_details.md + - src: templates/pull_requests/base.md + dst: .github/PULL_REQUEST_TEMPLATE.md + + # [optional] rever release files + # - src: templates/releases/RELEASE.md + # dst: RELEASE.md + # with: + # placeholder: YY.M + # - src: templates/releases/rever.xsh + # dst: rever.xsh + # - src: templates/releases/TEMPLATE + # dst: news/TEMPLATE diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml new file mode 100644 index 00000000..b11957a3 --- /dev/null +++ b/.github/workflows/update.yml @@ -0,0 +1,124 @@ +name: Update Repository + +on: + # every Sunday at 00:36 UTC + # https://crontab.guru/#36_2_*_*_0 + schedule: + - cron: 36 2 * * 0 + + workflow_dispatch: + + issue_comment: + types: + - created + +jobs: + update: + if: >- + !github.event.repository.fork + && ( + github.event_name == 'schedule' + || github.event_name == 'workflow_dispatch' + || ( + github.event_name == 'issue_comment' + && github.event.issue.pull_request + && ( + github.event.comment.body == '@conda-bot render' + || github.event.comment.body == '@conda-bot recreate' + ) + ) + ) + runs-on: ubuntu-latest + steps: + - if: github.event_name == 'issue_comment' + uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0 + with: + comment-id: ${{ github.event.comment.id }} + reactions: eyes + reactions-edit-mode: replace + token: ${{ secrets.SYNC_TOKEN }} + + - if: github.event.comment.body == '@conda-bot render' + name: Configure git origin + run: | + echo REPOSITORY=$(curl --silent ${{ github.event.issue.pull_request.url }} | jq --raw-output '.head.repo.full_name') >> $GITHUB_ENV + echo REF=$(curl --silent ${{ github.event.issue.pull_request.url }} | jq --raw-output '.head.ref') >> $GITHUB_ENV + + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + with: + repository: ${{ env.REPOSITORY || github.repository }} + ref: ${{ env.REF || '' }} + token: ${{ secrets.SYNC_TOKEN }} + + - name: Configure git user + run: | + git config --global user.name 'Conda Bot' + git config --global user.email '18747875+conda-bot@users.noreply.github.com' + + - uses: conda/actions/combine-durations@15f883f14f4232f83658e3609c3316d58905138f # v24.8.0 + id: durations + continue-on-error: true + + - uses: conda/actions/template-files@15f883f14f4232f83658e3609c3316d58905138f # v24.8.0 + id: templates + continue-on-error: true + + - name: Commit changes + # no-op if there are no updates + continue-on-error: true + run: | + git add . + git commit --message "🤖 updated file(s)" + + - if: github.event.comment.body != '@conda-bot render' + name: Create fork + # no-op if the repository is already forked + run: echo FORK=$(gh repo fork --clone=false --default-branch-only 2>&1 | awk '{print $1}') >> $GITHUB_ENV + env: + GH_TOKEN: ${{ secrets.SYNC_TOKEN }} + + - if: github.event.comment.body != '@conda-bot render' + id: create + # no-op if no commits were made + uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c # v6.1.0 + with: + push-to-fork: ${{ env.FORK }} + token: ${{ secrets.SYNC_TOKEN }} + branch: update + delete-branch: true + title: 🤖 Update infrastructure file(s) + body: | + [update.yml]: ${{ github.server_url }}/${{ github.repository }}/blob/main/.github/workflows/update.yml + + Your friendly repository updater. + + ${{ steps.durations.outputs.summary }} + + ${{ steps.templates.outputs.summary }} + + This PR was triggered by @${{ github.triggering_actor }} via ${{ github.event_name }}. + +
+ Commands + + Trigger actions by commenting on this PR: + + - `@conda-bot render` will run rendering workflows and commit and push any changes to this PR + - `@conda-bot recreate` will recreate this PR, overwriting any edits that have been made to it + +
+ + ###### Auto-generated by the [`update.yml`][update.yml] workflow, see ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}. + + - if: github.event.comment.body == '@conda-bot render' + id: update + name: Push changes + run: git push --force-with-lease + + - if: always() && github.event_name == 'issue_comment' + uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0 + with: + comment-id: ${{ github.event.comment.id }} + reactions: ${{ (steps.create.conclusion == 'success' || steps.update.conclusion == 'success') && 'hooray' || 'confused' }} + reactions-edit-mode: replace + token: ${{ secrets.SYNC_TOKEN }} From 6f2cac48f751cc024ad92a82e7cc053c04a0ec74 Mon Sep 17 00:00:00 2001 From: conda-bot <18747875+conda-bot@users.noreply.github.com> Date: Tue, 13 Aug 2024 09:07:53 -0500 Subject: [PATCH 08/38] =?UTF-8?q?=F0=9F=A4=96=20Update=20infrastructure=20?= =?UTF-8?q?file(s)=20(#144)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/ISSUE_TEMPLATE/0_bug.yml | 42 +-- .github/ISSUE_TEMPLATE/1_feature.yml | 4 +- .github/ISSUE_TEMPLATE/2_documentation.yml | 2 + .github/ISSUE_TEMPLATE/epic.yml | 5 +- .github/PULL_REQUEST_TEMPLATE.md | 6 +- CODE_OF_CONDUCT.md | 289 ++++++++++++++++++++- HOW_WE_USE_GITHUB.md | 56 ++-- 7 files changed, 335 insertions(+), 69 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/0_bug.yml b/.github/ISSUE_TEMPLATE/0_bug.yml index a53f6fba..b530bb12 100644 --- a/.github/ISSUE_TEMPLATE/0_bug.yml +++ b/.github/ISSUE_TEMPLATE/0_bug.yml @@ -1,3 +1,5 @@ +# edit this in https://github.com/conda/infrastructure + name: Bug Report description: Create a bug report. labels: @@ -13,7 +15,7 @@ body: Since there are already a lot of open issues, please also take a moment to search existing ones to see if your bug has already been reported. If you find something related, please upvote that issue and provide additional details as necessary. - 💐 Thank you for helping to make Conda better. We would be unable to improve Conda without our community! + 💐 Thank you for helping to make `conda/issue-tracker` better. We would be unable to improve `conda/issue-tracker` without our community! - type: checkboxes id: checks attributes: @@ -31,45 +33,7 @@ body: description: What should have happened instead? Please provide as many details as possible. The more information provided, the more likely we are able to replicate your problem and offer a solution. validations: required: true - - type: textarea - id: info - attributes: - label: Conda Info - description: | - Let's collect some basic information about your conda install. - - Please run the following command from your command line and paste the output below. - - ```bash - conda info - ``` - render: shell - - type: textarea - id: config - attributes: - label: Conda Config - description: | - Let's collect any customizations you may have for your conda install. - - Please run the following command from your command line and paste the output below. - - ```bash - conda config --show-sources - ``` - render: shell - - type: textarea - id: list - attributes: - label: Conda list - description: | - The packages installed into your environment can offer clues as to the problem you are facing. - - Please activate the environment within which you are encountering this bug, run the following command from your command line, and paste the output below. - ```bash - conda list --show-channel-urls - ``` - render: shell - type: textarea id: context attributes: diff --git a/.github/ISSUE_TEMPLATE/1_feature.yml b/.github/ISSUE_TEMPLATE/1_feature.yml index bc022b41..86ebfb8d 100644 --- a/.github/ISSUE_TEMPLATE/1_feature.yml +++ b/.github/ISSUE_TEMPLATE/1_feature.yml @@ -1,3 +1,5 @@ +# edit this in https://github.com/conda/infrastructure + name: Feature Request description: Create a feature request. labels: @@ -13,7 +15,7 @@ body: Since there are already a lot of open issues, please also take a moment to search existing ones to see if your feature request has already been submitted. If you find something related, please upvote that issue and provide additional details as necessary. - 💐 Thank you for helping to make Conda better. We would be unable to improve Conda without our community! + 💐 Thank you for helping to make `conda/issue-tracker` better. We would be unable to improve `conda/issue-tracker` without our community! - type: checkboxes id: checks attributes: diff --git a/.github/ISSUE_TEMPLATE/2_documentation.yml b/.github/ISSUE_TEMPLATE/2_documentation.yml index f3ce0408..56e2fb8e 100644 --- a/.github/ISSUE_TEMPLATE/2_documentation.yml +++ b/.github/ISSUE_TEMPLATE/2_documentation.yml @@ -1,3 +1,5 @@ +# edit this in https://github.com/conda/infrastructure + name: Documentation description: Create a documentation related issue. labels: diff --git a/.github/ISSUE_TEMPLATE/epic.yml b/.github/ISSUE_TEMPLATE/epic.yml index 9b3637f9..2bf64ea6 100644 --- a/.github/ISSUE_TEMPLATE/epic.yml +++ b/.github/ISSUE_TEMPLATE/epic.yml @@ -1,3 +1,5 @@ +# edit this in https://github.com/conda/infrastructure + name: Epic description: A collection of related tickets. labels: @@ -15,7 +17,8 @@ body: Since there are already a lot of open issues, please also take a moment to search existing ones to see if a similar epic has already been opened. If you find something related, please upvote that issue and provide additional details as necessary. - 💐 Thank you for helping to make Conda better. We would be unable to improve Conda without our community! + 💐 Thank you for helping to make `conda/issue-tracker` better. We would be unable to improve `conda/issue-tracker` without our community! + - type: checkboxes id: checks attributes: diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 760ec06c..29d9bba4 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -8,6 +8,8 @@ - any noteworthy (or hacky) choices to be aware of, - or what the problem resolved here looked like. --> + + + - Conda Org COC: https://github.com/conda/issue-tracker/blob/main/CODE_OF_CONDUCT.md + - Contributing docs: https://github.com/conda/issue-tracker/blob/main/CONTRIBUTING.md --> diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 663464fe..dfcca8ea 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -1,8 +1,5 @@ # Conda Organization Code of Conduct -> [!NOTE] -> Below is the short version of our CoC, see the long version [here](https://github.com/conda-incubator/governance/blob/main/CODE_OF_CONDUCT.md). - # The Short Version Be kind to others. Do not insult or put down others. Behave professionally. Remember that harassment and sexist, racist, or exclusionary jokes are not appropriate for the conda Organization. @@ -18,3 +15,289 @@ Thank you for helping make this a welcoming, friendly community for all. * Report a code of conduct incident [using a form](https://form.jotform.com/221527028480048). * Report a code of conduct incident via email: [conduct@conda.org](mailto:conduct@conda.org). * Contact [an individual committee member](#committee-membership) or [CoC event representative](#coc-representatives) to report an incident in confidence. + +  + +And now the longer version... + +# Conda Organization Diversity Statement + +The conda Organization welcomes and encourages participation in our community by people of all backgrounds and identities. We are committed to promoting and sustaining a culture that values mutual respect, tolerance, and learning, and we work together as a community to help each other live out these values. + +We have created this diversity statement because we believe that a diverse community is stronger, more vibrant, and produces better software and better science. A diverse community where people treat each other with respect has more potential contributors, more sources for ideas, and fewer shared assumptions that might hinder development or research. + +Although we have phrased the formal diversity statement generically to make it all-inclusive, we recognize that there are specific identities that are impacted by systemic discrimination and marginalization. We welcome all people to participate in the conda Organization community regardless of their identity or background. + +# Conda Organization Code of Conduct: Introduction & Scope + +This code of conduct should be honored by everyone who participates in the conda Organization community. It should be honored in any conda Organization-related activities, by anyone claiming affiliation with the conda Organization, and especially when someone is representing the conda Organization in any role (including as an event volunteer or speaker). + +This code of conduct applies to all spaces managed by the conda Organization, including all public and private mailing lists, issue trackers, wikis, forums, and any other communication channel used by our community. The code of conduct equally applies at conda Organization events and governs standards of behavior for attendees, speakers, volunteers, booth staff, and event sponsors. + +This code is not exhaustive or complete. It serves to distill our understanding of a collaborative, inclusive community culture. Please try to follow this code in spirit as much as in letter, to create a friendly and productive environment that enriches the conda Organization community. + +The conda Organization Code of Conduct follows below. + +# Standards for Behavior + +The conda Organization is a worldwide community. All communication should be appropriate for a professional audience including people of many different backgrounds. + +**Please always be kind and courteous. There's never a need to be mean or rude or disrespectful.** Thank you for helping make this a welcoming, friendly community for all. + +We strive to: + +**Be empathetic, welcoming, friendly, and patient.** We remember that the conda Organization is crafted by human beings who deserve to be treated with kindness and empathy. We work together to resolve conflict and assume good intentions. We may all experience some frustration from time to time, but we do not allow frustration to turn into a personal attack. A community where people feel uncomfortable or threatened is not a productive one. + +**Be collaborative.** Our work depends on the participation of many people, and in turn others depend on our work. Open source communities depend on effective and friendly collaboration to achieve their goals. + +**Be inquisitive.** Nobody knows everything! Asking questions early avoids many problems later, so we encourage questions, although we may direct them to the appropriate forum. We will try hard to be responsive and helpful. + +**Be careful in the words that we choose.** We are careful and respectful in our communication and we take responsibility for our own speech. Be kind to others. Do not insult or put down other members of the community. + +## Unacceptable Behavior + +We are committed to making participation in this community a harassment-free experience. + +We will not accept harassment or other exclusionary behaviors, such as: + +- The use of sexualized language or imagery +- Excessive profanity (please avoid curse words; people differ greatly in their sensitivity to swearing) +- Posting sexually explicit or violent material +- Violent or intimidating threats or language directed against another person +- Inappropriate physical contact and/or unwelcome sexual attention or sexual comments +- Sexist, racist, or otherwise discriminatory jokes and language +- Trolling or insulting and derogatory comments +- Written or verbal comments which have the effect of excluding people on the basis of membership in a specific group, including level of experience, gender, gender identity and expression, sexual orientation, disability, neurotype, personal appearance, body size, race, ethnicity, age, religion, or nationality +- Public or private harassment +- Sharing private content, such as emails sent privately or non-publicly, or direct message history, without the sender's consent +- Continuing to initiate interaction (such as photography, recording, messaging, or conversation) with someone after being asked to stop +- Sustained disruption of talks, events, or communications, such as heckling of a speaker +- Publishing (or threatening to post) other people's personally identifying information ("doxing"), such as physical or electronic addresses, without explicit permission +- Other unethical or unprofessional conduct +- Advocating for, or encouraging, any of the above behaviors + +The conda Organization prioritizes marginalized people’s safety over privileged people’s comfort. The conda CoC Committee reserves the right not to act on complaints including, but not limited to: + +* ‘Reverse’ -isms, including ‘reverse racism,’ ‘reverse sexism,’ and ‘cisphobia’. +* Reasonable communication of boundaries, such as “leave me alone,” “go away,” or “I’m not discussing this with you.” +* Communicating in a ‘tone’ you don’t find congenial. +* Criticizing racist, sexist, cissexist, or otherwise oppressive behavior or assumptions. + +## Behavior Outside of conda Organization Spaces + +The CoC Committee does not influence behavior and membership in spaces outside the conda Organization. However, if you are being harassed by a member of the conda community outside our spaces, you may still report it to the CoC Committee. We will take all good-faith reports of harassment by conda community members seriously. This includes harassment outside our spaces and harassment that took place at any point in time. + +The CoC Committee reserves the right to exclude people from conda Organization spaces based on their past behavior, including behavior outside conda Organization spaces and behavior towards people who are not in the conda community. + +# Confidentiality and Public Statements to the Community + +The CoC Committee will keep the identity of the reporter confidential. + +Whenever possible, CoC cases will be reported to the community. The level of detail in reports will vary from case to case. Reports will describe at least the type of infraction that was reported, and the Committee's decision and any action taken. In most cases, the report will not include personally identifiable information. + +# Live Events + +> **If you feel your safety is in jeopardy or the situation is an emergency, we urge you to contact local law enforcement before making a report to the event's Code of Conduct committee members, [representatives](#coc-representatives), or other staff.** (In the U.S., call 911.) + +Live events present particular challenges: + +**Code of conduct reports, and consequences that stem from them, merit a thoughtful and deliberative process. Decisions and consequences matter for the reporter, the reported, and for the community at large. However, many reports, especially at live events, require rapid action to quickly address the behavior being reported.** + +To better support situations where immediate action may be required, these guidelines are used *during* live events: + +* All conda Organization events will have specific, named Code of Conduct contacts for the events. +* The names and contact mechanisms for the Code of Conduct representatives will be clearly and frequently communicated to event participants. + +## CoC Representatives + +Every conda Organization associated event will have named CoC Committee members or *CoC representatives* that are the first point of contact for that event. Who these people are will be clearly and frequently communicated to event participants. CoC approved representatives are used when there are no committee members participating in the event. + +## Live Events: Reporting and Actions +At conda Organization events, Code of Conduct committee members or representatives will attempt to gather and write down [information](#what-to-include-in-a-report) from anyone making a verbal report at a live event. Recording the details in writing is exceedingly important in order for us to effectively respond to reports. If event staff write down a report taken verbally, then the person making the report will be asked to review the written report for accuracy. + +For reports made during live events, or in any situation where urgent action is needed: + +* Any two (or more) event organizers, event staff, CoC Committee members or CoC representatives can decide if immediate action is to be taken and what that action is. In exceptionally dangerous situations, this decision can be made by a single person. +* These rapid decisions can be reconsidered during the event as more information becomes available. +* The scope of any rapid decision is limited to the current event / situation. +* The report, any related information, and any decisions and consequences will be reported to the full Code of Conduct Committee as soon as possible. + +The full Code of Conduct Committee will then consider the report using the full timeline and processes defined below. The Committee may decide to apply consequences in other spaces beyond the space where the behavior was reported. + +Potential *immediate* consequences for violating the conda Organization Code of Conduct at a live event include, but are not limited to: + +- Warning the person to cease their behavior and that any further reports will result in sanctions +- Requiring that the person avoid any interaction with, and physical proximity to, the person they are harassing for the remainder of the event +- Ending a talk that violates the policy early +- Not publishing the video or slides of a talk that violated the policy +- Not allowing a speaker who violated the policy to give (further) talks at the event now or in the future +- Immediately ending any event volunteer responsibilities and privileges the reported person holds +- Expelling the person from the event without a refund +- Requiring that the person immediately leave the event and not return +- Any other response that the CoC members, representatives, or event staff deem necessary and appropriate to the situation + +# Reporting Guidelines + +If you believe someone is violating the code of conduct, please report this in a timely manner. Code of conduct violations reduce the value of the community for everyone. The conda Code of Conduct (CoC) Committee and the conda Organization take reports of misconduct very seriously and are committed to preserving and maintaining the welcoming nature of our community. + +> [!NOTE] +> You are also encouraged to reach out to the conda Code of Conduct (CoC) Committee if you want clarification on something, if you notice some borderline behavior, or just have a concern. Send us a note at [conduct@conda.org](mailto:conduct@conda.org). + +All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The conda CoC Committee commits to maintaining confidentiality with regard to the reporter of an incident. + +For possibly unintentional breaches of the code of conduct, you may want to respond to the person and point out this code of conduct (either in public or in private, whatever is most appropriate). If you would prefer not to do that, please report the issue to the conda CoC Committee directly. + +Take care of each other. Alert someone if you notice a dangerous situation, someone in distress, or violations of this code of conduct, even if they seem inconsequential. + +## How to Submit a Report + +The CoC Committee is committed to promptly addressing any reported issues. If you have experienced or witnessed behavior that violates the conda Organization Code of Conduct, please let us know. + +You can report an incident + +* via the **[Incident Reporting Form](https://form.jotform.com/221527028480048)** +* via email: [conduct@conda.org](mailto:conduct@conda.org) +* contact [an individual committee member](#committee-membership) or [CoC event representative](#coc-representatives) to report an incident in confidence. + +Reports submitted via the form or committee email address are sent to the [full conda Code of Conduct Committee](#committee-membership). + +## What to Include in a Report + +Our ability to address any code of conduct breaches in a timely and effective manner is impacted by the amount of information you can provide, so, we ask you to include as much of the following information as you can**: + +- **Your contact info** (so we can get in touch with you if we need to follow up). This will be kept confidential. You can also file a report [anonymously](#anonymous-reporting). +- The **approximate time and location of the incident** (please be as specific as possible). +- **Identifying information** (e.g. name, nickname, screen name, physical description) of the individual whose behavior is being reported. +- **Description of the behavior** (if reporting harassing language, please be specific about the words used), **your account of what happened**, and any available **supporting records** (e.g. email, GitHub issue, screenshots, etc.). +- **Description of the circumstances/context** surrounding the incident. +- Let us know **if the incident is ongoing**, and/or if this is part of an ongoing pattern of behavior. +- Names and contact info, if possible, of **anyone else who witnessed** or was involved in this incident. (Did anyone else observe the incident?) +- **Any other relevant information** you believe we should have. + +## Anonymous Reporting + +The reporting form supports anonymous incident reporting. Anonymous reporting works best when the behavior happened in a public space and was witnessed by many. If an incident is reported anonymously and was not witnessed by others, then the committee may be limited in what actions it can take and what it can report to the larger community. Nevertheless, the CoC Committee is still interested in receiving these reports. They are helpful when determining what we need to address as a community, and when looking for evidence of repeated behavior. + +## Conflicts of Interest + +Committee members are expected to recuse themselves if they have a conflict of interest, and are required to recuse themselves if they are the accused or the target of the reported behavior. In addition, the CoC Committee can [vote](#voting-and-decision-making) to remove a committee member from a case, if the committee feels that the member has a conflict of interest. This [vote](#voting-and-decision-making) requires a simple majority. + +If you are concerned about making a report that will be read by all committee members, you are strongly encouraged to contact [individual committee members](#committee-membership) directly. + +# Enforcement: What Happens After a Report is Filed? + +## Acknowledgment and Responding to Immediate Needs + +CoC Committee members and/or event staff will attempt to ensure your safety and help with any immediate needs. The CoC Committee will make every effort to **acknowledge receipt within 24 hours** (and we'll aim for much more quickly than that). + +## Reviewing the Report + +The CoC Committee will make all efforts to **review the incident within three days** and determine: + +- Whether this is an ongoing situation, or if there is a threat to anyone's physical safety +- What happened +- Whether this event constitutes a code of conduct violation +- Who the bad actor was, if any + +## Contacting the Person Reported + +After the CoC Committee has had time to review and discuss the report, someone will attempt to contact the person who is the subject of the report to inform them of what has been reported about them. We will then ask that person for their account of what happened. + +## Response and Potential Consequences + +Once the CoC Committee has completed our investigation of the report, we will make a decision as to how to respond. The person making a report will not normally be consulted as to the proposed resolution of the issue, except insofar as we need to understand how to help them feel safe. + +Potential consequences for violating the conda Organization code of conduct include: + +- Nothing (if we determine that no violation occurred) +- Private feedback or reprimand from the CoC Committee to the individual(s) involved +- Warning the person to cease their behavior and that any further reports will result in sanctions +- A public announcement that an incident occurred +- Mediation (only if both reporter and reportee agree) +- An imposed vacation (e.g. asking someone to "take a week off" from a mailing list) +- A permanent or temporary ban from some or all the conda Organization spaces (mailing lists, GitHub repos, in-person events, etc.) +- Assistance to the complainant with a report to other bodies, for example, institutional offices or appropriate law enforcement agencies +- Removing a person from the conda Organization membership or other formal affiliation +- Publishing an account of the harassment and calling for the resignation of the alleged harasser from their responsibilities (may be called for if the person is an event leader, or refuses to stand aside from the conflict of interest, or similar) +- Any other response that the CoC Committee deems necessary and appropriate to the situation + +No one espousing views or values contrary to the standards of our code of conduct will be permitted to hold any position representing the conda Organization, including volunteer positions. The CoC Committee has the right and responsibility to remove, edit, or reject comments, commits, code, website edits, issues, and other contributions that are not aligned with this code of conduct. + +We aim to **respond within one week** to the original reporter with either a resolution or an explanation of why the situation is not yet resolved. + +We will contact the person who is the subject of the report to let them know what actions will be taken as a result of the report, if any. + +Our policy is to make sure that everyone aware of the initial incident is also made aware that official action has been taken, while still respecting the privacy of individuals. In addition, we will also usually [notify the community](#confidentiality-and-public-statements-to-the-community) that an incident has been reported, what type of incident it was, and what the response was, again respecting the privacy of individuals. + +## Appealing a Decision + +To appeal a decision of the CoC Committee, contact the [Committee Co-Chairs](#committee-membership), with your appeal. Please include as much detail as possible about why you are appealing the decision. The Co-Chairs will review the appeal, possibly consulting with the full Committee, and then issue a decision. + +# Timeline Summary: + +| Time | Event | Details | +| ---- | ---- | ---- | +| Within 24 Hours | Acknowledge | The CoC Committee will make every effort to **acknowledge receipt of a report within 24 hours**. | +| Within 3 Days | Review | The CoC Committee aims to **review the incident within three days**. | +| Within 1 Week | Resolve | We will **respond within one week** to the original reporter with either a resolution or an explanation of why the situation is not yet resolved. | + +# Voting and Decision Making + +Committee votes and decisions require both a minimum quorum size for the vote to be counted, and then a minimum percentage of cast affirmative votes to pass. + +Except where otherwise noted, votes require a quorum and a simple majority to pass: + +* Minimum Quorum: + * More than 50% of eligible committee members must vote. + * Eligibile members do not include those excluded because of [conflicts of interest](#conflicts-of-interest). +* Affirmative vote threshold: + * More than 50% of the votes cast need to be affirmative to take action. + +# Committee Membership + +You can reach the entire CoC Committee by emailing [conduct@conda.org](mailto:conduct@conda.org). + +| Name | Employer / Funding | Steering Council Member | Current Term Ends | +| ---- | ---- | ---- | --- | +| [Eric Dill](https://github.com/ericdill) | [Anaconda](https://anaconda.com/) | | 2026-07-01 | +| [Dasha Gurova](https://github.com/dashagurova) | [Anaconda](https://anaconda.com/) | | 2026-07-01 | +| [Bianca Henderson](https://github.com/beeankha) | [Anaconda](https://anaconda.com/) | | 2026-07-01 | +| [Katherine Kinnaman](https://github.com/kathatherine) | [Anaconda](https://anadonda.com/) | | 2026-07-01 | +| [Mahe Iram Khan](https://github.com/ForgottenProgramme) | [Anaconda](https://anaconda.com/) | | 2025-07-01 | +| [Ken Odegard](https://github.com/kenodegard) | [Anaconda](https://anaconda.com/) | | 2025-07-01 | +| [Crystal Soja](https://github.com/csoja), Co-Chair | [Anaconda](https://anaconda.com/) | | 2025-07-01 | +| [Jaime Rodríguez-Guerra](https://github.com/jaimergp), Co-Chair | [Quansight](https://quansight.com/) | yes | 2025-07-01 | + +# Terms and New Members + +* Committee members are appointed for two year terms. Committee members can choose to renew their memberships. +* Committee members can resign before their term ends. +* Committee members can also be removed by a [simple majority vote](#voting-and-decision-making) from their fellow committee members. +* New committee members are added by a simple majority vote as well. + +# Eligibility + +Anyone from the community who is interested and able to do CoC Committee work is eligible to be nominated for the committee. New committee members can be nominated by any community member, including nominating themselves. + +## Shared Funding + +Unlike the Steering Council, we are not limiting the number of Committee members who share a common source of funding. However, if a report involves someone who shares funding with CoC Committee members, then the remainder of the committee may vote to exclude some or all Committee members with that same funding, even if that excludes a majority of the CoC Committee. This should be done only if the separately funded Committee members feel that the common funding is interfering with decision making. + +Note: This requires tracking the funding sources of CoC Committee members. + +## Overlap with Steering Council Membership + +Committee members can also be on the conda Organization Steering Council. However, Steering Council members have to make up less than 50% of the Code of Conduct Committee. + +# Updating this Code of Conduct + +The conda Organization's Code of Conduct can be updated by a [simple majority vote](#voting-and-decision-making) of the CoC Committee. + + +# License + +This code of conduct is based on the [NumFOCUS code of conduct template](https://github.com/numfocus/numfocus/blob/8759e21481552f213489e3718979ccecf68e9ead/manual/numfocus-coc.md) as it existed on 2022/03/08 (which is the 2019/11/20 version). Several added sections are based on the [Galaxy Community Code of Conduct](https://galaxyproject.org/community/coc/). + +The NumFOCUS code of conduct template was itself adapted from numerous sources, including the [*Geek Feminism wiki, created by the Ada Initiative and other volunteers, which is under a Creative Commons Zero license*](http://geekfeminism.wikia.com/wiki/Conference_anti-harassment/Policy), the [*Contributor Covenant version 1.2.0*](http://contributor-covenant.org/version/1/2/0/), the [*Bokeh Code of Conduct*](https://github.com/bokeh/bokeh/blob/master/CODE_OF_CONDUCT.md), the [*SciPy Code of Conduct*](https://github.com/jupyter/governance/blob/master/conduct/enforcement.md), the [*Carpentries Code of Conduct*](https://docs.carpentries.org/topic_folders/policies/code-of-conduct.html#enforcement-manual), and the [*NeurIPS Code of Conduct*](https://neurips.cc/public/CodeOfConduct). + +**The conda Organization Code of Conduct is licensed under the [Creative Commons Attribution 3.0 Unported License](https://creativecommons.org/licenses/by/3.0/).** diff --git a/HOW_WE_USE_GITHUB.md b/HOW_WE_USE_GITHUB.md index 16f9fcfe..f627d81a 100644 --- a/HOW_WE_USE_GITHUB.md +++ b/HOW_WE_USE_GITHUB.md @@ -1,3 +1,5 @@ + + [conda-org]: https://github.com/conda [sub-team]: https://github.com/conda-incubator/governance#sub-teams @@ -15,17 +17,18 @@ [infrastructure]: https://github.com/conda/infrastructure [workflow-sync]: https://github.com/conda/infrastructure/blob/main/.github/workflows/sync.yml +[workflow-update]: https://github.com/conda/issue-tracker/blob/main/.github/workflows/update.yml [labels-global]: https://github.com/conda/infrastructure/blob/main/.github/global.yml -[workflow-cla]: /.github/workflows/cla.yml -[workflow-issues]: /.github/workflows/issues.yml -[workflow-labels]: /.github/workflows/labels.yml -[workflow-lock]: /.github/workflows/lock.yml -[workflow-project]: /.github/workflows/project.yml -[workflow-stale]: /.github/workflows/stale.yml -[labels-local]: /.github/labels.yml -[labels-page]: ../../labels +[workflow-cla]: https://github.com/conda/issue-tracker/blob/main/.github/workflows/cla.yml +[workflow-issues]: https://github.com/conda/issue-tracker/blob/main/.github/workflows/issues.yml +[workflow-labels]: https://github.com/conda/issue-tracker/blob/main/.github/workflows/labels.yml +[workflow-lock]: https://github.com/conda/issue-tracker/blob/main/.github/workflows/lock.yml +[workflow-project]: https://github.com/conda/issue-tracker/blob/main/.github/workflows/project.yml +[workflow-stale]: https://github.com/conda/issue-tracker/blob/main/.github/workflows/stale.yml +[labels-local]: https://github.com/conda/issue-tracker/blob/main/.github/labels.yml +[labels-page]: https://github.com/conda/issue-tracker/labels # How We Use GitHub @@ -105,7 +108,7 @@ Sorting engineers are a conda governance [sub-team][sub-team]; they are a group New issues that are opened in any of the repositories in the [conda GitHub organization][conda-org] will show up in the "Sorting" tab of the [Planning project][project-planning]. There are two [GitHub Actions][docs-actions] workflows utilized for this purpose; [`.github/workflows/issues.yml`][workflow-issues] and [`.github/workflows/project.yml`][workflow-project]. -The GitHub Actions in the [`conda/infrastructure`][infrastructure] repository are viewed as canonical; the [`.github/workflows/sync.yml` workflow][workflow-sync] sends out any modifications to other `conda` repositories from there. +The GitHub workflows in the [`conda/infrastructure`][infrastructure] repository are viewed as canonical; the [`.github/workflows/sync.yml` workflow][workflow-sync] pushes any modifications to other repositories from there and individual repositories can pull additional files using the [`.github/workflows/update.yml`][workflow-update] workflow. ### What is done about the issues in the "Sorting" tab? @@ -126,8 +129,8 @@ For more information on the sorting process, see [Issue Sorting Procedures](#iss Items move out of the ["Sorting" tab][project-sorting] once the investigatory phase described in [What is done about the issues in the "Sorting" tab?](#what-is-done-about-the-issues-in-the-sorting-tab) has concluded and the sorting engineer has enough information to make a decision about the appropriate resolution schedule for the issue. The additional tabs in the project board that the issues can be moved to include the following: -- **"Support"** - Any issue in the ["Support" tab of the Planning board][project-support] is a request for support and is not a feature request or a bug report. Add the [`type::support`](https://github.com/conda/infrastructure/labels/type%3A%3Asupport) label to move an issue to this tab. -- **"Backlog"** - The issue has revealed a bug or feature request. We have collected enough details to understand the problem/request and to reproduce it on our own. These issues have been moved into the [Backlog tab of the Planning board][project-backlog] at the end of the sorting rotation during Refinement. Add the [`backlog`](https://github.com/conda/infrastructure/labels/backlog) label to move an issue to this tab. +- **"Support"** - Any issue in the ["Support" tab of the Planning board][project-support] is a request for support and is not a feature request or a bug report. Add the https://github.com/conda/issue-tracker/labels/type%3A%3Asupport label to move an issue to this tab. +- **"Backlog"** - The issue has revealed a bug or feature request. We have collected enough details to understand the problem/request and to reproduce it on our own. These issues have been moved into the [Backlog tab of the Planning board][project-backlog] at the end of the sorting rotation during Refinement. Add the https://github.com/conda/issue-tracker/labels/backlog label to move an issue to this tab. - **"Closed"** - The issue was closed due to being a duplicate, being redirected to a different project, was a user error, a question that has been resolved, etc. ### Where do work issues go after being sorted? @@ -143,12 +146,12 @@ Issues are "backlogged" when they have been sorted but not yet earmarked for an Global automation procedures synced out from the [`conda/infrastructure`][infrastructure] repo include: - [Marking of issues and pull requests as stale][workflow-stale], resulting in: - - issues marked as [`type::support`](https://github.com/conda/infrastructure/labels/type%3A%3Asupport) being labeled stale after 21 days of inactivity and being closed after 7 further days of inactivity (that is, closed after 30 inactive days total) - - all other inactive issues (not labeled as [`type::support`](https://github.com/conda/infrastructure/labels/type%3A%3Asupport) being labeled stale after 365 days of inactivity and being closed after 30 further days of inactivity (that is, closed after an approximate total of 1 year and 1 month of inactivity) + - issues marked as https://github.com/conda/issue-tracker/labels/type%3A%3Asupport being labeled stale after 21 days of inactivity and being closed after 7 further days of inactivity (that is, closed after 30 inactive days total) + - all other inactive issues (not labeled as https://github.com/conda/issue-tracker/labels/type%3A%3Asupport being labeled stale after 365 days of inactivity and being closed after 30 further days of inactivity (that is, closed after an approximate total of 1 year and 1 month of inactivity) - all inactive pull requests being labeled stale after 365 days of inactivity and being closed after 30 further days of inactivity (that is, closed after an approximate total of 1 year and 1 month of inactivity) - [Locking of closed issues and pull requests with no further activity][workflow-lock] after 365 days - [Adding new issues and pull requests to the respective project boards][workflow-project] -- [Indicating an issue is ready for the sorting engineer's attention][workflow-issues] by toggling [`pending::feedback`](https://github.com/conda/infrastructure/labels/pending%3A%3Afeedback) with [`pending::support`](https://github.com/conda/infrastructure/labels/pending%3A%3Asupport) after a contributor leaves a comment +- [Indicating an issue is ready for the sorting engineer's attention][workflow-issues] by toggling https://github.com/conda/issue-tracker/labels/pending%3A%3Afeedback with https://github.com/conda/issue-tracker/labels/pending%3A%3Asupport after a contributor leaves a comment - [Verifying that contributors have signed the CLA][workflow-cla] before allowing pull requests to be merged; if the contributor hasn't signed the CLA previously, merging is be blocked until a manual review can be done - [Syncing out templates, labels, workflows, and documentation][workflow-sync] from [`conda/infrastructure`][infrastructure] to the other repositories @@ -166,9 +169,9 @@ Labeling is a very important means for sorting engineers to keep track of the cu Each label has an associated description that clarifies how the label should be used. Hover on the label to see its description. Label colors are used to distinguish labels by category. -Generally speaking, labels with the same category are considered mutually exclusive, but in some cases labels sharing the same category can occur concurrently, as they indicate qualifiers as opposed to types. For example, we may have the following types, [`type::bug`](https://github.com/conda/infrastructure/labels/type%3A%3Abug), [`type::feature`](https://github.com/conda/infrastructure/labels/type%3A%3Afeature), and [`type::documentation`](https://github.com/conda/infrastructure/labels/type%3A%3Adocumentation), where for any one issue there would be _at most_ **one** of these to be defined (_i.e._ an issue should not be a bug _and_ a feature request at the same time). Alternatively, with issues involving specific operating systems (_i.e._, [`os::linux`](https://github.com/conda/infrastructure/labels/os%3A%3Alinux), [`os::macos`](https://github.com/conda/infrastructure/labels/os%3A%3Amacos), and [`os::windows`](https://github.com/conda/infrastructure/labels/os%3A%3Awindows)), an issue could be labeled with one or more, depending on the system(s) the issue occurs on. +Generally speaking, labels with the same category are considered mutually exclusive, but in some cases labels sharing the same category can occur concurrently, as they indicate qualifiers as opposed to types. For example, we may have the following types, https://github.com/conda/issue-tracker/labels/type%3A%3Abug, https://github.com/conda/issue-tracker/labels/type%3A%3Afeature, and https://github.com/conda/issue-tracker/labels/type%3A%3Adocumentation, where for any one issue there would be _at most_ **one** of these to be defined (_i.e._ an issue should not be a bug _and_ a feature request at the same time). Alternatively, with issues involving specific operating systems (_i.e._, https://github.com/conda/issue-tracker/labels/os%3A%3Alinux, https://github.com/conda/issue-tracker/labels/os%3A%3Amacos, and https://github.com/conda/issue-tracker/labels/os%3A%3Awindows), an issue could be labeled with one or more, depending on the system(s) the issue occurs on. -Please note that there are also automation policies in place that are affected by labeling. For example, if an issue is labeled as [`type::support`](https://github.com/conda/infrastructure/labels/type%3A%3Asupport), that issue will be marked [`stale`](https://github.com/conda/infrastructure/labels/stale) after 21 days of inactivity and auto-closed after seven more days without activity (30 inactive days total), which is earlier than issues without this label. See [What automation procedures are currently in place?](#what-automation-procedures-are-currently-in-place) for more details. +Please note that there are also automation policies in place that are affected by labeling. For example, if an issue is labeled as https://github.com/conda/issue-tracker/labels/type%3A%3Asupport, that issue will be marked https://github.com/conda/issue-tracker/labels/stale after 21 days of inactivity and auto-closed after seven more days without activity (30 inactive days total), which is earlier than issues without this label. See [What automation procedures are currently in place?](#what-automation-procedures-are-currently-in-place) for more details. ### What labels are required for each issue? @@ -178,7 +181,7 @@ The `type` labels are exclusive of each other: each sorted issue should have exa The `source` labels are exclusive of each other: each sorted issue should have exactly one `source` label. These labels give information on the sub-group to which the issue's author belongs (_e.g._, a partner, a frequent contributor, the wider community, etc.). Through these labels, maintainers gain insight into how well we're meeting the needs of various groups. -The `severity` labels are exclusive of each other and, while required for the [`type::bug`](https://github.com/conda/infrastructure/labels/type%3A%bug) label, they can also be applied to other types to indicate demand or need. These labels help us to prioritize our work. Severity is not the only factor for work prioritization, but it is an important consideration. +The `severity` labels are exclusive of each other and, while required for the https://github.com/conda/issue-tracker/labels/type%3A%bug label, they can also be applied to other types to indicate demand or need. These labels help us to prioritize our work. Severity is not the only factor for work prioritization, but it is an important consideration. Please review the descriptions of the `type`, `source`, and `severity` labels on the [labels page][labels-page] prior to use. @@ -213,8 +216,10 @@ Below are some boilerplate responses for the most commonly-seen issues to be sor This is a duplicate of [link to primary issue]; please feel free to continue the discussion there. -> [!WARNING] -> Apply the https://github.com/conda/infrastructure/labels/duplicate label to the issue being closed and https://github.com/conda/infrastructure/labels/duplicate%3A%3Aprimary to the original issue. + + +> **Warning** +> Apply the https://github.com/conda/issue-tracker/labels/duplicate label to the issue being closed and https://github.com/conda/issue-tracker/labels/duplicate%3A%3Aprimary to the original issue. @@ -231,8 +236,10 @@ support: - [Anaconda issue tracker on GitHub](https://github.com/ContinuumIO/anaconda-issues/issues) -> [!WARNING] -> Apply the https://github.com/conda/infrastructure/labels/off-topic label to these issues before closing them out. + + +> **Warning** +> Apply the https://github.com/conda/issue-tracker/labels/off-topic label to these issues before closing them out. @@ -248,11 +255,14 @@ Community support can be found elsewhere, though, and we encourage you to explor - [Stack Overflow posts tagged "conda"](https://stackoverflow.com/questions/tagged/conda) -> [!WARNING] -> Apply the https://github.com/conda/infrastructure/labels/off-topic label to these issues before closing them out. + + +> **Warning** +> Apply the https://github.com/conda/issue-tracker/labels/off-topic label to these issues before closing them out. + In order to not have to manually type or copy/paste the above repeatedly, note that it's possible to add text for the most commonly-used responses via [GitHub's "Add Saved Reply" option][docs-saved-reply]. ## Commit Signing From 26202f7f4a2055cb6c6d9d1c4ce15fd87e0b9689 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 15:38:56 -0500 Subject: [PATCH 09/38] [pre-commit.ci] pre-commit autoupdate (#142) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/psf/black: 24.4.2 → 24.8.0](https://github.com/psf/black/compare/24.4.2...24.8.0) - [github.com/PyCQA/flake8: 7.1.0 → 7.1.1](https://github.com/PyCQA/flake8/compare/7.1.0...7.1.1) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index cfc0c4d3..58a34bd9 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -13,7 +13,7 @@ repos: # catch git merge/rebase problems - id: check-merge-conflict - repo: https://github.com/psf/black - rev: 24.4.2 + rev: 24.8.0 hooks: - id: black types_or: [python] @@ -24,7 +24,7 @@ repos: additional_dependencies: [black] types_or: [python] - repo: https://github.com/PyCQA/flake8 - rev: 7.1.0 + rev: 7.1.1 hooks: - id: flake8 types_or: [python] From 5cac9fc776f4dfd11077cb025ed3d05daea59cdf Mon Sep 17 00:00:00 2001 From: conda-bot <18747875+conda-bot@users.noreply.github.com> Date: Mon, 19 Aug 2024 10:39:06 -0500 Subject: [PATCH 10/38] =?UTF-8?q?=F0=9F=A4=96=20Update=20infrastructure=20?= =?UTF-8?q?file(s)=20(#145)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/cla.yml | 2 +- .github/workflows/lock.yml | 3 +-- .github/workflows/stale.yml | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cla.yml b/.github/workflows/cla.yml index 66df3b0f..ddc05163 100644 --- a/.github/workflows/cla.yml +++ b/.github/workflows/cla.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check CLA - uses: conda/actions/check-cla@976289d0cfd85139701b26ddd133abdd025a7b5f # v24.5.0 + uses: conda/actions/check-cla@15f883f14f4232f83658e3609c3316d58905138f # v24.8.0 with: # [required] # A token with ability to comment, label, and modify the commit status diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml index 0b63dec3..65f8f40b 100644 --- a/.github/workflows/lock.yml +++ b/.github/workflows/lock.yml @@ -20,7 +20,7 @@ jobs: - uses: dessant/lock-threads@1bf7ec25051fe7c00bdd17e6a7cf3d7bfb7dc771 # v5.0.1 with: # Number of days of inactivity before a closed issue is locked - issue-inactive-days: 365 + issue-inactive-days: 180 # Do not lock issues created before a given timestamp, value must follow ISO 8601 exclude-issue-created-before: '' # Do not lock issues with these labels, value must be a comma separated list of labels or '' @@ -29,7 +29,6 @@ jobs: add-issue-labels: locked # Reason for locking an issue, value must be one of resolved, off-topic, too heated, spam or '' issue-lock-reason: resolved - # Number of days of inactivity before a closed pull request is locked pr-inactive-days: 365 # Do not lock pull requests created before a given timestamp, value must follow ISO 8601 diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index bde3340f..9d23fbe6 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -33,7 +33,7 @@ jobs: days-before-issue-stale: 90 days-before-issue-close: 21 steps: - - uses: conda/actions/read-yaml@976289d0cfd85139701b26ddd133abdd025a7b5f # v24.5.0 + - uses: conda/actions/read-yaml@15f883f14f4232f83658e3609c3316d58905138f # v24.8.0 id: read_yaml with: path: https://raw.githubusercontent.com/conda/infra/main/.github/messages.yml From 0467eb8f5ed10f41bfd2c1d11a08ce9283c2c903 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 3 Sep 2024 09:42:21 -0500 Subject: [PATCH 11/38] [pre-commit.ci] pre-commit autoupdate (#146) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/PyCQA/pylint: v3.2.6 → v3.2.7](https://github.com/PyCQA/pylint/compare/v3.2.6...v3.2.7) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 58a34bd9..fa78499c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -29,7 +29,7 @@ repos: - id: flake8 types_or: [python] - repo: https://github.com/PyCQA/pylint - rev: v3.2.6 + rev: v3.2.7 hooks: - id: pylint args: [--exit-zero] From 382a41babd6ea016261291fe90f3b172cd2d660e Mon Sep 17 00:00:00 2001 From: conda-bot <18747875+conda-bot@users.noreply.github.com> Date: Mon, 16 Sep 2024 14:21:56 -0500 Subject: [PATCH 12/38] =?UTF-8?q?=F0=9F=A4=96=20Update=20infrastructure=20?= =?UTF-8?q?file(s)=20(#147)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/update.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index b11957a3..0164674b 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -80,7 +80,7 @@ jobs: - if: github.event.comment.body != '@conda-bot render' id: create # no-op if no commits were made - uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c # v6.1.0 + uses: peter-evans/create-pull-request@8867c4aba1b742c39f8d0ba35429c2dfa4b6cb20 # v7.0.1 with: push-to-fork: ${{ env.FORK }} token: ${{ secrets.SYNC_TOKEN }} From 587f9750f4f16f6903cdebcfb568c85d65daf593 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 12:02:00 -0500 Subject: [PATCH 13/38] [pre-commit.ci] pre-commit autoupdate (#148) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/PyCQA/pylint: v3.2.7 → v3.3.1](https://github.com/PyCQA/pylint/compare/v3.2.7...v3.3.1) - [github.com/PyCQA/bandit: 1.7.9 → 1.7.10](https://github.com/PyCQA/bandit/compare/1.7.9...1.7.10) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index fa78499c..49b9ec59 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -29,13 +29,13 @@ repos: - id: flake8 types_or: [python] - repo: https://github.com/PyCQA/pylint - rev: v3.2.7 + rev: v3.3.1 hooks: - id: pylint args: [--exit-zero] types_or: [python] - repo: https://github.com/PyCQA/bandit - rev: 1.7.9 + rev: 1.7.10 hooks: - id: bandit args: [--exit-zero] From ce85528ed0062dba75bc5b14fe6fafebab7e990a Mon Sep 17 00:00:00 2001 From: conda-bot <18747875+conda-bot@users.noreply.github.com> Date: Tue, 1 Oct 2024 12:05:13 -0500 Subject: [PATCH 14/38] =?UTF-8?q?=F0=9F=A4=96=20Update=20infrastructure=20?= =?UTF-8?q?file(s)=20(#149)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/update.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index 0164674b..69a65aee 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -80,7 +80,7 @@ jobs: - if: github.event.comment.body != '@conda-bot render' id: create # no-op if no commits were made - uses: peter-evans/create-pull-request@8867c4aba1b742c39f8d0ba35429c2dfa4b6cb20 # v7.0.1 + uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f # v7.0.5 with: push-to-fork: ${{ env.FORK }} token: ${{ secrets.SYNC_TOKEN }} From 8319a57e102592c64ad80906f956311587b971ce Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 09:13:46 -0500 Subject: [PATCH 15/38] [pre-commit.ci] pre-commit autoupdate (#150) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/pre-commit/pre-commit-hooks: v4.6.0 → v5.0.0](https://github.com/pre-commit/pre-commit-hooks/compare/v4.6.0...v5.0.0) - [github.com/psf/black: 24.8.0 → 24.10.0](https://github.com/psf/black/compare/24.8.0...24.10.0) - [github.com/asottile/blacken-docs: 1.18.0 → 1.19.0](https://github.com/asottile/blacken-docs/compare/1.18.0...1.19.0) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 49b9ec59..b0e8ae5f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,6 @@ repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.6.0 + rev: v5.0.0 hooks: # standard end of line/end of file cleanup - id: mixed-line-ending @@ -13,12 +13,12 @@ repos: # catch git merge/rebase problems - id: check-merge-conflict - repo: https://github.com/psf/black - rev: 24.8.0 + rev: 24.10.0 hooks: - id: black types_or: [python] - repo: https://github.com/asottile/blacken-docs - rev: 1.18.0 + rev: 1.19.0 hooks: - id: blacken-docs additional_dependencies: [black] From 842f8a5773e4fa88888fded9398678b13197a236 Mon Sep 17 00:00:00 2001 From: conda-bot <18747875+conda-bot@users.noreply.github.com> Date: Tue, 15 Oct 2024 09:44:11 -0500 Subject: [PATCH 16/38] =?UTF-8?q?=F0=9F=A4=96=20Update=20infrastructure=20?= =?UTF-8?q?file(s)=20(#151)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/labels.yml | 2 +- .github/workflows/update.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index 6fd09350..543a4dca 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -23,7 +23,7 @@ jobs: GLOBAL: https://raw.githubusercontent.com/conda/infra/main/.github/global.yml LOCAL: .github/labels.yml steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - id: has_local uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0 diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index 69a65aee..91224cfe 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -44,7 +44,7 @@ jobs: echo REPOSITORY=$(curl --silent ${{ github.event.issue.pull_request.url }} | jq --raw-output '.head.repo.full_name') >> $GITHUB_ENV echo REF=$(curl --silent ${{ github.event.issue.pull_request.url }} | jq --raw-output '.head.ref') >> $GITHUB_ENV - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 with: repository: ${{ env.REPOSITORY || github.repository }} ref: ${{ env.REF || '' }} From c692555d01f6aab1b9986a545a980387f9e8e52f Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 29 Oct 2024 15:05:18 -0500 Subject: [PATCH 17/38] [pre-commit.ci] pre-commit autoupdate (#152) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/asottile/blacken-docs: 1.19.0 → 1.19.1](https://github.com/asottile/blacken-docs/compare/1.19.0...1.19.1) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b0e8ae5f..c08dba20 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -18,7 +18,7 @@ repos: - id: black types_or: [python] - repo: https://github.com/asottile/blacken-docs - rev: 1.19.0 + rev: 1.19.1 hooks: - id: blacken-docs additional_dependencies: [black] From 99c3dd71913799a57eef29d3f48d5397db1c9cb8 Mon Sep 17 00:00:00 2001 From: conda-bot <18747875+conda-bot@users.noreply.github.com> Date: Tue, 19 Nov 2024 23:14:55 +0100 Subject: [PATCH 18/38] =?UTF-8?q?=F0=9F=A4=96=20Update=20infrastructure=20?= =?UTF-8?q?file(s)=20(#153)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/labels.yml | 2 +- .github/workflows/update.yml | 2 +- HOW_WE_USE_GITHUB.md | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index 543a4dca..d808d92a 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -23,7 +23,7 @@ jobs: GLOBAL: https://raw.githubusercontent.com/conda/infra/main/.github/global.yml LOCAL: .github/labels.yml steps: - - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - id: has_local uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0 diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index 91224cfe..df69f36a 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -44,7 +44,7 @@ jobs: echo REPOSITORY=$(curl --silent ${{ github.event.issue.pull_request.url }} | jq --raw-output '.head.repo.full_name') >> $GITHUB_ENV echo REF=$(curl --silent ${{ github.event.issue.pull_request.url }} | jq --raw-output '.head.ref') >> $GITHUB_ENV - - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: repository: ${{ env.REPOSITORY || github.repository }} ref: ${{ env.REF || '' }} diff --git a/HOW_WE_USE_GITHUB.md b/HOW_WE_USE_GITHUB.md index f627d81a..b988a7dd 100644 --- a/HOW_WE_USE_GITHUB.md +++ b/HOW_WE_USE_GITHUB.md @@ -267,8 +267,7 @@ In order to not have to manually type or copy/paste the above repeatedly, note t ## Commit Signing -For all conda maintainers, we require commit signing and strongly recommend it for all others wishing to contribute to conda -related projects. More information about how to set this up within GitHub can be found here: +For all maintainers, we require commit signing and strongly recommend it for all others wishing to contribute. More information about how to set this up within GitHub can be found here: - [GitHub's signing commits docs][docs-commit-signing] From 62ea892ed7626c932a8ea1ab70c51a7e023849fb Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 17 Dec 2024 10:44:53 -0600 Subject: [PATCH 19/38] [pre-commit.ci] pre-commit autoupdate (#155) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/PyCQA/pylint: v3.3.1 → v3.3.2](https://github.com/PyCQA/pylint/compare/v3.3.1...v3.3.2) - [github.com/PyCQA/bandit: 1.7.10 → 1.8.0](https://github.com/PyCQA/bandit/compare/1.7.10...1.8.0) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c08dba20..b6ee3df7 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -29,13 +29,13 @@ repos: - id: flake8 types_or: [python] - repo: https://github.com/PyCQA/pylint - rev: v3.3.1 + rev: v3.3.2 hooks: - id: pylint args: [--exit-zero] types_or: [python] - repo: https://github.com/PyCQA/bandit - rev: 1.7.10 + rev: 1.8.0 hooks: - id: bandit args: [--exit-zero] From a9e04b1aa10a3af88f155fbeae3bb4ee0c4ce807 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 6 Jan 2025 14:57:40 -0600 Subject: [PATCH 20/38] [pre-commit.ci] pre-commit autoupdate (#156) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/PyCQA/pylint: v3.3.2 → v3.3.3](https://github.com/PyCQA/pylint/compare/v3.3.2...v3.3.3) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b6ee3df7..f07bf84a 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -29,7 +29,7 @@ repos: - id: flake8 types_or: [python] - repo: https://github.com/PyCQA/pylint - rev: v3.3.2 + rev: v3.3.3 hooks: - id: pylint args: [--exit-zero] From 7e30a0df6f055bece3837cd31a186c1c21b75166 Mon Sep 17 00:00:00 2001 From: conda-bot <18747875+conda-bot@users.noreply.github.com> Date: Mon, 6 Jan 2025 18:08:17 -0600 Subject: [PATCH 21/38] =?UTF-8?q?=F0=9F=A4=96=20Update=20infrastructure=20?= =?UTF-8?q?file(s)=20(#154)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/cla.yml | 2 +- .github/workflows/stale.yml | 2 +- .github/workflows/update.yml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cla.yml b/.github/workflows/cla.yml index ddc05163..04b3e1c3 100644 --- a/.github/workflows/cla.yml +++ b/.github/workflows/cla.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check CLA - uses: conda/actions/check-cla@15f883f14f4232f83658e3609c3316d58905138f # v24.8.0 + uses: conda/actions/check-cla@6e72e0db87e72f0020e493aeb02f864363bd9258 # v24.11.1 with: # [required] # A token with ability to comment, label, and modify the commit status diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 9d23fbe6..cf82ffe2 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -33,7 +33,7 @@ jobs: days-before-issue-stale: 90 days-before-issue-close: 21 steps: - - uses: conda/actions/read-yaml@15f883f14f4232f83658e3609c3316d58905138f # v24.8.0 + - uses: conda/actions/read-yaml@6e72e0db87e72f0020e493aeb02f864363bd9258 # v24.11.1 id: read_yaml with: path: https://raw.githubusercontent.com/conda/infra/main/.github/messages.yml diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index df69f36a..90ee32b6 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -55,11 +55,11 @@ jobs: git config --global user.name 'Conda Bot' git config --global user.email '18747875+conda-bot@users.noreply.github.com' - - uses: conda/actions/combine-durations@15f883f14f4232f83658e3609c3316d58905138f # v24.8.0 + - uses: conda/actions/combine-durations@6e72e0db87e72f0020e493aeb02f864363bd9258 # v24.11.1 id: durations continue-on-error: true - - uses: conda/actions/template-files@15f883f14f4232f83658e3609c3316d58905138f # v24.8.0 + - uses: conda/actions/template-files@6e72e0db87e72f0020e493aeb02f864363bd9258 # v24.11.1 id: templates continue-on-error: true From 94ef2b0d27a71b16f11cd2e3fe1a84a55c36fd7f Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 21 Jan 2025 17:35:42 -0600 Subject: [PATCH 22/38] [pre-commit.ci] pre-commit autoupdate (#158) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/PyCQA/bandit: 1.8.0 → 1.8.2](https://github.com/PyCQA/bandit/compare/1.8.0...1.8.2) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index f07bf84a..c1b485ea 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -35,7 +35,7 @@ repos: args: [--exit-zero] types_or: [python] - repo: https://github.com/PyCQA/bandit - rev: 1.8.0 + rev: 1.8.2 hooks: - id: bandit args: [--exit-zero] From b534d0c5140e086d3628542bff984894bb13cc0e Mon Sep 17 00:00:00 2001 From: conda-bot <18747875+conda-bot@users.noreply.github.com> Date: Tue, 21 Jan 2025 18:01:25 -0600 Subject: [PATCH 23/38] =?UTF-8?q?=F0=9F=A4=96=20Update=20infrastructure=20?= =?UTF-8?q?file(s)=20(#157)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/update.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index 90ee32b6..05a359fe 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -80,7 +80,7 @@ jobs: - if: github.event.comment.body != '@conda-bot render' id: create # no-op if no commits were made - uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f # v7.0.5 + uses: peter-evans/create-pull-request@67ccf781d68cd99b580ae25a5c18a1cc84ffff1f # v7.0.6 with: push-to-fork: ${{ env.FORK }} token: ${{ secrets.SYNC_TOKEN }} From c18828e2d682cd7a9ef0c2ae4e848b19ebfc67d0 Mon Sep 17 00:00:00 2001 From: conda-bot <18747875+conda-bot@users.noreply.github.com> Date: Mon, 3 Feb 2025 08:56:52 -0600 Subject: [PATCH 24/38] =?UTF-8?q?=F0=9F=A4=96=20Update=20infrastructure=20?= =?UTF-8?q?file(s)=20(#159)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/cla.yml | 2 +- .github/workflows/stale.yml | 4 ++-- .github/workflows/update.yml | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/cla.yml b/.github/workflows/cla.yml index 04b3e1c3..666f69a7 100644 --- a/.github/workflows/cla.yml +++ b/.github/workflows/cla.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check CLA - uses: conda/actions/check-cla@6e72e0db87e72f0020e493aeb02f864363bd9258 # v24.11.1 + uses: conda/actions/check-cla@7873f9d7c90877290866eb893b8f6eff2e88429a # v25.1.2 with: # [required] # A token with ability to comment, label, and modify the commit status diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index cf82ffe2..6deaa054 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -33,12 +33,12 @@ jobs: days-before-issue-stale: 90 days-before-issue-close: 21 steps: - - uses: conda/actions/read-yaml@6e72e0db87e72f0020e493aeb02f864363bd9258 # v24.11.1 + - uses: conda/actions/read-yaml@7873f9d7c90877290866eb893b8f6eff2e88429a # v25.1.2 id: read_yaml with: path: https://raw.githubusercontent.com/conda/infra/main/.github/messages.yml - - uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e # v9.0.0 + - uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9.1.0 id: stale with: # Only issues with these labels are checked whether they are stale diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index 05a359fe..b3742b78 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -55,11 +55,11 @@ jobs: git config --global user.name 'Conda Bot' git config --global user.email '18747875+conda-bot@users.noreply.github.com' - - uses: conda/actions/combine-durations@6e72e0db87e72f0020e493aeb02f864363bd9258 # v24.11.1 + - uses: conda/actions/combine-durations@7873f9d7c90877290866eb893b8f6eff2e88429a # v25.1.2 id: durations continue-on-error: true - - uses: conda/actions/template-files@6e72e0db87e72f0020e493aeb02f864363bd9258 # v24.11.1 + - uses: conda/actions/template-files@7873f9d7c90877290866eb893b8f6eff2e88429a # v25.1.2 id: templates continue-on-error: true From 53e6c88399a946f196a9a3bca2b1f6d175c46d0f Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 3 Feb 2025 11:14:34 -0600 Subject: [PATCH 25/38] [pre-commit.ci] pre-commit autoupdate (#160) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/psf/black: 24.10.0 → 25.1.0](https://github.com/psf/black/compare/24.10.0...25.1.0) - [github.com/PyCQA/pylint: v3.3.3 → v3.3.4](https://github.com/PyCQA/pylint/compare/v3.3.3...v3.3.4) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c1b485ea..f39f4e2f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -13,7 +13,7 @@ repos: # catch git merge/rebase problems - id: check-merge-conflict - repo: https://github.com/psf/black - rev: 24.10.0 + rev: 25.1.0 hooks: - id: black types_or: [python] @@ -29,7 +29,7 @@ repos: - id: flake8 types_or: [python] - repo: https://github.com/PyCQA/pylint - rev: v3.3.3 + rev: v3.3.4 hooks: - id: pylint args: [--exit-zero] From c8660b0328de6a28080084c3eb7c1e21a4e4fc84 Mon Sep 17 00:00:00 2001 From: conda-bot <18747875+conda-bot@users.noreply.github.com> Date: Wed, 12 Mar 2025 18:05:48 -0500 Subject: [PATCH 26/38] =?UTF-8?q?=F0=9F=A4=96=20updated=20file(s)=20(#163)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/update.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index b3742b78..6cf8ed0b 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -55,11 +55,11 @@ jobs: git config --global user.name 'Conda Bot' git config --global user.email '18747875+conda-bot@users.noreply.github.com' - - uses: conda/actions/combine-durations@7873f9d7c90877290866eb893b8f6eff2e88429a # v25.1.2 + - uses: conda/actions/combine-durations@c1c8ebf3059ee1645f9395771671262a7ea8da63 # v25.3.0 id: durations continue-on-error: true - - uses: conda/actions/template-files@7873f9d7c90877290866eb893b8f6eff2e88429a # v25.1.2 + - uses: conda/actions/template-files@c1c8ebf3059ee1645f9395771671262a7ea8da63 # v25.3.0 id: templates continue-on-error: true @@ -80,7 +80,7 @@ jobs: - if: github.event.comment.body != '@conda-bot render' id: create # no-op if no commits were made - uses: peter-evans/create-pull-request@67ccf781d68cd99b580ae25a5c18a1cc84ffff1f # v7.0.6 + uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8 with: push-to-fork: ${{ env.FORK }} token: ${{ secrets.SYNC_TOKEN }} From 47cba267e35ba7f1cfb0938c44aa621396ab3ab8 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 12 Mar 2025 18:07:42 -0500 Subject: [PATCH 27/38] [pre-commit.ci] pre-commit autoupdate (#161) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/PyCQA/flake8: 7.1.1 → 7.1.2](https://github.com/PyCQA/flake8/compare/7.1.1...7.1.2) - [github.com/PyCQA/pylint: v3.3.4 → v3.3.5](https://github.com/PyCQA/pylint/compare/v3.3.4...v3.3.5) - [github.com/PyCQA/bandit: 1.8.2 → 1.8.3](https://github.com/PyCQA/bandit/compare/1.8.2...1.8.3) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index f39f4e2f..5eb4e001 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -24,18 +24,18 @@ repos: additional_dependencies: [black] types_or: [python] - repo: https://github.com/PyCQA/flake8 - rev: 7.1.1 + rev: 7.1.2 hooks: - id: flake8 types_or: [python] - repo: https://github.com/PyCQA/pylint - rev: v3.3.4 + rev: v3.3.5 hooks: - id: pylint args: [--exit-zero] types_or: [python] - repo: https://github.com/PyCQA/bandit - rev: 1.8.2 + rev: 1.8.3 hooks: - id: bandit args: [--exit-zero] From 58c6ba34b01ac45855c239d02ecce4a05c880b3e Mon Sep 17 00:00:00 2001 From: conda-bot <18747875+conda-bot@users.noreply.github.com> Date: Mon, 17 Mar 2025 10:24:28 -0500 Subject: [PATCH 28/38] =?UTF-8?q?=F0=9F=A4=96=20updated=20file(s)=20(#164)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/cla.yml | 2 +- .github/workflows/stale.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cla.yml b/.github/workflows/cla.yml index 666f69a7..8d044bf3 100644 --- a/.github/workflows/cla.yml +++ b/.github/workflows/cla.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check CLA - uses: conda/actions/check-cla@7873f9d7c90877290866eb893b8f6eff2e88429a # v25.1.2 + uses: conda/actions/check-cla@c1c8ebf3059ee1645f9395771671262a7ea8da63 # v25.3.0 with: # [required] # A token with ability to comment, label, and modify the commit status diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 6deaa054..c51a857f 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -33,7 +33,7 @@ jobs: days-before-issue-stale: 90 days-before-issue-close: 21 steps: - - uses: conda/actions/read-yaml@7873f9d7c90877290866eb893b8f6eff2e88429a # v25.1.2 + - uses: conda/actions/read-yaml@c1c8ebf3059ee1645f9395771671262a7ea8da63 # v25.3.0 id: read_yaml with: path: https://raw.githubusercontent.com/conda/infra/main/.github/messages.yml From 0fe3d19c0dd7fb2120d2d72ed0e7e2e25819041a Mon Sep 17 00:00:00 2001 From: conda-bot <18747875+conda-bot@users.noreply.github.com> Date: Mon, 24 Mar 2025 10:40:16 -0500 Subject: [PATCH 29/38] =?UTF-8?q?=F0=9F=A4=96=20updated=20file(s)=20(#165)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/cla.yml | 2 +- .github/workflows/stale.yml | 2 +- .github/workflows/update.yml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cla.yml b/.github/workflows/cla.yml index 8d044bf3..73dcd4bc 100644 --- a/.github/workflows/cla.yml +++ b/.github/workflows/cla.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check CLA - uses: conda/actions/check-cla@c1c8ebf3059ee1645f9395771671262a7ea8da63 # v25.3.0 + uses: conda/actions/check-cla@eb545bb8ab48d499b31c057a6df3cf46753fdbcb # v25.3.1 with: # [required] # A token with ability to comment, label, and modify the commit status diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index c51a857f..fe6a008f 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -33,7 +33,7 @@ jobs: days-before-issue-stale: 90 days-before-issue-close: 21 steps: - - uses: conda/actions/read-yaml@c1c8ebf3059ee1645f9395771671262a7ea8da63 # v25.3.0 + - uses: conda/actions/read-yaml@eb545bb8ab48d499b31c057a6df3cf46753fdbcb # v25.3.1 id: read_yaml with: path: https://raw.githubusercontent.com/conda/infra/main/.github/messages.yml diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index 6cf8ed0b..5be9de97 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -55,11 +55,11 @@ jobs: git config --global user.name 'Conda Bot' git config --global user.email '18747875+conda-bot@users.noreply.github.com' - - uses: conda/actions/combine-durations@c1c8ebf3059ee1645f9395771671262a7ea8da63 # v25.3.0 + - uses: conda/actions/combine-durations@eb545bb8ab48d499b31c057a6df3cf46753fdbcb # v25.3.1 id: durations continue-on-error: true - - uses: conda/actions/template-files@c1c8ebf3059ee1645f9395771671262a7ea8da63 # v25.3.0 + - uses: conda/actions/template-files@eb545bb8ab48d499b31c057a6df3cf46753fdbcb # v25.3.1 id: templates continue-on-error: true From c30131ed2b5bb7e12554a0281958ea33df836827 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 24 Mar 2025 14:27:31 -0500 Subject: [PATCH 30/38] [pre-commit.ci] pre-commit autoupdate (#166) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/PyCQA/pylint: v3.3.5 → v3.3.6](https://github.com/PyCQA/pylint/compare/v3.3.5...v3.3.6) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 5eb4e001..83730cf7 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -29,7 +29,7 @@ repos: - id: flake8 types_or: [python] - repo: https://github.com/PyCQA/pylint - rev: v3.3.5 + rev: v3.3.6 hooks: - id: pylint args: [--exit-zero] From 94860737b80db057d298b572e89664c351ee4c6a Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 26 Aug 2025 09:38:01 -0500 Subject: [PATCH 31/38] [pre-commit.ci] pre-commit autoupdate (#167) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/pre-commit/pre-commit-hooks: v5.0.0 → v6.0.0](https://github.com/pre-commit/pre-commit-hooks/compare/v5.0.0...v6.0.0) - [github.com/PyCQA/flake8: 7.1.2 → 7.3.0](https://github.com/PyCQA/flake8/compare/7.1.2...7.3.0) - [github.com/PyCQA/pylint: v3.3.6 → v3.3.8](https://github.com/PyCQA/pylint/compare/v3.3.6...v3.3.8) - [github.com/PyCQA/bandit: 1.8.3 → 1.8.6](https://github.com/PyCQA/bandit/compare/1.8.3...1.8.6) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 83730cf7..0b5ce6d2 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,6 @@ repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v5.0.0 + rev: v6.0.0 hooks: # standard end of line/end of file cleanup - id: mixed-line-ending @@ -24,18 +24,18 @@ repos: additional_dependencies: [black] types_or: [python] - repo: https://github.com/PyCQA/flake8 - rev: 7.1.2 + rev: 7.3.0 hooks: - id: flake8 types_or: [python] - repo: https://github.com/PyCQA/pylint - rev: v3.3.6 + rev: v3.3.8 hooks: - id: pylint args: [--exit-zero] types_or: [python] - repo: https://github.com/PyCQA/bandit - rev: 1.8.3 + rev: 1.8.6 hooks: - id: bandit args: [--exit-zero] From c662c2b55352bd21150455119fe13421ba687a92 Mon Sep 17 00:00:00 2001 From: conda-bot <18747875+conda-bot@users.noreply.github.com> Date: Tue, 26 Aug 2025 09:47:21 -0500 Subject: [PATCH 32/38] =?UTF-8?q?=F0=9F=A4=96=20updated=20file(s)=20(#168)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/labels.yml | 2 +- .github/workflows/update.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index d808d92a..3fd3be3a 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -23,7 +23,7 @@ jobs: GLOBAL: https://raw.githubusercontent.com/conda/infra/main/.github/global.yml LOCAL: .github/labels.yml steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - id: has_local uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0 diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index 5be9de97..7d4f4fda 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -44,7 +44,7 @@ jobs: echo REPOSITORY=$(curl --silent ${{ github.event.issue.pull_request.url }} | jq --raw-output '.head.repo.full_name') >> $GITHUB_ENV echo REF=$(curl --silent ${{ github.event.issue.pull_request.url }} | jq --raw-output '.head.ref') >> $GITHUB_ENV - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: repository: ${{ env.REPOSITORY || github.repository }} ref: ${{ env.REF || '' }} diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index dfcca8ea..d983bc7f 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -261,7 +261,7 @@ You can reach the entire CoC Committee by emailing [conduct@conda.org](mailto:co | ---- | ---- | ---- | --- | | [Eric Dill](https://github.com/ericdill) | [Anaconda](https://anaconda.com/) | | 2026-07-01 | | [Dasha Gurova](https://github.com/dashagurova) | [Anaconda](https://anaconda.com/) | | 2026-07-01 | -| [Bianca Henderson](https://github.com/beeankha) | [Anaconda](https://anaconda.com/) | | 2026-07-01 | +| [Bianca Henderson](https://github.com/beeankha) | [Red Hat](https://redhat.com/) | | 2026-07-01 | | [Katherine Kinnaman](https://github.com/kathatherine) | [Anaconda](https://anadonda.com/) | | 2026-07-01 | | [Mahe Iram Khan](https://github.com/ForgottenProgramme) | [Anaconda](https://anaconda.com/) | | 2025-07-01 | | [Ken Odegard](https://github.com/kenodegard) | [Anaconda](https://anaconda.com/) | | 2025-07-01 | From 191b6b72d6c88a12260c439db99f1a80c594366e Mon Sep 17 00:00:00 2001 From: conda-bot <18747875+conda-bot@users.noreply.github.com> Date: Tue, 17 Feb 2026 08:58:48 -0600 Subject: [PATCH 33/38] =?UTF-8?q?=F0=9F=A4=96=20updated=20file(s)=20(#171)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/cla.yml | 4 +- .github/workflows/issues.yml | 2 +- .github/workflows/labels.yml | 4 +- .github/workflows/lock.yml | 4 +- .github/workflows/project.yml | 2 +- .github/workflows/stale.yml | 6 +-- .github/workflows/update.yml | 14 +++--- HOW_WE_USE_GITHUB.md | 83 ++++++++++++++++++++++++++++++++--- 8 files changed, 96 insertions(+), 23 deletions(-) diff --git a/.github/workflows/cla.yml b/.github/workflows/cla.yml index 73dcd4bc..42d24ec3 100644 --- a/.github/workflows/cla.yml +++ b/.github/workflows/cla.yml @@ -15,10 +15,10 @@ jobs: && github.event.comment.body == '@conda-bot check' || github.event_name == 'pull_request_target' ) - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - name: Check CLA - uses: conda/actions/check-cla@eb545bb8ab48d499b31c057a6df3cf46753fdbcb # v25.3.1 + uses: conda/actions/check-cla@7f6830b1428a9bd47f0b068892c77eae95207037 # v26.1.0 with: # [required] # A token with ability to comment, label, and modify the commit status diff --git a/.github/workflows/issues.yml b/.github/workflows/issues.yml index 634bf13e..573ef0f3 100644 --- a/.github/workflows/issues.yml +++ b/.github/workflows/issues.yml @@ -20,7 +20,7 @@ jobs: !github.event.repository.fork && !github.event.issue.pull_request && contains(github.event.issue.labels.*.name, 'pending::feedback') - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: # remove [pending::feedback] - uses: actions-ecosystem/action-remove-labels@2ce5d41b4b6aa8503e285553f75ed56e0a40bae0 # v1.3.0 diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index 3fd3be3a..7ba0ec7d 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -18,12 +18,12 @@ on: jobs: sync: if: '!github.event.repository.fork' - runs-on: ubuntu-latest + runs-on: ubuntu-slim env: GLOBAL: https://raw.githubusercontent.com/conda/infra/main/.github/global.yml LOCAL: .github/labels.yml steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - id: has_local uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0 diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml index 65f8f40b..7e73297b 100644 --- a/.github/workflows/lock.yml +++ b/.github/workflows/lock.yml @@ -15,9 +15,9 @@ permissions: jobs: lock: if: '!github.event.repository.fork' - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - - uses: dessant/lock-threads@1bf7ec25051fe7c00bdd17e6a7cf3d7bfb7dc771 # v5.0.1 + - uses: dessant/lock-threads@7266a7ce5c1df01b1c6db85bf8cd86c737dadbe7 # v6.0.0 with: # Number of days of inactivity before a closed issue is locked issue-inactive-days: 180 diff --git a/.github/workflows/project.yml b/.github/workflows/project.yml index 4eda798e..7562637a 100644 --- a/.github/workflows/project.yml +++ b/.github/workflows/project.yml @@ -11,7 +11,7 @@ on: jobs: add_to_project: if: '!github.event.repository.fork' - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - uses: actions/add-to-project@244f685bbc3b7adfa8466e08b698b5577571133e # v1.0.2 with: diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index fe6a008f..fbdb1a9c 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -21,7 +21,7 @@ permissions: jobs: stale: if: '!github.event.repository.fork' - runs-on: ubuntu-latest + runs-on: ubuntu-slim strategy: matrix: include: @@ -33,12 +33,12 @@ jobs: days-before-issue-stale: 90 days-before-issue-close: 21 steps: - - uses: conda/actions/read-yaml@eb545bb8ab48d499b31c057a6df3cf46753fdbcb # v25.3.1 + - uses: conda/actions/read-yaml@7f6830b1428a9bd47f0b068892c77eae95207037 # v26.1.0 id: read_yaml with: path: https://raw.githubusercontent.com/conda/infra/main/.github/messages.yml - - uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9.1.0 + - uses: actions/stale@997185467fa4f803885201cee163a9f38240193d # v10.1.1 id: stale with: # Only issues with these labels are checked whether they are stale diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index 7d4f4fda..c598ba68 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -28,10 +28,10 @@ jobs: ) ) ) - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - if: github.event_name == 'issue_comment' - uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0 + uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0 with: comment-id: ${{ github.event.comment.id }} reactions: eyes @@ -44,7 +44,7 @@ jobs: echo REPOSITORY=$(curl --silent ${{ github.event.issue.pull_request.url }} | jq --raw-output '.head.repo.full_name') >> $GITHUB_ENV echo REF=$(curl --silent ${{ github.event.issue.pull_request.url }} | jq --raw-output '.head.ref') >> $GITHUB_ENV - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: repository: ${{ env.REPOSITORY || github.repository }} ref: ${{ env.REF || '' }} @@ -55,11 +55,11 @@ jobs: git config --global user.name 'Conda Bot' git config --global user.email '18747875+conda-bot@users.noreply.github.com' - - uses: conda/actions/combine-durations@eb545bb8ab48d499b31c057a6df3cf46753fdbcb # v25.3.1 + - uses: conda/actions/combine-durations@7f6830b1428a9bd47f0b068892c77eae95207037 # v26.1.0 id: durations continue-on-error: true - - uses: conda/actions/template-files@eb545bb8ab48d499b31c057a6df3cf46753fdbcb # v25.3.1 + - uses: conda/actions/template-files@7f6830b1428a9bd47f0b068892c77eae95207037 # v26.1.0 id: templates continue-on-error: true @@ -80,7 +80,7 @@ jobs: - if: github.event.comment.body != '@conda-bot render' id: create # no-op if no commits were made - uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8 + uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v8.1.0 with: push-to-fork: ${{ env.FORK }} token: ${{ secrets.SYNC_TOKEN }} @@ -116,7 +116,7 @@ jobs: run: git push --force-with-lease - if: always() && github.event_name == 'issue_comment' - uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0 + uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0 with: comment-id: ${{ github.event.comment.id }} reactions: ${{ (steps.create.conclusion == 'success' || steps.update.conclusion == 'success') && 'hooray' || 'confused' }} diff --git a/HOW_WE_USE_GITHUB.md b/HOW_WE_USE_GITHUB.md index b988a7dd..1c6338b7 100644 --- a/HOW_WE_USE_GITHUB.md +++ b/HOW_WE_USE_GITHUB.md @@ -39,6 +39,8 @@ This document seeks to outline how we as a community use GitHub Issues to track - [What is "Issue Sorting"?](#what-is-issue-sorting) - [Issue Sorting Procedures](#issue-sorting-procedures) + - [Development Processes](#development-processes) + - [Code Review and Merging](#code-review-and-merging) - [Commit Signing](#commit-signing) - [Types of Issues](#types-of-issues) - [Standard Issue](#standard-issue) @@ -265,21 +267,92 @@ Community support can be found elsewhere, though, and we encourage you to explor In order to not have to manually type or copy/paste the above repeatedly, note that it's possible to add text for the most commonly-used responses via [GitHub's "Add Saved Reply" option][docs-saved-reply]. -## Commit Signing +## Development Processes -For all maintainers, we require commit signing and strongly recommend it for all others wishing to contribute. More information about how to set this up within GitHub can be found here: +The following are practices the conda organization encourages for feature +development. While we recommend projects under the conda organization adopt +these practices, they are not strictly required. -- [GitHub's signing commits docs][docs-commit-signing] +### How should we approach feature development? + +For new features, first open an issue if one doesn’t exist. Once the feature request +has been accepted (indicated by the issue's status transitioning from "Sorting" to +"Refinement"), create a specification to gather early feedback. This can include +mockups, API/command references, a written plan in the issue, and sample CLI +arguments (without functionality). + +### What is our change process? + +For larger features, break down the work into smaller, manageable issues +that are added to the backlog. As long as a feature remains on the roadmap +or backlog, do not create long-lived feature branches that span multiple +pull requests. Instead, you should integrate small slices of an overall +feature directly into the main branch to avoid complex integration challenges. + +### Should we make unrelated changes at the same time? + +When making changes, try to follow the Campsite Rule to leave things better +than when you found them. You should enhance the code you encounter, even if +primary goal is unrelated. This could involve refactoring small sections, +improving readability, or fixing minor bugs. + +## Code Review and Merging + +### What are the review requirements? + +#### Standard Review + +Most code changes require one reviewer from someone on the maintainer team for +the repository. Instead of waiting for someone on the team to review it, +directly requesting a review from the person you previously identified to work +with is preferred to optimize teamwork. If you paired with them during +development, continuous review counts as this requirement. + +#### Second Review + +Required only when the code author or the first reviewer feels like it is +necessary to get another set of eyes on a proposed change. In this case, they +add someone specific through GitHub's Request Review feature with a comment on +what they want the person to look for. + +### What are the code review best practices? + +If you are conducting a review, adhere to these best practices: + +- Provide comprehensive feedback in the first review to minimize review rounds +- Reserve Request Changes for blocking issues (bugs or other major problems) — + Select Comment for suggestions and improvements +- Follow-up reviews should focus on whether requested changes resolve original + comments +- Code should be production-ready and maintainable when merged, but doesn't + need to be perfect +- If providing feedback outside the core review focus (nitpicks, tips, + suggestions), clearly mark these as non-blocking comments that don't need to + be addressed before merging. + +### How do we merge code? + +If you are the approving reviewer (typically the first reviewer, or the second +reviewer when needed) and you have completed your review and approved the +changes, you should merge the code immediately to maintain development +velocity. + +Normally, we use squash and merge to keep a clean git history. If you are +merging a pull request, help ensure that the pull request title is updated. ## Types of Issues ### Standard Issue -TODO +Standard issues represent typical bug reports, feature requests, or other work +items that have a clear definition and expected outcome. ### Epics -TODO +Epics are large work items that can be broken down into smaller, more +manageable issues. They typically represent major features or significant +changes that span multiple iterations or releases. Relate the smaller +issues to the epic using the sub-issues feature in GitHub. ### Spikes From 0255d5d29767eba0903bc9db03bb44b16729fedf Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 17 Feb 2026 08:59:07 -0600 Subject: [PATCH 34/38] [pre-commit.ci] pre-commit autoupdate (#170) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [pre-commit.ci] pre-commit autoupdate updates: - https://github.com/psf/black → https://github.com/psf/black-pre-commit-mirror - [github.com/psf/black-pre-commit-mirror: 25.1.0 → 26.1.0](https://github.com/psf/black-pre-commit-mirror/compare/25.1.0...26.1.0) - [github.com/asottile/blacken-docs: 1.19.1 → 1.20.0](https://github.com/asottile/blacken-docs/compare/1.19.1...1.20.0) - [github.com/PyCQA/pylint: v3.3.8 → v4.0.4](https://github.com/PyCQA/pylint/compare/v3.3.8...v4.0.4) - [github.com/PyCQA/bandit: 1.8.6 → 1.9.3](https://github.com/PyCQA/bandit/compare/1.8.6...1.9.3) * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 10 +++++----- history.py | 1 + 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0b5ce6d2..d8a92ed6 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -12,13 +12,13 @@ repos: - id: check-json # catch git merge/rebase problems - id: check-merge-conflict - - repo: https://github.com/psf/black - rev: 25.1.0 + - repo: https://github.com/psf/black-pre-commit-mirror + rev: 26.1.0 hooks: - id: black types_or: [python] - repo: https://github.com/asottile/blacken-docs - rev: 1.19.1 + rev: 1.20.0 hooks: - id: blacken-docs additional_dependencies: [black] @@ -29,13 +29,13 @@ repos: - id: flake8 types_or: [python] - repo: https://github.com/PyCQA/pylint - rev: v3.3.8 + rev: v4.0.4 hooks: - id: pylint args: [--exit-zero] types_or: [python] - repo: https://github.com/PyCQA/bandit - rev: 1.8.6 + rev: 1.9.3 hooks: - id: bandit args: [--exit-zero] diff --git a/history.py b/history.py index 9820da4d..711b7649 100755 --- a/history.py +++ b/history.py @@ -6,6 +6,7 @@ Normally this should not be used. This is ideally only used to generate the initial historical data points for repos that have not been previously tracked. """ + import argparse import json import time From f52be2a1064ac1eb43b6fc82b1ea9a7bde7a3e80 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 9 Mar 2026 13:59:07 -0500 Subject: [PATCH 35/38] [pre-commit.ci] pre-commit autoupdate (#172) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/psf/black-pre-commit-mirror: 26.1.0 → 26.3.0](https://github.com/psf/black-pre-commit-mirror/compare/26.1.0...26.3.0) - [github.com/PyCQA/pylint: v4.0.4 → v4.0.5](https://github.com/PyCQA/pylint/compare/v4.0.4...v4.0.5) - [github.com/PyCQA/bandit: 1.9.3 → 1.9.4](https://github.com/PyCQA/bandit/compare/1.9.3...1.9.4) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d8a92ed6..250d4d5e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -13,7 +13,7 @@ repos: # catch git merge/rebase problems - id: check-merge-conflict - repo: https://github.com/psf/black-pre-commit-mirror - rev: 26.1.0 + rev: 26.3.0 hooks: - id: black types_or: [python] @@ -29,13 +29,13 @@ repos: - id: flake8 types_or: [python] - repo: https://github.com/PyCQA/pylint - rev: v4.0.4 + rev: v4.0.5 hooks: - id: pylint args: [--exit-zero] types_or: [python] - repo: https://github.com/PyCQA/bandit - rev: 1.9.3 + rev: 1.9.4 hooks: - id: bandit args: [--exit-zero] From f14831b1aa59630baceb7e71e45032a6214cc26c Mon Sep 17 00:00:00 2001 From: conda-bot <18747875+conda-bot@users.noreply.github.com> Date: Mon, 9 Mar 2026 19:59:24 +0100 Subject: [PATCH 36/38] =?UTF-8?q?=F0=9F=A4=96=20Update=20infrastructure=20?= =?UTF-8?q?file(s)=20(#173)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/stale.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index fbdb1a9c..00e91181 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -38,7 +38,7 @@ jobs: with: path: https://raw.githubusercontent.com/conda/infra/main/.github/messages.yml - - uses: actions/stale@997185467fa4f803885201cee163a9f38240193d # v10.1.1 + - uses: actions/stale@b5d41d4e1d5dceea10e7104786b73624c18a190f # v10.2.0 id: stale with: # Only issues with these labels are checked whether they are stale From 5fcce7035314beb7c8493615cf25f6d5226af16c Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 24 Mar 2026 09:55:08 -0500 Subject: [PATCH 37/38] [pre-commit.ci] pre-commit autoupdate (#174) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/psf/black-pre-commit-mirror: 26.3.0 → 26.3.1](https://github.com/psf/black-pre-commit-mirror/compare/26.3.0...26.3.1) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 250d4d5e..ce31b940 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -13,7 +13,7 @@ repos: # catch git merge/rebase problems - id: check-merge-conflict - repo: https://github.com/psf/black-pre-commit-mirror - rev: 26.3.0 + rev: 26.3.1 hooks: - id: black types_or: [python] From 36a65cf6a7e54ee09bf917e2b8c1e283fcbc99c8 Mon Sep 17 00:00:00 2001 From: conda-bot <18747875+conda-bot@users.noreply.github.com> Date: Mon, 30 Mar 2026 21:23:52 +0200 Subject: [PATCH 38/38] =?UTF-8?q?=F0=9F=A4=96=20Update=20infrastructure=20?= =?UTF-8?q?file(s)=20(#175)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/project.yml | 6 +- HOW_WE_USE_GITHUB.md | 288 +++++++++++++++------------------- 2 files changed, 129 insertions(+), 165 deletions(-) diff --git a/.github/workflows/project.yml b/.github/workflows/project.yml index 7562637a..9ff94eb8 100644 --- a/.github/workflows/project.yml +++ b/.github/workflows/project.yml @@ -1,9 +1,6 @@ name: Add to Project on: - issues: - types: - - opened pull_request_target: types: - opened @@ -15,7 +12,6 @@ jobs: steps: - uses: actions/add-to-project@244f685bbc3b7adfa8466e08b698b5577571133e # v1.0.2 with: - # issues are added to the Planning project # PRs are added to the Review project - project-url: https://github.com/orgs/conda/projects/${{ github.event_name == 'issues' && 2 || 16 }} + project-url: https://github.com/orgs/conda/projects/16 github-token: ${{ secrets.PROJECT_TOKEN }} diff --git a/HOW_WE_USE_GITHUB.md b/HOW_WE_USE_GITHUB.md index 1c6338b7..8b035792 100644 --- a/HOW_WE_USE_GITHUB.md +++ b/HOW_WE_USE_GITHUB.md @@ -1,23 +1,19 @@ +# How We Use GitHub [conda-org]: https://github.com/conda -[sub-team]: https://github.com/conda-incubator/governance#sub-teams -[project-planning]: https://github.com/orgs/conda/projects/2/views/11 -[project-sorting]: https://github.com/orgs/conda/projects/2/views/11 -[project-support]: https://github.com/orgs/conda/projects/2/views/12 -[project-backlog]: https://github.com/orgs/conda/projects/2/views/13 -[project-in-progress]: https://github.com/orgs/conda/projects/2/views/14 +[project-refinement]: https://github.com/orgs/conda/projects/22/views/14 +[project-backlog]: https://github.com/orgs/conda/projects/22/views/2 +[project-current-sprint]: https://github.com/orgs/conda/projects/22/views/10 +[project-review]: https://github.com/orgs/conda/projects/16 [docs-toc]: https://github.blog/changelog/2021-04-13-table-of-contents-support-in-markdown-files/ -[docs-actions]: https://docs.github.com/en/actions [docs-saved-reply]: https://docs.github.com/en/get-started/writing-on-github/working-with-saved-replies/creating-a-saved-reply -[docs-commit-signing]: https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits [infrastructure]: https://github.com/conda/infrastructure [workflow-sync]: https://github.com/conda/infrastructure/blob/main/.github/workflows/sync.yml -[workflow-update]: https://github.com/conda/issue-tracker/blob/main/.github/workflows/update.yml [labels-global]: https://github.com/conda/infrastructure/blob/main/.github/global.yml @@ -30,23 +26,20 @@ [labels-local]: https://github.com/conda/issue-tracker/blob/main/.github/labels.yml [labels-page]: https://github.com/conda/issue-tracker/labels -# How We Use GitHub - This document seeks to outline how we as a community use GitHub Issues to track bugs and feature requests while still catering to development practices & project management (_e.g._, release cycles, feature planning, priority sorting, etc.). **Topics:** - - [What is "Issue Sorting"?](#what-is-issue-sorting) - - [Issue Sorting Procedures](#issue-sorting-procedures) - - [Development Processes](#development-processes) - - [Code Review and Merging](#code-review-and-merging) - - [Commit Signing](#commit-signing) - - [Types of Issues](#types-of-issues) - - [Standard Issue](#standard-issue) - - [Epics](#epics) - - [Spikes](#spikes) - - [Working on Issues](#working-on-issues) +- [What is "Issue Sorting"?](#what-is-issue-sorting) +- [Labeling](#labeling) +- [Types of Issues](#types-of-issues) + - [Standard Issue](#standard-issue) + - [Epics](#epics) + - [Spikes](#spikes) +- [Working on Issues](#working-on-issues) +- [Development Processes](#development-processes) +- [Code Review and Merging](#code-review-and-merging) > [!NOTE] > This document is written in the style of an FAQ. For easier navigation, use [GitHub's table of contents feature][docs-toc]. @@ -60,31 +53,27 @@ This document seeks to outline how we as a community use GitHub Issues to track ```mermaid flowchart LR - subgraph flow_sorting [Issue Sorting] - board_sorting{{Sorting}} - board_support{{Support}} - - board_sorting<-->board_support + subgraph flow_sorting [Issue Sorting in Issue Tracker] + state_sorting{{Maintainer sorting}} end - subgraph flow_refinement [Refinement] + subgraph flow_roadmap [Roadmap Board] + board_refinement{{Refinement}} board_backlog{{Backlog}} - board_backlog-- refine -->board_backlog - end - - subgraph flow_progress [In Progress] - board_progress{{In Progress}} + board_refinement-->board_backlog + board_backlog-- reprioritize -->board_backlog + board_progress{{Current Sprint - In Progress}} end state_new(New Issues) state_closed(Closed) - state_new-->board_sorting - board_sorting-- investigated -->board_backlog - board_sorting-- duplicates, off-topic -->state_closed - board_support-- resolved, unresponsive -->state_closed + state_new-->state_sorting + state_sorting-- accepted for work -->board_refinement + state_sorting-- duplicate, off-topic, support resolved -->state_closed board_backlog-- pending work -->board_progress + board_refinement-- not actionable -->state_closed board_backlog-- resolved, irrelevant -->state_closed board_progress-- resolved -->state_closed ``` @@ -100,109 +89,51 @@ At the most basic "bird's eye view" level, sorted issues will fall into the cate At its core, sorting enables new issues to be placed into these four categories, which helps to ensure that they will be processed at a velocity similar to or exceeding the rate at which new issues are coming in. One of the benefits of actively sorting issues is to avoid engineer burnout and to make necessary work sustainable; this is done by eliminating a never-ending backlog that has not been reviewed by any maintainers. -There will always be broad-scope design and architecture implementations that the maintainers will be interested in pursuing; by actively organizing issues, the sorting engineers will be able to more easily track and tackle both specific and big-picture goals. +There will always be broad-scope design and architecture implementations that the maintainers will be interested in pursuing; by actively organizing issues, they will be able to more easily track and tackle both specific and big-picture goals. ### Who does the sorting? -Sorting engineers are a conda governance [sub-team][sub-team]; they are a group of community members who are responsible for making decisions regarding closing issues and setting feature work priorities, among other sorting-related tasks. +Core maintainers help with sorting issues, making decisions regarding closing issues and setting feature work priorities, among other sorting-related tasks. -### How do items show up for sorting? +### How does issue sorting and board intake work? -New issues that are opened in any of the repositories in the [conda GitHub organization][conda-org] will show up in the "Sorting" tab of the [Planning project][project-planning]. There are two [GitHub Actions][docs-actions] workflows utilized for this purpose; [`.github/workflows/issues.yml`][workflow-issues] and [`.github/workflows/project.yml`][workflow-project]. - -The GitHub workflows in the [`conda/infrastructure`][infrastructure] repository are viewed as canonical; the [`.github/workflows/sync.yml` workflow][workflow-sync] pushes any modifications to other repositories from there and individual repositories can pull additional files using the [`.github/workflows/update.yml`][workflow-update] workflow. - -### What is done about the issues in the "Sorting" tab? - -Issues in the ["Sorting" tab of the project board][project-sorting] are considered ready for the following procedures: +New issues that are opened in any of the repositories in the [conda GitHub organization][conda-org] are reviewed in the repository issue tracker first. During sorting in the issue tracker, issues are reviewed for the following outcomes: - Mitigation via short-term workarounds and fixes - Redirection to the correct project - Determining if support can be provided for errors and questions - Closing out of any duplicate/off-topic issues -The sorting engineers on rotation are not seeking to _resolve_ issues that arise. Instead, the goal is to understand the issue and to determine whether it is legitimate, and then to collect as much relevant information as possible so that the maintainers can make an informed decision about the appropriate resolution schedule. - -Issues will remain in the ["Sorting" tab][project-sorting] as long as the issue is in an investigatory phase (_e.g._, querying the user for more details, asking the user to attempt other workarounds, other debugging efforts, etc.) and are likely to remain in this state the longest, but should still be progressing over the course of 1-2 weeks. - -For more information on the sorting process, see [Issue Sorting Procedures](#issue-sorting-procedures). +The core maintainers are not seeking to _resolve_ issues that arise. Instead, the goal is to understand the issue and to determine whether it is legitimate, and then to collect as much relevant information as possible so that the maintainers can make an informed decision about the appropriate resolution schedule. -### When do items move out of the "Sorting" tab? +Issues can remain in this investigatory phase (_e.g._, querying the user for more details, asking the user to attempt other workarounds, other debugging efforts, etc.) and are likely to remain in this state the longest, but should still be progressing over the course of 1-2 weeks. -Items move out of the ["Sorting" tab][project-sorting] once the investigatory phase described in [What is done about the issues in the "Sorting" tab?](#what-is-done-about-the-issues-in-the-sorting-tab) has concluded and the sorting engineer has enough information to make a decision about the appropriate resolution schedule for the issue. The additional tabs in the project board that the issues can be moved to include the following: +Items are added to the [Refinement tab of the Roadmap Board][project-refinement] once sorting has concluded and the core maintainer has enough information to make a decision about the appropriate resolution schedule for the issue. Newly opened pull requests are automatically added to the [Review board][project-review] by [`.github/workflows/project.yml`][workflow-project]. -- **"Support"** - Any issue in the ["Support" tab of the Planning board][project-support] is a request for support and is not a feature request or a bug report. Add the https://github.com/conda/issue-tracker/labels/type%3A%3Asupport label to move an issue to this tab. -- **"Backlog"** - The issue has revealed a bug or feature request. We have collected enough details to understand the problem/request and to reproduce it on our own. These issues have been moved into the [Backlog tab of the Planning board][project-backlog] at the end of the sorting rotation during Refinement. Add the https://github.com/conda/issue-tracker/labels/backlog label to move an issue to this tab. -- **"Closed"** - The issue was closed due to being a duplicate, being redirected to a different project, was a user error, a question that has been resolved, etc. +Issues that are not accepted for planned work are closed instead (_e.g._ duplicates, redirects, user errors, resolved support questions, etc.). ### Where do work issues go after being sorted? -Once issues are deemed ready to be worked on, they will be moved to the ["Backlog" tab of the Planning board][project-backlog]. Once actively in progress, the issues will be moved to the ["In Progress" tab of the Planning board][project-in-progress] and then closed out once the work is complete. +Once issues are accepted for work, they are added to the ["Refinement" tab of the Roadmap Board][project-refinement]. After refinement and prioritization, issues move to ["Backlog"][project-backlog] and then to ["Current Sprint"][project-current-sprint] when actively being worked. Issues are closed once the work is complete. ### What is the purpose of having a "Backlog"? -Issues are "backlogged" when they have been sorted but not yet earmarked for an upcoming release. +Issues are "backlogged" when they have been accepted and refined but are not yet planned into the current sprint. ### What automation procedures are currently in place? Global automation procedures synced out from the [`conda/infrastructure`][infrastructure] repo include: -- [Marking of issues and pull requests as stale][workflow-stale], resulting in: - - issues marked as https://github.com/conda/issue-tracker/labels/type%3A%3Asupport being labeled stale after 21 days of inactivity and being closed after 7 further days of inactivity (that is, closed after 30 inactive days total) - - all other inactive issues (not labeled as https://github.com/conda/issue-tracker/labels/type%3A%3Asupport being labeled stale after 365 days of inactivity and being closed after 30 further days of inactivity (that is, closed after an approximate total of 1 year and 1 month of inactivity) - - all inactive pull requests being labeled stale after 365 days of inactivity and being closed after 30 further days of inactivity (that is, closed after an approximate total of 1 year and 1 month of inactivity) +- [Marking/Closing stale issues and pull requests][workflow-stale]: + - https://github.com/conda/issue-tracker/labels/type%3A%3Asupport issues are labeled as stale after 21 days of inactivity and are closed after 7 more days of inactivity (that is, closed after 30 inactive days total) + - non https://github.com/conda/issue-tracker/labels/type%3A%3Asupport issues are labeled as stale after 365 days of inactivity and are closed after 30 more days of inactivity (that is, closed after an approximate total of 1 year and 1 month of inactivity) + - all pull requests are labeled as stale after 365 days of inactivity and are closed after 30 more days of inactivity (that is, closed after an approximate total of 1 year and 1 month of inactivity) - [Locking of closed issues and pull requests with no further activity][workflow-lock] after 365 days -- [Adding new issues and pull requests to the respective project boards][workflow-project] -- [Indicating an issue is ready for the sorting engineer's attention][workflow-issues] by toggling https://github.com/conda/issue-tracker/labels/pending%3A%3Afeedback with https://github.com/conda/issue-tracker/labels/pending%3A%3Asupport after a contributor leaves a comment -- [Verifying that contributors have signed the CLA][workflow-cla] before allowing pull requests to be merged; if the contributor hasn't signed the CLA previously, merging is be blocked until a manual review can be done +- [Adding new pull requests to the Review board][workflow-project] +- [Indicating an issue is ready for a maintainer's attention][workflow-issues] by toggling https://github.com/conda/issue-tracker/labels/pending%3A%3Afeedback with https://github.com/conda/issue-tracker/labels/pending%3A%3Asupport after a contributor leaves a comment +- [Verifying that contributors have signed the CLA][workflow-cla] before allowing pull requests to be merged; if the contributor hasn't signed the CLA previously, merging is blocked until a manual review can be done - [Syncing out templates, labels, workflows, and documentation][workflow-sync] from [`conda/infrastructure`][infrastructure] to the other repositories -## Issue Sorting Procedures - -### How are issues sorted? - -Issues in the ["Sorting" tab of the Planning board][project-sorting] are reviewed by issue sorting engineers, who take rotational sorting shifts. In the process of sorting issues, engineers label the issues and move them to the other tabs of the project board for further action. - -Issues that require input from multiple members of the sorting team will be brought up during refinement meetings in order to understand how those particular issues fit into the short- and long-term roadmap. These meetings enable the sorting engineers to get together to collectively prioritize issues, earmark feature requests for specific future releases (versus a more open-ended backlog), tag issues as ideal for first-time contributors, as well as whether or not to close/reject specific feature requests. - -### How does labeling work? - -Labeling is a very important means for sorting engineers to keep track of the current state of an issue with regards to the asynchronous nature of communicating with users. Utilizing the proper labels helps to identify the severity of the issue as well as to quickly understand the current state of a discussion. - -Each label has an associated description that clarifies how the label should be used. Hover on the label to see its description. Label colors are used to distinguish labels by category. - -Generally speaking, labels with the same category are considered mutually exclusive, but in some cases labels sharing the same category can occur concurrently, as they indicate qualifiers as opposed to types. For example, we may have the following types, https://github.com/conda/issue-tracker/labels/type%3A%3Abug, https://github.com/conda/issue-tracker/labels/type%3A%3Afeature, and https://github.com/conda/issue-tracker/labels/type%3A%3Adocumentation, where for any one issue there would be _at most_ **one** of these to be defined (_i.e._ an issue should not be a bug _and_ a feature request at the same time). Alternatively, with issues involving specific operating systems (_i.e._, https://github.com/conda/issue-tracker/labels/os%3A%3Alinux, https://github.com/conda/issue-tracker/labels/os%3A%3Amacos, and https://github.com/conda/issue-tracker/labels/os%3A%3Awindows), an issue could be labeled with one or more, depending on the system(s) the issue occurs on. - -Please note that there are also automation policies in place that are affected by labeling. For example, if an issue is labeled as https://github.com/conda/issue-tracker/labels/type%3A%3Asupport, that issue will be marked https://github.com/conda/issue-tracker/labels/stale after 21 days of inactivity and auto-closed after seven more days without activity (30 inactive days total), which is earlier than issues without this label. See [What automation procedures are currently in place?](#what-automation-procedures-are-currently-in-place) for more details. - -### What labels are required for each issue? - -At minimum, both `type` and `source` labels should be specified on each issue before moving it from the "Sorting" tab to the "Backlog" tab. All issues that are bugs should also be tagged with a `severity` label. - -The `type` labels are exclusive of each other: each sorted issue should have exactly one `type` label. These labels give high-level information on the issue's classification (_e.g._, bug, feature, tech debt, etc.) - -The `source` labels are exclusive of each other: each sorted issue should have exactly one `source` label. These labels give information on the sub-group to which the issue's author belongs (_e.g._, a partner, a frequent contributor, the wider community, etc.). Through these labels, maintainers gain insight into how well we're meeting the needs of various groups. - -The `severity` labels are exclusive of each other and, while required for the https://github.com/conda/issue-tracker/labels/type%3A%bug label, they can also be applied to other types to indicate demand or need. These labels help us to prioritize our work. Severity is not the only factor for work prioritization, but it is an important consideration. - -Please review the descriptions of the `type`, `source`, and `severity` labels on the [labels page][labels-page] prior to use. - -### How are new labels defined? - -Labels are defined using a scoped syntax with an optional high-level category (_e.g._, `source`, `tag`, `type`, etc.) and a specific topic, much like the following: - -- `[topic]` -- `[category::topic]` -- `[category::topic-phrase]` - -This syntax helps with issue sorting enforcement, as it helps to ensure that sorted issues are, at minimum, categorized by type and source. - -There are a number of labels that have been defined for the different repositories. In order to create a streamlined sorting process, label terminologies are standardized using similar (if not the same) labels. - -### How are new labels added? - -New **global** labels (_i.e._, labels that apply equally to all repositories within the conda GitHub organization) are added to [`conda/infrastructure`][infrastructure]'s [`.github/global.yml` file][labels-global]; new **local** labels (_i.e._, labels specific to particular repositories) are added to each repository's [`.github/labels.yml` file][labels-local]. All new labels should follow the labeling syntax described in ["How are new labels defined?"](#how-are-new-labels-defined). Global labels are combined with any local labels and these aggregated labels are used by the [`.github/workflows/labels.yml` workflow][workflow-labels] to synchronize the labels available for the repository. - ### Are there any templates to use as responses for commonly-seen issues? Some of the same types of issues appear regularly (_e.g._, issues that are duplicates of others, issues that should be filed in the Anaconda issue tracker, errors that are due to a user's specific setup/environment, etc.). @@ -264,9 +195,94 @@ Community support can be found elsewhere, though, and we encourage you to explor - In order to not have to manually type or copy/paste the above repeatedly, note that it's possible to add text for the most commonly-used responses via [GitHub's "Add Saved Reply" option][docs-saved-reply]. +## Labeling + +This section covers the labels and conventions used during issue sorting. + +### How does labeling work? + +Labeling is a very important means for core maintainers to keep track of the current state of an issue with regards to the asynchronous nature of communicating with users. Utilizing the proper labels helps to identify the severity of the issue as well as to quickly understand the current state of a discussion. + +Each label has an associated description that clarifies how the label should be used. Hover on the label to see its description. Label colors are used to distinguish labels by category. + +Generally speaking, labels with the same category are considered mutually exclusive, but in some cases labels sharing the same category can occur concurrently, as they indicate qualifiers as opposed to types. For example, we may have the following types, https://github.com/conda/issue-tracker/labels/type%3A%3Abug, https://github.com/conda/issue-tracker/labels/type%3A%3Afeature, and https://github.com/conda/issue-tracker/labels/type%3A%3Adocumentation, where for any one issue there would be _at most_ **one** of these to be defined (_i.e._ an issue should not be a bug _and_ a feature request at the same time). Alternatively, with issues involving specific operating systems (_i.e._, https://github.com/conda/issue-tracker/labels/os%3A%3Alinux, https://github.com/conda/issue-tracker/labels/os%3A%3Amacos, and https://github.com/conda/issue-tracker/labels/os%3A%3Awindows), an issue could be labeled with one or more, depending on the system(s) the issue occurs on. + +Please note that there are also automation policies in place that are affected by labeling. For example, if an issue is labeled as https://github.com/conda/issue-tracker/labels/type%3A%3Asupport, that issue will be marked https://github.com/conda/issue-tracker/labels/stale after 21 days of inactivity and auto-closed after seven more days without activity (30 inactive days total), which is earlier than issues without this label. See [What automation procedures are currently in place?](#what-automation-procedures-are-currently-in-place) for more details. + +### What labels are required for each issue? + +At minimum, both `type` and `source` labels should be specified on each issue before adding it to the "Refinement" tab of the Roadmap Board. All issues that are bugs should also be tagged with a `severity` label. + +The `type` labels are exclusive of each other: each sorted issue should have exactly one `type` label. These labels give high-level information on the issue's classification (_e.g._, bug, feature, tech debt, etc.) + +The `source` labels are exclusive of each other: each sorted issue should have exactly one `source` label. These labels give information on the sub-group to which the issue's author belongs (_e.g._, a partner, a frequent contributor, the wider community, etc.). Through these labels, maintainers gain insight into how well we're meeting the needs of various groups. + +The `severity` labels are exclusive of each other and, while required for the https://github.com/conda/issue-tracker/labels/type%3A%3Abug label, they can also be applied to other types to indicate demand or need. These labels help us to prioritize our work. Severity is not the only factor for work prioritization, but it is an important consideration. + +Please review the descriptions of the `type`, `source`, and `severity` labels on the [labels page][labels-page] prior to use. + +### How are new labels defined? + +Labels are defined using a scoped syntax with an optional high-level category (_e.g._, `source`, `tag`, `type`, etc.) and a specific topic, much like the following: + +- `[topic]` +- `[category::topic]` +- `[category::topic-phrase]` + +This syntax helps with issue sorting enforcement, as it helps to ensure that sorted issues are, at minimum, categorized by type and source. + +There are a number of labels that have been defined for the different repositories. In order to create a streamlined sorting process, label terminologies are standardized using similar (if not the same) labels. + +### How are new labels added? + +New **global** labels (_i.e._, labels that apply equally to all repositories within the conda GitHub organization) are added to [`conda/infrastructure`][infrastructure]'s [`.github/global.yml` file][labels-global]; new **local** labels (_i.e._, labels specific to particular repositories) are added to each repository's [`.github/labels.yml` file][labels-local]. All new labels should follow the labeling syntax described in ["How are new labels defined?"](#how-are-new-labels-defined). Global labels are combined with any local labels and these aggregated labels are used by the [`.github/workflows/labels.yml` workflow][workflow-labels] to synchronize the labels available for the repository. + +## Types of Issues + +### Standard Issue + +Standard issues represent typical bug reports, feature requests, or other work items that have a clear definition and expected outcome. + +### Epics + +Epics are large work items that can be broken down into smaller, more manageable issues. They typically represent major features or significant changes that span multiple iterations or releases. Relate the smaller issues to the epic using the sub-issues feature in GitHub. + +### Spikes + +#### What is a spike? + +"Spike" is a term that is borrowed from extreme programming and agile development. They are used when the **outcome of an issue is unknown or even optional**. For example, when first coming across a problem that has not been solved before, a project may choose to either research the problem or create a prototype in order to better understand it. + +Additionally, spikes represent work that **may or may not actually be completed or implemented**. An example of this are prototypes created to explore possible solutions. Not all prototypes are implemented and the purpose of creating a prototype is often to explore the problem space more. For research-oriented tasks, the end result of this research may be that a feature request simply is not viable at the moment and would result in putting a stop to that work. + +Finally, spikes are usually **timeboxed**. However, given the open source/volunteer nature of our contributions, we do not enforce this for our contributors. When a timebox is set, this means that we are limiting how long we want someone to work on said spike. We do this to prevent contributors from falling into a rabbit hole they may never return from. Instead, we set a time limit to perform work on the spike and then have the assignee report back. If the tasks defined in the spike have not yet been completed, a decision is made on whether it makes sense to perform further work on the spike. + +#### When do I create a spike? + +A spike should be created when we do not have enough information to move forward with solving a problem. That simply means that, whenever we are dealing with unknowns or processes the project team has never encountered before, it may be useful for us to create a spike. + +In day-to-day work, this kind of situation may appear when new bug reports or feature requests come in that deal with problems or technologies that the project team is unfamiliar with. All issues that the project team has sufficient knowledge of should instead proceed as regular issues. + +#### When do I not create a spike? + +Below are some common scenarios where creating a spike is not appropriate: + +- Writing a technical specification for a feature we know how to implement +- Design work that would go into drafting how an API is going to look and function +- Any work that must be completed or is not optional + +## Working on Issues + +### How do I assign myself to an issue I am actively reviewing? + +If you do **not** have permissions, please indicate that you are working on an issue by leaving a comment. Someone who has permissions will assign you to the issue. If two weeks have passed without a pull request or an additional comment requesting information, you may be removed from the issue and the issue reassigned. + +If you are assigned to an issue but will not be able to continue work on it, please comment to indicate that you will no longer be working on it and press `unassign me` next to your username in the `Assignees` section of the issue page (top right). + +If you **do** have permissions, please assign yourself to the issue by pressing `assign myself` under the `Assignees` section of the issue page (top right). + ## Development Processes The following are practices the conda organization encourages for feature @@ -339,51 +355,3 @@ velocity. Normally, we use squash and merge to keep a clean git history. If you are merging a pull request, help ensure that the pull request title is updated. - -## Types of Issues - -### Standard Issue - -Standard issues represent typical bug reports, feature requests, or other work -items that have a clear definition and expected outcome. - -### Epics - -Epics are large work items that can be broken down into smaller, more -manageable issues. They typically represent major features or significant -changes that span multiple iterations or releases. Relate the smaller -issues to the epic using the sub-issues feature in GitHub. - -### Spikes - -#### What is a spike? - -"Spike" is a term that is borrowed from extreme programming and agile development. They are used when the **outcome of an issue is unknown or even optional**. For example, when first coming across a problem that has not been solved before, a project may choose to either research the problem or create a prototype in order to better understand it. - -Additionally, spikes represent work that **may or may not actually be completed or implemented**. An example of this are prototypes created to explore possible solutions. Not all prototypes are implemented and the purpose of creating a prototype is often to explore the problem space more. For research-oriented tasks, the end result of this research may be that a feature request simply is not viable at the moment and would result in putting a stop to that work. - -Finally, spikes are usually **timeboxed**. However, given the open source/volunteer nature of our contributions, we do not enforce this for our contributors. When a timebox is set, this means that we are limiting how long we want someone to work on said spike. We do this to prevent contributors from falling into a rabbit hole they may never return from. Instead, we set a time limit to perform work on the spike and then have the assignee report back. If the tasks defined in the spike have not yet been completed, a decision is made on whether it makes sense to perform further work on the spike. - -#### When do I create a spike? - -A spike should be created when we do not have enough information to move forward with solving a problem. That simply means that, whenever we are dealing with unknowns or processes the project team has never encountered before, it may be useful for us to create a spike. - -In day-to-day work, this kind of situation may appear when new bug reports or feature requests come in that deal with problems or technologies that the project team is unfamiliar with. All issues that the project team has sufficient knowledge of should instead proceed as regular issues. - -#### When do I not create a spike? - -Below are some common scenarios where creating a spike is not appropriate: - -- Writing a technical specification for a feature we know how to implement -- Design work that would go into drafting how an API is going to look and function -- Any work that must be completed or is not optional - -## Working on Issues - -### How do I assign myself to an issue I am actively reviewing? - -If you do **not** have permissions, please indicate that you are working on an issue by leaving a comment. Someone who has permissions will assign you to the issue. If two weeks have passed without a pull request or an additional comment requesting information, you may be removed from the issue and the issue reassigned. - -If you are assigned to an issue but will not be able to continue work on it, please comment to indicate that you will no longer be working on it and press `unassign me` next to your username in the `Assignees` section of the issue page (top right). - -If you **do** have permissions, please assign yourself to the issue by pressing `assign myself` under the `Assignees` section of the issue page (top right).