diff --git a/llvm/docs/CodeOfConduct.rst b/llvm/docs/CodeOfConduct.rst --- a/llvm/docs/CodeOfConduct.rst +++ b/llvm/docs/CodeOfConduct.rst @@ -2,11 +2,6 @@ LLVM Community Code of Conduct ============================== -.. note:: - - This document is currently a **DRAFT** document while it is being discussed - by the community. - The LLVM community has always worked to be a welcoming and respectful community, and we want to ensure that doesn't change as we grow and evolve. To that end, we have a few ground rules that we ask people to adhere to: @@ -33,7 +28,7 @@ amounts to an egregious violation of this code. If you believe someone is violating the code of conduct, we ask that you report -it by emailing conduct@llvm.org. For more details please see our +it by emailing conduct@llvm.org. For more details please see the :doc:`Reporting Guide `. .. _be friendly and patient: @@ -97,11 +92,66 @@ err and blaming each other doesn't get us anywhere. Instead, focus on helping to resolve issues and learning from mistakes. +Reporting +========= + +If you believe someone is violating the code of conduct you can always report +it to the LLVM Foundation Code of Conduct Committee by emailing +conduct@llvm.org. All reports will be kept confidential. This isn't a public +list and only members of the advisory committee will receive the report. For +details on what to include in the report, please see the :doc:`Reporting Guide +`. + +If you believe anyone is in physical danger, please notify appropriate law +enforcement first. If you are unsure what law enforcement agency is +appropriate, please include this in your report and we will attempt to notify +them. + +If the violation occurs at an event such as a Developer Meeting and requires +immediate attention, you can also reach out to any of the event organizers or +staff. Event organizers and staff will be prepared to handle the incident and +able to help. If you cannot find one of the organizers, the venue staff can +locate one for you. We will also post detailed contact information for specific +events as part of each events’ information. In person reports will still be +kept confidential exactly as above, but also feel free to (anonymously if +needed) email conduct@llvm.org. + +Code of Conduct Committee +========================= + +The committee will consist of a mininum of 5 members and members are asked to +serve at least a 1 year term. New committee members will be selected by the +current committee and the LLVM Foundation Board of Directors. + +When responding to a Code of Conduct report, the committee follows the +following +:doc:`Response Guide`. + +The current committee members are: + +* Kit Barton (kbarton\@llvm.org) +* Kristof Beyls (kristof.beyls\@llvm.org) +* Mike Edwards (medwards\@llvm.org) +* Hal Finkel (hfinkel\@llvm.org) +* Cyndy Ishida (cishida\@llvm.org) +* Anton Korobeynikov (anton.korobeynikov\@llvm.org) +* Tanya Lattner (tanyalattner\@llvm.org) +* Chris Lattner (clattner\@llvm.org) +* Tom Stellard (tstellar\@llvm.org) + + +Transparency Reports +==================== + +There are currently no transparency reports. + +For details about what a Transparency Report is and what it contains, please see the :doc:`Response Guide`. + Questions? ========== If you have questions, please feel free to contact the LLVM Foundation Code of -Conduct Advisory Committee by emailing conduct@llvm.org. +Conduct Committee by emailing conduct@llvm.org. (This text is based on the `Django Project`_ Code of Conduct, which is in turn diff --git a/llvm/docs/ReportingGuide.rst b/llvm/docs/ReportingGuide.rst --- a/llvm/docs/ReportingGuide.rst +++ b/llvm/docs/ReportingGuide.rst @@ -1,143 +1,109 @@ -=============== -Reporting Guide -=============== - -.. note:: - - This document is currently a **DRAFT** document while it is being discussed - by the community. - -If you believe someone is violating the :doc:`code of conduct ` -you can always report it to the LLVM Foundation Code of Conduct Advisory -Committee by emailing conduct@llvm.org. **All reports will be kept -confidential.** This isn't a public list and only `members`_ of the advisory -committee will receive the report. - -If you believe anyone is in **physical danger**, please notify appropriate law +================================= +LLVM CoC Incident Reporting Guide +================================= + +First of all, please do not feel like you may be a burden to us by reporting +incidents. We consider reports an opportunity for us to act: by knowing about +an incident, we can act on it if appropriate, and reduce continuation of +problematic behavior. If we don’t know, we can't learn or take any appropriate +actions. + +If you are not sure the situation being reported was a :doc:`Code of +Conduct` violation, we encourage you to still report it. We +would much rather have reports where we decide to take no action, rather than +miss a report of an actual violation. There is no harm in reporting an incident +which is later determined not to be a violation, and knowing about incidents +that are not violations can also help us to improve the Code of Conduct or the +processes surrounding it. + +Reporting and Contact Information +================================= + +* For any incident involving an online platform (e.g., mailing lists, forums, + irc/discord/slack, etc) we ask that you make any reports by emailing + conduct@llvm.org. This is received by all members of the CoC Committee. + +* For LLVM Developers’ Meetings, please file a report with the on-site Code + of Conduct team. Their names and contact details are listed on the event + webpage. You can also approach any other staff member, who can be + identified by special badges and often found at the registration desk, + to help you locate a member of the Code of Conduct team. All incidents + reported in-person at a LLVM Developers’ Meeting will be emailed to the + Code of Conduct Committee. + +* For meetups, please report the incident to the local meetup organizers first + and then email conduct@llvm.org with your report. Each meetup will have a + contact listed on the associated meetup page. If you feel the incident was + not well handled by the local organizers, please include this information in + your email to conduct@llvm.org. All meetup organizers who receive an + in-person report are also asked to email conduct@llvm.org with the + incident information. + + +If you believe anyone is in physical danger, please notify appropriate law enforcement first. If you are unsure what law enforcement agency is appropriate, please include this in your report and we will attempt to notify them. -If the violation occurs at an event such as a Developer Meeting and requires -immediate attention, you can also reach out to any of the event organizers or -staff. Event organizers and staff will be prepared to handle the incident and -able to help. If you cannot find one of the organizers, the venue staff can -locate one for you. We will also post detailed contact information for specific -events as part of each events' information. In person reports will still be -kept confidential exactly as above, but also feel free to (anonymously if -needed) email conduct@llvm.org. - -.. note:: - The LLVM community has long handled inappropriate behavior on its own, using - both private communication and public responses. Nothing in this document is - intended to discourage this self enforcement of community norms. Instead, - the mechanisms described here are intended to supplement any self - enforcement within the community. They provide avenues for handling severe - cases or cases where the reporting party does not wish to respond directly - for any reason. - -Filing a report -=============== +Guidelines for Reporting Incidents +================================== -Reports can be as formal or informal as needed for the situation at hand. If -possible, please include as much information as you can. If you feel -comfortable, please consider including: +Please email conduct@llvm.org with the following details (if possible): -* Your contact info (so we can get in touch with you if we need to follow up). -* Names (real, nicknames, or pseudonyms) of any individuals involved. If there - were other witnesses besides you, please try to include them as well. +* Your contact info (so we can get in touch with you). Include email and + optionally a phone number. +* Names or descriptions of anyone who was involved or who witnessed the + incident. * When and where the incident occurred. Please be as specific as possible. -* Your account of what occurred. If there is a publicly available record (e.g. - a mailing list archive or a public IRC logger) please include a link. +* Your account of what occurred. If there is a written record (e.g. emails, + forum links, tweets, Slack, or Discord messages) please include screenshots, + as well as any available link. * Any extra context you believe existed for the incident. * If you believe this incident is ongoing. +* If you have concerns about retaliation or your personal safety, please note + those concerns in your report. * Any other information you believe we should have. -What happens after you file a report? -===================================== - -You will receive an email from the advisory committee acknowledging receipt -within 24 hours (and we will aim to respond much quicker than that). - -The advisory committee will immediately meet to review the incident and try to -determine: - -* What happened and who was involved. -* Whether this event constitutes a code of conduct violation. -* Whether this is an ongoing situation, or if there is a threat to anyone's - physical safety. - -If this is determined to be an ongoing incident or a threat to physical safety, -the working groups' immediate priority will be to protect everyone involved. -This means we may delay an "official" response until we believe that the -situation has ended and that everyone is physically safe. +If you are unable to provide all of this information, please still make the +report and include as much information as you have. -The working group will try to contact other parties involved or witnessing the -event to gain clarity on what happened and understand any different -perspectives. +When handling a report, we follow our :doc:`Response Guide `. -Once the advisory committee has a complete account of the events they will make -a decision as to how to respond. Responses may include: - -* Nothing, if we determine no violation occurred or it has already been - appropriately resolved. -* Providing either moderation or mediation to ongoing interactions (where - appropriate, safe, and desired by both parties). -* A private reprimand from the working group to the individuals involved. -* An imposed vacation (i.e. asking someone to "take a week off" from a mailing - list or IRC). -* A public reprimand. -* A permanent or temporary ban from some or all LLVM spaces (mailing lists, - IRC, etc.) -* Involvement of relevant law enforcement if appropriate. - -If the situation is not resolved within one week, we'll respond within one week -to the original reporter with an update and explanation. - -Once we've determined our response, we will separately contact the original -reporter and other individuals to let them know what actions (if any) we'll be -taking. We will take into account feedback from the individuals involved on the -appropriateness of our response, but we don't guarantee we'll act on it. - -After any incident, the advisory committee will make a report on the situation -to the LLVM Foundation board. The board may choose to make a public statement -about the incident. If that's the case, the identities of anyone involved will -remain confidential unless instructed by those individuals otherwise. - -Appealing -========= - -Only permanent resolutions (such as bans) or requests for public actions may be -appealed. To appeal a decision of the working group, contact the LLVM -Foundation board at board@llvm.org with your appeal and the board will review -the case. - -In general, it is **not** appropriate to appeal a particular decision on -a public mailing list. Doing so would involve disclosure of information which -would be confidential. Disclosing this kind of information publicly may be -considered a separate and (potentially) more serious violation of the Code of -Conduct. This is not meant to limit discussion of the Code of Conduct, the -advisory board itself, or the appropriateness of responses in general, but -**please** refrain from mentioning specific facts about cases without the -explicit permission of all parties involved. - -.. _members: +Confidentiality +=============== -Members of the Code of Conduct Advisory Committee -================================================= +All reports will be kept confidential with details shared only with the Code of +Conduct committee members. In the case that a CoC committee member is involved +in a report, the member will be asked to recuse themselves from ongoing +conversations, and they will not have access to any reports at any time. +Resolution action may also include removal of that member from the CoC +committee. -The members serving on the advisory committee are listed here with contact -information in case you are more comfortable talking directly to a specific -member of the committee. +Some incidents happen in one-on-one interactions, and though details are +anonymized, the reported person may be able to guess who made the report. If +you have concerns about retaliation or your personal safety, please note those +concerns in your report. You are still encouraged to report the incident so +that we can support you while keeping our community members safe. In some +cases, we can compile several anonymized reports into a pattern of behavior, +and take action on that pattern. -.. note:: +Transparency reports will be published but will retain confidentiality. See the +:doc:`Response Guide `. for details on this. - FIXME: When we form the initial advisory committee, the members names and private contact info need to be added here. +Following Up With Reporter(s) +============================= +Once a report is filed, the Code of Conduct committee will handle the review +and follow up according to the procedures in the :doc:`Response Guide +`. -(This text is based on the `Django Project`_ Code of Conduct, which is in turn -based on wording from the `Speak Up! project`_.) +Thanks! +======= +This guide was created and inspired by the following: the `Django Project`_, +`Carpentries Response Guide`_, and the `Write The Docs Response Guide`_. .. _Django Project: https://www.djangoproject.com/conduct/ -.. _Speak Up! project: http://speakup.io/coc.html +.. _Carpentries Response Guide: https://docs.carpentries.org/topic_folders/policies/enforcement-guidelines.html +.. _Write The Docs Response Guide: https://www.writethedocs.org/code-of-conduct/#guidelines-for-reporting-incidents + diff --git a/llvm/docs/ResponseGuide.rst b/llvm/docs/ResponseGuide.rst new file mode 100644 --- /dev/null +++ b/llvm/docs/ResponseGuide.rst @@ -0,0 +1,300 @@ +=============== +Response Guide +=============== + +This is a :doc:`Code of Conduct` (CoC) incident response guide +used by the Code of Conduct Committee and LLVM event organizers. + +Code of Conduct Committee +========================= + +All responses to Code of Conduct reports will be managed by a Code of Conduct +Committee. + +Additional Code of Conduct Response Teams +========================================= + +In-person events will have an additional response team to immediately respond +to an incident. For example: + +* Each LLVM Developers’ Meeting has a Code of Conduct response team. +* For LLVM meetups, the local organizers will be the first point of contact. +* Any other event funded by the LLVM Foundation or listed on the LLVM website, + will have a code of conduct response team or point of contact for CoC + reports. + +These teams should determine if an :ref:`immediate response` is needed before sending the report to the Code of Conduct +committee. + +.. _Receiving a report: + +Receiving a Report +================== + +Reports are typically received by email (conduct@llvm.org) or in person from +the reporter or event CoC response team. + +When receiving a report by email, the CoC Committee should acknowledge receipt +within 24 hours. The acknowledgement should be understanding and compassionate +but no commitment should be made on whether this is a violation or which action +will be taken. Specific guidance is in the checklist below. + +For in-person events that have a violation reported, the report should be sent +to the Code of Conduct committee within 24 hours by the on-site CoC response +team. + + +.. _Immediate Response Checklist: + +Immediate Response Checklist +============================ + +The CoC committee generally works, decides, and communicates together. If the +report indicates that an immediate response is required and other committee +members are not available, any committee member may take the immediate action +they think is necessary. In-person Code of Conduct response teams should use +this checklist to determine if an immediate response is needed. + +* If the incident involves physical danger, contact the appropriate law + enforcement or event security immediately. Ensure the reporter feels safe and + stay with them if possible until help arrives. +* If the act is ongoing and involves harassment or threats against someone in + any space (online or physical), any appropriate response (e.g., ban, physical + removal, or moderation) may be used to immediately stop it. +* For events that include talks, organizers should end talks early if the + violations include harassment or violent threats. There may be talks where + other types of code of conduct violations occur and organizers should do + their best to determine if a talk should be ended early or not. + +When undertaking an immediate response, document the action and notify the +committee within 24 hours. + + +Response Procedure +================== + +The following is a summary of the steps the committee takes when responding to +a reported incident. + +1. Determine if there is a need for an :ref:`immediate response`. + +2. :ref:`Acknowledge the report` within 24 hours. + +3. :ref:`Discuss the incident report`, gather + more information, and determine a :ref:`resolution`. + +4. During this process, the :ref:`reporter will be informed of the + resolution` and feedback is requested. This + feedback may or may not be used to re-evaluate the resolution. + +5. Inform the reportee of the resolution. The reportee is provided options to + :ref:`appeal`. + +6. The :ref:`resolution` is implemented. + +7. All reports, data, notes, and resolutions are logged in a private location + (e.g., Google Drive or other database). + +The committee will never make public statements about a resolution and will +only publish :ref:`transparency reports`. If a public +statement is necessary and requested by the committee, it will be given by the +LLVM Foundation Board of Directors. + +Report Acknowledgement +====================== + +When a report is received, the committee will reply to the reporter to confirm +receipt within 24 hours of the incident being reported. + +This acknowledgement will contain: + +* Acknowledgement of the incident report +* Next steps of the committee for responding to the incident +* Reminder of confidentiality policy regarding the report and parties involved + +All incident reports should be assessed if they require immediate response and +acted on accordingly. + +.. _Incident Response Assessment: + +Incident Response Assessment +============================ + +The committee will assess the incident and determine an appropriate response. +The assessment will be documented and retained in records. Here are some +guidelines for the process: + +* Review report documentation to determine the content and context of the + incident. + + * Request additional information if needed from the reporter. + +* Determine if it occurred within the scope of the CoC. +* Determine if it violated the CoC and specifically which part. +* Consult documentation of past incidents for patterns of behavior (if + available and applicable). +* Follow up with the reportee to get their view or any other additional + information. +* Determine appropriate resolutions to the incident when all information has + been gathered. +* Notify the reporter of the resolution and request feedback. This may or may + not be used to reevaluate the resolution. + +The committee will aim to have a resolution agreed upon within two weeks of +receipt of the incident report. In the event that a resolution cannot be +determined within that time, the CoC committee will respond to the reporter(s) +with an updated and projected timeline for resolution. + +.. _Following Up With the Reportee: + +Following Up With the Reportee +============================== + +When following up with the reportee, the committee will: + +* Explain that an incident was reported that involves the reportee. +* In this explanation, the focus will be on the impact of their behavior, not + their intent. +* Reiterate the Code of Conduct and that their behavior may be deemed + inappropriate. +* Give them the opportunity to state their view of the incident. +* Explain the possible resolutions that may be enforced should the CoC + committee determine there is a breach. + +The reportee will be given a week to respond with the option to request +additional time if needed and subject to approval of the CoC Committee. + +.. _Resolutions: + +Resolutions +=========== + +The committee should agree unanimously on a resolution. In the event that the +committee cannot reach a unanimous resolution, the LLVM Foundation Board of +Directors will help resolve the situation and determine if the resolution can +proceed without a unanimous vote. + +When deciding on a resolution, the goal is to address the report in an +appropriate way, while also looking to prevent or reduce the risk of continuing +harm in the future. Any action deemed necessary by the committee will be +taken, but below is a list of possible resolutions: + +* Taking no further action as the incident was determined not to be a + violation. +* A private verbal warning and/or reprimand from the committee to the + individual(s) involved and request to stop this behavior. This conversation + may happen in person, email, by phone, video chat, or IRC. +* Request that the reportee avoid any interaction with, and physical proximity + to, another person for the remainder of the event. +* Refusal of alcoholic beverage purchases by the reportee at LLVM events. +* Ending a talk/tutorial/etc at an LLVM event early. See immediate response + checklist for further clarification. +* Not publishing the video or slides of a talk. +* Not allowing a speaker to give (further) talks at LLVM events for a specified + amount of time or ever. +* Requiring that the reportee immediately leave an event and not return. +* Immediately ending any volunteer responsibilities and privileges the reportee + holds. +* An imposed suspension (e.g., asking someone to "take a week off" from mailing + lists, bug tracker, IRC, Discord, repositories, or other communication + forms). +* A permanent or temporary ban from some or all LLVM Project spaces (online or + in person). + +Once a resolution is agreed upon, but before it is enacted, the committee will +contact the reporter and any other affected parties to explain the proposed +resolution. They will ask if this resolution is acceptable and must note +feedback for the record. However, the committee is not required to act on this +feedback. + +.. _Appeal Process: + +Appeal Process +=============== + +Any individual(s) determined to have violated the CoC have the right to appeal +a decision. An appeal can be made directly to the committee by sending an email +to conduct@llvm.org with subject line Code of Conduct Incident Appeal. + +The email should include documentation related to the incident to support the +appeal. The said documentation may include, but does not have to be limited to: + +* Information from the reportee justifying reasoning for the appeal. +* Statements from other individuals involved in the incident to support the + appeal. + +Appeals can be requested up to 30 days after a resolution has been communicated +to the individual(s). The committee will aim to evaluate appeals within two weeks of receipt. In the event that appeal can not be evaluated within that time, the CoC committee will respond with an updated and projected timeline. + + +Conflicts of Interest +===================== + +Committee members should declare any conflicts of interest as soon as possible +and before any official committee meetings. This can mean being friends with +one of the involved parties, or anything else that may make it harder to remain +neutral. + +A conflict of interest does not inherently mean the committee member can no +longer participate in the process, as that would make it very hard for the team +to act on reports involving well-known people in the community. However, if a +report concerns a team member or someone they work directly with, they probably +should not take part in the process. The team will decide together on where to +draw this line in individual cases. Where possible, any conversations with +offenders should not be done by people who know them, as it can be very +unpleasant for everyone involved. + +If a report is received concerning a committee member, that member must not be +involved in the response process. The rest of the committee will meet and +decide on the report without the reported committee member being present, and +will not share more information than they would have with a non-member. If a +member of the committee is found to have violated the CoC, they may no longer +be able to keep serving on the committee. + +Confidentiality +=============== + +All reports will be kept confidential with details shared only with the Code of +Conduct committee members. However, the Code of Conduct Committee will always +comply with law enforcement when directed. In the case that a CoC committee +member is involved in a report, the member will be asked to recuse themselves +from ongoing conversations, and they will not have access to reports after the +enforcement decision has been made. + +In the event of a temporary suspension or ban, the appropriate people must be +notified of the ban in order to restrict access to infrastructure or events. +These individuals will only be notified of the person’s name and the +restrictions imposed. They will be under a confidentiality clause and not +allowed to respond to questions regarding the ban and should direct all +questions to the CoC committee. + +.. _Transparency Reports: + +Transparency Reports +==================== + +Lack of transparency in the outcomes of our Code of Conduct incidents leaves +our community without an understanding of how or if the organizers worked to +resolve incidents. The CoC committee should aim to publish transparency +reports, if reports are received, after major events (such as the LLVM +Developers’ meetings) and on the following dates: Jan 15, April 15, July 15, +Oct 15. + +A transparency report consists of 2 parts: + +* An overview of the reports received, and resolutions. +* A more detailed summary of each reported incident and the resolution while + maintaining confidentiality. + +These reports will be published on the LLVM website. + + +This guide was created and inspired by the following: the `Django Project`_, +`Carpentries Response Guide`_, and the `Write The Docs Response Guide`_. + +.. _Django Project: https://www.djangoproject.com/conduct/ +.. _Carpentries Response Guide: https://docs.carpentries.org/topic_folders/policies/enforcement-guidelines.html +.. _Write The Docs Response Guide: https://www.writethedocs.org/code-of-conduct/#guidelines-for-reporting-incidents + diff --git a/llvm/docs/UserGuides.rst b/llvm/docs/UserGuides.rst --- a/llvm/docs/UserGuides.rst +++ b/llvm/docs/UserGuides.rst @@ -53,6 +53,7 @@ Phabricator Passes ReportingGuide + ResponseGuide Remarks SourceLevelDebugging StackSafetyAnalysis