From 9e3972098f8ec0f2202e327a2920aff0f6f86838 Mon Sep 17 00:00:00 2001
From: Conda Bot <18747875+conda-bot@users.noreply.github.com>
Date: Sun, 18 Aug 2024 02:46:20 +0000
Subject: [PATCH] =?UTF-8?q?=F0=9F=A4=96=20updated=20file(s)?=
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 | 12 +-
.../pull_request_template_details.md | 15 +
.github/workflows/cla.yml | 2 +-
.github/workflows/labels.yml | 23 +-
.github/workflows/lock.yml | 3 +-
.github/workflows/stale.yml | 2 +-
CODE_OF_CONDUCT.md | 289 +++++++++++-
HOW_WE_USE_GITHUB.md | 56 ++-
RELEASE.md | 437 ++++++++++++++++++
rever.xsh | 2 +
14 files changed, 810 insertions(+), 84 deletions(-)
create mode 100644 .github/template-files/templates/pull_request_template_details.md
create mode 100644 RELEASE.md
diff --git a/.github/ISSUE_TEMPLATE/0_bug.yml b/.github/ISSUE_TEMPLATE/0_bug.yml
index a53f6fb..290dba3 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/conda-index` better. We would be unable to improve `conda/conda-index` 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 bc022b4..5da11cd 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/conda-index` better. We would be unable to improve `conda/conda-index` 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 f3ce040..56e2fb8 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 9b3637f..41289b2 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/conda-index` better. We would be unable to improve `conda/conda-index` without our community!
+
- type: checkboxes
id: checks
attributes:
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 7e05692..bb57c15 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -11,18 +11,20 @@
### Checklist - did you ...
+ please either tick them or use ~strikethrough~ so we know you've gone
+ through the checklist. -->
-- [ ] Add a file to the `news` directory ([using the template](../blob/main/news/TEMPLATE)) for the next release's release notes?
+- [ ] Add a file to the `news` directory ([using the template](https://github.com/conda/conda-index/blob/main/news/TEMPLATE)) for the next release's release notes?
+ - etc -->
- [ ] Add / update necessary tests?
- [ ] Add / update outdated documentation?
+
+ - Conda Org COC: https://github.com/conda/conda-index/blob/main/CODE_OF_CONDUCT.md
+ - Contributing docs: https://github.com/conda/conda-index/blob/main/CONTRIBUTING.md -->
diff --git a/.github/template-files/templates/pull_request_template_details.md b/.github/template-files/templates/pull_request_template_details.md
new file mode 100644
index 0000000..bd2afd3
--- /dev/null
+++ b/.github/template-files/templates/pull_request_template_details.md
@@ -0,0 +1,15 @@
+### Checklist - did you ...
+
+
+
+- [ ] Add a file to the `news` directory ([using the template](https://github.com/conda/conda-index/blob/main/news/TEMPLATE)) for the next release's release notes?
+
+- [ ] Add / update necessary tests?
+- [ ] Add / update outdated documentation?
diff --git a/.github/workflows/cla.yml b/.github/workflows/cla.yml
index 66df3b0..ddc0516 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/labels.yml b/.github/workflows/labels.yml
index 0189478..6fd0935 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 }}
diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml
index 0b63dec..65f8f40 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 bde3340..9d23fbe 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
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
index 663464f..dfcca8e 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 16f9fcf..727c3c4 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/conda-index/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/conda-index/blob/main/.github/workflows/cla.yml
+[workflow-issues]: https://github.com/conda/conda-index/blob/main/.github/workflows/issues.yml
+[workflow-labels]: https://github.com/conda/conda-index/blob/main/.github/workflows/labels.yml
+[workflow-lock]: https://github.com/conda/conda-index/blob/main/.github/workflows/lock.yml
+[workflow-project]: https://github.com/conda/conda-index/blob/main/.github/workflows/project.yml
+[workflow-stale]: https://github.com/conda/conda-index/blob/main/.github/workflows/stale.yml
+[labels-local]: https://github.com/conda/conda-index/blob/main/.github/labels.yml
+[labels-page]: https://github.com/conda/conda-index/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/conda-index/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/conda-index/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/conda-index/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/conda-index/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/conda-index/labels/pending%3A%3Afeedback with https://github.com/conda/conda-index/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/conda-index/labels/type%3A%3Abug, https://github.com/conda/conda-index/labels/type%3A%3Afeature, and https://github.com/conda/conda-index/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/conda-index/labels/os%3A%3Alinux, https://github.com/conda/conda-index/labels/os%3A%3Amacos, and https://github.com/conda/conda-index/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/conda-index/labels/type%3A%3Asupport, that issue will be marked https://github.com/conda/conda-index/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/conda-index/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/conda-index/labels/duplicate label to the issue being closed and https://github.com/conda/conda-index/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/conda-index/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/conda-index/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
diff --git a/RELEASE.md b/RELEASE.md
new file mode 100644
index 0000000..4de2838
--- /dev/null
+++ b/RELEASE.md
@@ -0,0 +1,437 @@
+
+
+[epic template]: https://github.com/conda/conda-index/issues/new?assignees=&labels=epic&template=epic.yml
+[compare]: https://github.com/conda/conda-index/compare
+[new release]: https://github.com/conda/conda-index/releases/new
+[infrastructure]: https://github.com/conda/infrastructure
+[rever docs]: https://regro.github.io/rever-docs
+[release docs]: https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes
+[merge conflicts]: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/about-merge-conflicts
+[Anaconda Recipes]: https://github.com/AnacondaRecipes/conda-index-feedstock
+[conda-forge]: https://github.com/conda-forge/conda-index-feedstock
+
+# Release Process
+
+> [!NOTE]
+> Throughout this document are references to the version number as `MAJOR.MINOR.[$patch_number]`, this should be replaced with the correct version number. Do **not** prefix the version with a lowercase `v`.
+
+## 1. Open the release issue and cut a release branch. (do this ~1 week prior to release)
+
+> [!NOTE]
+> The new release branch should adhere to the naming convention of `MAJOR.MINOR.x` (make sure to put the `.x` at the end!). In the case of patch/hotfix releases, however, do NOT cut a new release branch; instead, use the previously-cut release branch with the appropriate `MAJOR.MINOR.x` version numbers.
+
+Use the issue template below to create the release issue. After creating the release issue, pin it for easy access.
+
+
+Release Template
+
+```markdown
+### Summary
+
+Placeholder for `conda-index MAJOR.MINOR.x` release.
+
+| Pilot | |
+|---|---|
+| Co-pilot | |
+
+### Tasks
+
+[milestone]: https://github.com/conda/conda-index/milestone/
+[process]: https://github.com/conda/conda-index/blob/main/RELEASE.md
+[releases]: https://github.com/conda/conda-index/releases
+[main]: https://github.com/AnacondaRecipes/conda-index-feedstock
+[conda-forge]: https://github.com/conda-forge/conda-index-feedstock
+[ReadTheDocs]: https://readthedocs.com/projects/continuumio-conda-index/
+
+
+The week before release week
+
+- [ ] Create release branch (named `MAJOR.MINOR.x`)
+- [ ] Ensure release candidates are being successfully built (see `conda-canary/label/rc-conda-index-MAJOR.MINOR.x`)
+- [ ] [Complete outstanding PRs][milestone]
+- [ ] Test release candidates
+
+
+
+
+
+Release week
+
+- [ ] Create release PR (see [release process][process])
+- [ ] [Publish release][releases]
+- [ ] Merge `MAJOR.MINOR.x` back into `main`
+- [ ] Activate the `MAJOR.MINOR.x` branch on [ReadTheDocs][ReadTheDocs]
+- [ ] Feedstocks
+ - [ ] Bump version & update dependencies/tests in [Anaconda, Inc.'s feedstock][main]
+ - [ ] Bump version & update dependencies/tests in [conda-forge feedstock][conda-forge]
+
+- [ ] Hand off to the Anaconda packaging team
+- [ ] Announce release
+ - Blog Post (optional)
+ - [ ] conda.org (link to pull request)
+ - Long form
+ - [ ] Create release [announcement draft](https://github.com/conda/communications)
+ - [ ] [Discourse](https://conda.discourse.group/)
+ - [ ] [Matrix (conda/conda)](https://matrix.to/#/#conda_conda:gitter.im) (this auto posts from Discourse)
+ - Summary
+ - [ ] [Twitter](https://twitter.com/condaproject)
+
+
+```
+
+
+If a patch release is necessary, reopen the original release issue and append the following template to the release issue summary.
+
+
+Patch Release Template
+
+```markdown
+
+Patch MAJOR.MINOR.[$patch_number]
+
+- [ ]
+- [ ] Create release PR (see [release process][process])
+- [ ] [Publish release][releases]
+- [ ] Merge `MAJOR.MINOR.x` back into `main`
+- [ ] Feedstocks
+ - [ ] Bump version & update dependencies/tests in [Anaconda, Inc.'s feedstock][main]
+ - [ ] Bump version & update dependencies/tests in [conda-forge feedstock][conda-forge]
+- [ ] Hand off to the Anaconda packaging team
+
+
+```
+
+
+
+> [!NOTE]
+> The [epic template][epic template] is perfect for this; remember to remove the **`epic`** label.
+
+## 2. Alert various parties of the upcoming release. (do this ~1 week prior to release)
+
+Let various interested parties know about the upcoming release; at minimum, conda-forge maintainers should be informed. For major features, a blog post describing the new features should be prepared and posted once the release is completed (see the announcements section of the release issue).
+
+## 3. Manually test canary build(s).
+
+### Canary Builds for Manual Testing
+
+Once the release PRs are filed, successful canary builds will be available on `https://anaconda.org/conda-canary/conda/files?channel=rc-conda-index-MAJOR.MINOR.x` for manual testing.
+
+> [!NOTE]
+> You do not need to apply the `build::review` label for release PRs; every commit to the release branch builds and uploads canary builds to the respective `rc-` label.
+
+## 4. Ensure `rever.xsh` and `news/TEMPLATE` are up to date.
+
+These are synced from [`conda/infrastructure`][infrastructure].
+
+
+5. Run rever. (ideally done on the Monday of release week)
+
+Currently, there are only 2 activities we use rever for, (1) aggregating the authors and (2) updating the changelog. Aggregating the authors can be an error-prone process and also suffers from builtin race conditions (_i.e._, to generate an updated `.authors.yml` we need an updated `.mailmap` but to have an updated `.mailmap` we need an updated `.authors.yml`). This is why the following steps are very heavy-handed (and potentially repetitive) in running rever commands, undoing commits, squashing/reordering commits, etc.
+
+1. Install [`rever`][rever docs] and activate the environment:
+
+ ```bash
+ $ conda create -n rever conda-forge::rever
+ $ conda activate rever
+ (rever) $
+ ```
+
+2. Clone and `cd` into the repository if you haven't done so already:
+
+ ```bash
+ (rever) $ git clone git@github.com:/conda-index.git
+ (rever) $ cd conda
+ ```
+
+2. Fetch the latest changes from the remote and checkout the release branch created a week ago:
+
+ ```bash
+ (rever) $ git fetch upstream
+ (rever) $ git checkout MAJOR.MINOR.x
+ ```
+
+2. Create a versioned branch, this is where rever will make its changes:
+
+ ```bash
+ (rever) $ git checkout -b changelog-MAJOR.MINOR.[$patch_number]
+ ```
+
+2. Run `rever --activities authors `:
+
+ > **Note:**
+ > Include `--force` when re-running any rever commands for the same ``, otherwise, rever will skip the activity and no changes will be made (i.e., rever remembers if an activity has been run for a given version).
+
+ ```bash
+ (rever) $ rever --activities authors --force
+ ```
+
+ - If rever finds that any of the authors are not correctly represented in `.authors.yml` it will produce an error. If the author that the error pertains to is:
+ - **a new contributor**: the snippet suggested by rever should be added to the `.authors.yml` file.
+ - **an existing contributor**, a result of using a new name/email combo: find the existing author in `.authors.yml` and add the new name/email combo to that author's `aliases` and `alterative_emails`.
+
+ - Once you have successfully run `rever --activities authors` with no errors, review the commit made by rever. This commit will contain updates to one or more of the author files (`.authors.yml`, `.mailmap`, and `AUTHORS.md`). Due to the race condition between `.authors.yml` and `.mailmap`, we want to extract changes made to any of the following keys in `.authors.yml` and commit them separately from the other changes in the rever commit:
+ - `name`
+ - `email`
+ - `github`
+ - `aliases`
+ - `alternate_emails`
+
+ Other keys (e.g., `num_commits` and `first_commit`) do not need to be included in this separate commit as they will be overwritten by rever.
+
+ - Here's a sample run where we undo the commit made by rever in order to commit the changes to `.authors.yml` separately:
+
+ ```bash
+ (rever) $ rever --activities authors --force MAJOR.MINOR.[$patch_number]
+
+ # changes were made to .authors.yml as per the prior bullet
+ (rever) $ git diff --name-only HEAD HEAD~1
+ .authors.yml
+ .mailmap
+ AUTHORS.md
+
+ # undo commit
+ (rever) $ git reset --soft HEAD~1
+
+ # undo changes made to everything except .authors.yml
+ (rever) $ git restore --staged --worktree .mailmap AUTHORS.md
+ ```
+
+ - Commit these changes to `.authors.yml`:
+
+ ```bash
+ (rever) $ git add .
+ (rever) $ git commit -m "Update .authors.yml"
+ ```
+
+ - Rerun `rever --activities authors --force ` and finally check that your `.mailmap` is correct by running:
+
+ ```bash
+ git shortlog -se
+ ```
+
+ Compare this list with `AUTHORS.md`. If they have any discrepancies, additional modifications to `.authors.yml` is needed, so repeat the above steps as needed.
+
+ - Once you are pleased with how the author's file looks, we want to undo the rever commit and commit the `.mailmap` changes separately:
+
+ ```bash
+ # undo commit (but preserve changes)
+ (rever) $ git reset --soft HEAD~1
+
+ # undo changes made to everything except .mailmap
+ (rever) $ git restore --staged --worktree .authors.yml AUTHORS.md
+ ```
+
+ - Commit these changes to `.mailmap`:
+
+ ```bash
+ (rever) $ git add .
+ (rever) $ git commit -m "Update .mailmap"
+ ```
+
+ - Continue repeating the above processes until the `.authors.yml` and `.mailmap` are corrected to your liking. After completing this, you will have at most two commits on your release branch:
+
+ ```bash
+ (rever) $ git cherry -v
+ + 86957814cf235879498ed7806029b8ff5f400034 Update .authors.yml
+ + 3ec7491f2f58494a62f1491987d66f499f8113ad Update .mailmap
+ ```
+
+
+4. Review news snippets (ensure they are all using the correct Markdown format, **not** reStructuredText) and add additional snippets for undocumented PRs/changes as necessary.
+
+ > **Note:**
+ > We've found it useful to name news snippets with the following format: `-`.
+ >
+ > We've also found that we like to include the PR #s inline with the text itself, e.g.:
+ >
+ > ```markdown
+ > ## Enhancements
+ >
+ > * Add `win-arm64` as a known platform (subdir). (#11778)
+ > ```
+
+ - You can utilize [GitHub's compare view][compare] to review what changes are to be included in this release. Make sure you compare the current release branch against the previous one (e.g., `24.5.x` would be compared against `24.3.x`)
+
+ - Add a new news snippet for any PRs of importance that are missing.
+
+ - Commit these changes to news snippets:
+
+ ```bash
+ (rever) $ git add .
+ (rever) $ git commit -m "Update news"
+ ```
+
+ - After completing this, you will have at most three commits on your release branch:
+
+ ```bash
+ (rever) $ git cherry -v
+ + 86957814cf235879498ed7806029b8ff5f400034 Update .authors.yml
+ + 3ec7491f2f58494a62f1491987d66f499f8113ad Update .mailmap
+ + 432a9e1b41a3dec8f95a7556632f9a93fdf029fd Update news
+ ```
+
+5. Run `rever --activities changelog`:
+
+ > **Note:**
+ > This has previously been a notoriously fickle step (likely due to incorrect regex patterns in the `rever.xsh` config file and missing `github` keys in `.authors.yml`) so beware of potential hiccups. If this fails, it's highly likely to be an innocent issue.
+
+ ```bash
+ (rever) $ rever --activities changelog --force
+ ```
+
+ - Any necessary modifications to `.authors.yml`, `.mailmap`, or the news snippets themselves should be amended to the previous commits.
+
+ - Once you have successfully run `rever --activities changelog` with no errors simply revert the last commit (see the next step for why):
+
+ ```bash
+ # undo commit (and discard changes)
+ (rever) $ git reset --hard HEAD~1
+ ```
+
+ - After completing this, you will have at most three commits on your release branch:
+
+ ```bash
+ (rever) $ git cherry -v
+ + 86957814cf235879498ed7806029b8ff5f400034 Update .authors.yml
+ + 3ec7491f2f58494a62f1491987d66f499f8113ad Update .mailmap
+ + 432a9e1b41a3dec8f95a7556632f9a93fdf029fd Update news
+ ```
+
+6. Now that we have successfully run the activities separately, we wish to run both together. This will ensure that the contributor list, a side-effect of the authors activity, is included in the changelog activity.
+
+ ```bash
+ (rever) $ rever --force
+ ```
+
+ - After completing this, you will have at most five commits on your release branch:
+
+ ```bash
+ (rever) $ git cherry -v
+ + 86957814cf235879498ed7806029b8ff5f400034 Update .authors.yml
+ + 3ec7491f2f58494a62f1491987d66f499f8113ad Update .mailmap
+ + 432a9e1b41a3dec8f95a7556632f9a93fdf029fd Update news
+ + a5c0db938893d2c12cab12a1f7eb3e646ed80373 Update authorship for MAJOR.MINOR.[$patch_number]
+ + 5e95169d0df4bcdc2da9a6ba4a2561d90e49f75d Update CHANGELOG for MAJOR.MINOR.[$patch_number]
+ ```
+
+7. Since rever does not include stats on first-time contributors, we will need to add this manually.
+
+ - Use [GitHub's auto-generated release notes][new release] to get a list of all new contributors (and their first PR) and manually merge this list with the contributor list in `CHANGELOG.md`. See [GitHub docs][release docs] for how to auto-generate the release notes.
+
+ - Commit these final changes:
+
+ ```bash
+ (rever) $ git add .
+ (rever) $ git commit -m "Add first-time contributions"
+ ```
+
+ - After completing this, you will have at most six commits on your release branch:
+
+ ```bash
+ (rever) $ git cherry -v
+ + 86957814cf235879498ed7806029b8ff5f400034 Update .authors.yml
+ + 3ec7491f2f58494a62f1491987d66f499f8113ad Update .mailmap
+ + 432a9e1b41a3dec8f95a7556632f9a93fdf029fd Update news
+ + a5c0db938893d2c12cab12a1f7eb3e646ed80373 Update authorship for MAJOR.MINOR.[$patch_number]
+ + 5e95169d0df4bcdc2da9a6ba4a2561d90e49f75d Update CHANGELOG for MAJOR.MINOR.[$patch_number]
+ + 93fdf029fd4cf235872c12cab12a1f7e8f95a755 Add first-time contributions
+ ```
+
+8. Push this versioned branch.
+
+ ```bash
+ (rever) $ git push -u upstream changelog-MAJOR.MINOR.[$patch_number]
+ ```
+
+9. Open the Release PR targing the `MAJOR.MINOR.x` branch.
+
+
+ GitHub PR Template
+
+ ```markdown
+ ## Description
+
+ ✂️ snip snip ✂️ the making of a new release.
+
+ Xref #
+ ```
+
+
+
+10. Update release issue to include a link to the release PR.
+
+11. [Create][new release] the release and **SAVE AS A DRAFT** with the following values:
+
+ > **Note:**
+ > Only publish the release after the release PR is merged, until then always **save as draft**.
+
+ | Field | Value |
+ |---|---|
+ | Choose a tag | `MAJOR.MINOR.[$patch_number]` |
+ | Target | `MAJOR.MINOR.x` |
+ | Body | copy/paste blurb from `CHANGELOG.md` |
+
+
+
+## 6. Wait for review and approval of release PR.
+
+## 7. Merge release PR and publish release.
+
+To publish the release, go to the project's release page (e.g., https://github.com/conda/conda/releases) and add the release notes from `CHANGELOG.md` to the draft release you created earlier. Then publish the release.
+
+> [!NOTE]
+> Release notes can be drafted and saved ahead of time.
+
+## 8. Merge/cherry pick the release branch over to the `main` branch.
+
+
+Internal process
+
+1. From the main "< > Code" page of the repository, select the drop down menu next to the `main` branch button and then select "View all branches" at the very bottom.
+
+2. Find the applicable `MAJOR.MINOR.x` branch and click the "New pull request" button.
+
+3. "Base" should point to `main` while "Compare" should point to `MAJOR.MINOR.x`.
+
+4. Ensure that all of the commits being pulled in look accurate, then select "Create pull request".
+
+> [!NOTE]
+> Make sure NOT to push the "Update Branch" button. If there are [merge conflicts][merge conflicts], create a temporary "connector branch" dedicated to fixing merge conflicts separately from the `MAJOR.MINOR.x` and `main` branches.
+
+5. Review and merge the pull request the same as any code change pull request.
+
+> [!NOTE]
+> The commits from the release branch need to be retained in order to be able to compare individual commits; in other words, a "merge commit" is required when merging the resulting pull request vs. a "squash merge". Protected branches will require permissions to be temporarily relaxed in order to enable this action.
+
+
+
+## 9. Open PRs to bump [Anaconda Recipes][Anaconda Recipes] and [conda-forge][conda-forge] feedstocks to use `MAJOR.MINOR.[$patch_number]`.
+
+> [!NOTE]
+> Conda-forge's PRs will be auto-created via the `regro-cf-autotick-bot`. Follow the instructions below if any changes need to be made to the recipe that were not automatically added (these instructions are only necessary for anyone who is _not_ a conda-forge feedstock maintainer, since maintainers can push changes directly to the autotick branch):
+> - Create a new branch based off of autotick's branch (autotick's branches usually use the `regro-cf-autotick-bot:XX.YY.[$patch_number]_[short hash]` syntax)
+> - Add any changes via commits to that new branch
+> - Open a new PR and push it against the `main` branch
+>
+> Make sure to include a comment on the original `autotick-bot` PR that a new pull request has been created, in order to avoid duplicating work! `regro-cf-autotick-bot` will close the auto-created PR once the new PR is merged.
+>
+> For more information about this process, please read the ["Pushing to regro-cf-autotick-bot branch" section of the conda-forge documentation](https://conda-forge.org/docs/maintainer/updating_pkgs.html#pushing-to-regro-cf-autotick-bot-branch).
+
+
+## 10. Hand off to Anaconda's packaging team.
+
+> [!NOTE]
+> This step should NOT be done past Thursday morning EST; please start the process on a Monday, Tuesday, or Wednesday instead in order to avoid any potential debugging sessions over evenings or weekends.
+
+
+Internal process
+
+1. Open packaging request in #package_requests Slack channel, include links to the Release PR and feedstock PRs.
+
+2. Message packaging team/PM to let them know that a release has occurred and that you are the release manager.
+
+
+
+## 11. Continue championing and shepherding.
+
+Remember to make all relevant announcements and continue to update the release issue with the latest details as tasks are completed.
diff --git a/rever.xsh b/rever.xsh
index 577ecfa..c25154f 100644
--- a/rever.xsh
+++ b/rever.xsh
@@ -1,3 +1,5 @@
+# edit this in https://github.com/conda/infrastructure
+
$ACTIVITIES = ["authors", "changelog"]
# Basic settings