Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add accountability section to cocc charter #6247

Closed

Conversation

celestehorgan
Copy link
Contributor

Per discussions in slack and #6243, clearly define in the charter who is accountable to the CoC.

This is particularly relevant given things in the Rust community today, but I know it's been on Steering Committee's and the CoCC's mind for a while, too, to clearly state the accountability here.

This is a first draft and intentionally not too specific. Let's talk about it ❤️

@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. labels Nov 22, 2021
@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Nov 22, 2021
@@ -16,6 +16,10 @@ involved, and that the process is never perfect by nature of its need to serve
everyone in the community equally. That said, the committee is oriented toward
the protection of our community and takes that duty seriously.

## Accountability

All participants in the project at all levels, from one-time GitHub commenter to Steering Committee member, are accountable to the code of conduct and any actions the Code of Conduct Committee decides to take.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
All participants in the project at all levels, from one-time GitHub commenter to Steering Committee member, are accountable to the code of conduct and any actions the Code of Conduct Committee decides to take.
All participants in the project at all levels, from one-time GitHub commenters to Steering Committee members, are accountable to the code of conduct and any actions the Code of Conduct Committee decides to take.

Project-wide accountability to the Code of Conduct makes sense.

"any actions the Code of Conduct Committee decides to take" needs some scoping/clarification :)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggest cap's, ie: "...are accountable to the Code of Conduct..."

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@liggitt re: "any actions the Code of Conduct Committee decides to take" -> is there anything in specific you're concerned about here? How would you like to see this scoped further?

Copy link
Member

@liggitt liggitt Nov 23, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@liggitt re: "any actions the Code of Conduct Committee decides to take" -> is there anything in specific you're concerned about here? How would you like to see this scoped further?

(to start, I'll note that my concerns are not a judgment of past actions, but are forward-looking, wanting to make sure the boundaries we end up with have checks and balances and are resilient)

I'm strongly in favor of accountability for the bodies in our community. Because of that, I'm concerned that this statement, combined with significant ambiguity in the CoCC charter and incident response process, makes the CoCC entirely unaccountable over specific decisions/actions. It's not clear from the charter or the incident response doc what the boundaries of the CoCC are:

  • The guiding inputs are not bounded (emphasis mine):

    The Code of Conduct serves as the primary policy document and is supported with additional references and tools as needed.

  • The scope of jurisdiction is not bounded (emphasis mine):

    The Code of Conduct applies between all community members when interacting about Kubernetes. [...]

    What are the boundaries of the Kubernetes community?
    There are no hard boundaries of the community, [...]

    • Social media
      In some cases, where individual social media messages are not related to Kubernetes but have been reported to the Code of Conduct Committee and are making project members feel unsafe or unwelcome, we might choose to act.
  • The actions the CoCC can decide to take are not bounded, either in the breadth of actions available, or allowed actions for specific categories of offenses.

  • Finally, there is no described way to appeal CoCC decisions/actions.

With that degree of ambiguity and lack of accountability around the CoCC, adding a blanket statement that community members are accountable to "any actions the Code of Conduct Committee decides to take" seems unwise to me.

I agree this would be a good topic for in-person discussion at the next Steering/CoCC sync, to think through how we can clarify this for community members and ensure all bodies have accountability.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@liggitt Excellent observations!

  1. I agree that the guiding inputs are not bounded: having not been around when the committee was chartered, I'm not sure what was meant by "additional references and tools as needed". Perhaps @jdumars @tashimi or @AevaOnline know more and can shed some light?
  2. The scope of jurisdiction is, I think, necessarily unbounded: if something untoward happened in a KubeCon hotel room after KubeCon hours, would you want the people involved to have access to some kind of process? If so, the borders of where the CoC applies need to necessarily be fuzzy. Any attempt to define them clearly ("Only things that happen at KubeCon!!") takes away the ability of someone to seek out recourse.
  3. The actions the CoCC can decide to take are, again, necessarily unbounded in my opinion: I think any attempt to ascribe what actions the CoCC can take puts us on a road to an enforcement ladder, which is something the CoCC has consciously and consistently tried to avoid: if we say the CoCC can (i.e.) ban someone, warn them, etc. then whether we intend to or not those become the prescribed actions, and we end up warning someone ("Don't be rude to people!!!") instead of coaching them ("Can you see why that comment might've been poorly received? Do you think an apology might work?").
  4. Something brought to my attention recently through conference talks is the idea of building in an appeals process. You're right, the CoCC doesn't have this currently and I think it would be a useful next step.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re: "additional references and tools as needed" for @liggitt @celestehorgan &all...

In this context, the Code of Conduct document can be considered "a reference" and "a tool". This statement, as I understand the history, is open ended because it is understood that the Code of Conduct is not the only tool available to the CoCC or to the community. While it is the authoritative document establishing a common baseline, as any governance document, it may need to be updated over time, additional guides created, and additional knowledge brought to bear to address previously-unconsidered circumstances. One would hope such updates are infrequent, and it is clear from the initial chartering of the CoCC that its bootstrap team intended for the CoC (and associated documents) to evolve over time.

Here are some examples (non-exhaustive list) of other tools that I considered supportive but not authoritative during my term: books and written guides on the topics of community moderation and restorative justice; training performed or provided by recognized educators; and legal counsel.

Here is an example of an additional tool that is authoritative and demonstrates this evolution: the incident reporting process (k8s.dev/coc-process) incrementally improves the tooling available within this community by adding to the baseline CoC document, informing all community members as to aspects of the process which the CoCC follows, and outlining that process for future CoCC members.

A document outlining an appeals process might be another such 'reference and tool' that the CoCC could create, for example.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 on @celestehorgan 's points 2 and 3:

  1. The scope of jurisdiction is intentionally left open so as to protect community members regardless of where (or on what platform) the community is gathering. Imagine if the initial framing had said the CoC only applies on Hangouts and Slack -- how would we have responded if there were incidents on Zoom or Twitch, platforms that weren't popular five years ago?

  2. The potential remedies to an incident are also intentionally open ended, with training provided to committee members that centers on restoration of trust and emotional safety within the community.

I continue to advocate against embedding punitive ladders in CoC documents, as doing so would bind the Committee's potential actions and is likely to necessitate punishments in situations where the committee members do not feel they are appropriate. In my experience, codifying a punitive ladder can inadvertently create a system that is prone to gamification, less forgiving of accidents, and less conducive to either personal growth or restoration of trust after an incident occurs.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@liggitt would changing the wording around the "additional references and tooling as needed" to something more specific allow us to keep scope of jurisdiction and remedies open? i.e.

The Code of Conduct serves as the primary policy document. As needed, the code of conduct committee utilizes legal counsel, training provided to it via the CNCF's budget for the Kubernetes project, and other resources on community management.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I appreciate the goal of starting with coaching/encouraging in the right direction, etc, but that doesn't rule out clearly stating upper boundaries on actions for types of incidents (not required minimum actions). Let's talk about this aspect when we meet.

Copy link
Member

@justaugustus justaugustus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for these updates, @celestehorgan.
Just a few suggestions!

I do believe listing in the charter is most appropriate, but are there ways we can make this even more discoverable?

  • Cross-link to Contributor Guide? /contributors/guide/README.md
  • Cross-link to Code of Conduct?

@@ -16,6 +16,10 @@ involved, and that the process is never perfect by nature of its need to serve
everyone in the community equally. That said, the committee is oriented toward
the protection of our community and takes that duty seriously.

## Accountability

All participants in the project at all levels, from one-time GitHub commenter to Steering Committee member, are accountable to the code of conduct and any actions the Code of Conduct Committee decides to take.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we explicitly link to:

  • Code of Conduct: /code-of-conduct.md
  • actions CoCC may take: ./incident-process.md

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 to both suggestions.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 on cross-linking documents to improve discoverability of information

@cblecker
Copy link
Member

/hold
/committee code-of-conduct steering

Holding for discussion/approval as this is a charter update :)

@k8s-ci-robot k8s-ci-robot added do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. committee/code-of-conduct Denotes an issue or PR intended to be handled by the code of conduct committee. committee/steering Denotes an issue or PR intended to be handled by the steering committee. labels Nov 22, 2021
@celestehorgan
Copy link
Contributor Author

@cblecker @liggitt - somehow, I suspect this might warrant some in-person discussion. We can either do this in the next public SC meeting as an agenda item, or I can nudge y'all and set up another quarterly CoCC<>SC sync and we can chat there.

(I'll get around to answering questions in-line, but I'm trying to plan ahead 😂)

@jberkus
Copy link
Contributor

jberkus commented Nov 23, 2021

+1 on the "everyone is accountable for CoC violations", aside from whatever minor wording tweaks.

@celestehorgan
Copy link
Contributor Author

@kubernetes/steering-committee - I know y'all took this away to talk about in your meetings; do you have any other thoughts you need to share?

@liggitt
Copy link
Member

liggitt commented Jan 12, 2022

@kubernetes/steering-committee - I know y'all took this away to talk about in your meetings; do you have any other thoughts you need to share?

we planned to discuss this in the next steering / cocc sync up meeting, which @tpepper has an AI to schedule

@tpepper
Copy link
Member

tpepper commented Feb 10, 2022

@kubernetes/steering-committee - I know y'all took this away to talk about in your meetings; do you have any other thoughts you need to share?

we planned to discuss this in the next steering / cocc sync up meeting, which @tpepper has an AI to schedule

Meeting on Feb. 10, 2022

@tpepper
Copy link
Member

tpepper commented Feb 11, 2022

Following discussion between Steering and CoCC some words below which I think cover the desired sentiment. I'm personally unsure if this needs to be in the charter (probably) versus the Incident Process doc perhaps around "Why does this process exist?" where similar language currently sits. I think it needs to in the Incident Process description there. But the overall point of this discussion is also to elevate that clarity up into the charter.

Upon determination of a violation of the CoC, enforcement actions by the CoCC are intended to be proportional with a focus on appropriately restoring community safety, not punitive.

This is how CoCC operates, but is not necessarily what was originally chartered. Bringing it into the charter explicitly can help community trust in the CoCC.

@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label May 12, 2022
@jberkus
Copy link
Contributor

jberkus commented May 13, 2022

Hey, are we doing this? @tpepper

@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle rotten

@k8s-ci-robot k8s-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Jun 12, 2022
@justaugustus
Copy link
Member

/remove-lifecycle rotten

@k8s-ci-robot k8s-ci-robot removed the lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. label Jul 1, 2022
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Sep 29, 2022
@jdumars
Copy link
Member

jdumars commented Sep 30, 2022

Is this still an active issue?

@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle rotten

@k8s-ci-robot k8s-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Oct 30, 2022
@tpepper
Copy link
Member

tpepper commented Nov 1, 2022

I think we should work on an updated iteration of this PR. CNCF CoC WG discussed at KubeCon a coming review of the CNCF CoC and its early incident response process and initially the description seems to my ears to imply a potential gap between how our project has approached CoCC work and the potential direction that body may take for the foundation's project set.

@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the PR is closed

You can:

  • Reopen this PR with /reopen
  • Mark this PR as fresh with /remove-lifecycle rotten
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/close

@k8s-ci-robot
Copy link
Contributor

@k8s-triage-robot: Closed this PR.

In response to this:

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the PR is closed

You can:

  • Reopen this PR with /reopen
  • Mark this PR as fresh with /remove-lifecycle rotten
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@cpanato
Copy link
Member

cpanato commented Dec 1, 2022

/reopen
/remove-lifecycle rotten

@k8s-ci-robot k8s-ci-robot reopened this Dec 1, 2022
@k8s-ci-robot
Copy link
Contributor

@cpanato: Reopened this PR.

In response to this:

/reopen
/remove-lifecycle rotten

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@k8s-ci-robot k8s-ci-robot removed the lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. label Dec 1, 2022
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: celestehorgan
Once this PR has been reviewed and has the lgtm label, please assign detiber for approval by writing /assign @detiber in a comment. For more information see the Kubernetes Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot removed the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Dec 1, 2022
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all PRs.

This bot triages PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the PR is closed

You can:

  • Mark this PR as fresh with /remove-lifecycle stale
  • Close this PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Mar 1, 2023
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough active contributors to adequately respond to all PRs.

This bot triages PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the PR is closed

You can:

  • Mark this PR as fresh with /remove-lifecycle rotten
  • Close this PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle rotten

@k8s-ci-robot k8s-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Mar 31, 2023
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the PR is closed

You can:

  • Reopen this PR with /reopen
  • Mark this PR as fresh with /remove-lifecycle rotten
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/close

@k8s-ci-robot
Copy link
Contributor

@k8s-triage-robot: Closed this PR.

In response to this:

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the PR is closed

You can:

  • Reopen this PR with /reopen
  • Mark this PR as fresh with /remove-lifecycle rotten
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. committee/code-of-conduct Denotes an issue or PR intended to be handled by the code of conduct committee. committee/steering Denotes an issue or PR intended to be handled by the steering committee. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files.
Projects
Development

Successfully merging this pull request may close these issues.