Skip to content

Adopt NumFOCUS code of conduct #669

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

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open

Conversation

pllim
Copy link
Member

@pllim pllim commented Jun 20, 2025

Fix astropy/astropy-project#468

Most of the text is copied wholesale from NumFOCUS template, except I replaced "NumFOCUS" with "Astropy" where appropriate.

The only section I significantly modified is the last one, "Who Will Receive Your Report" because Astropy already has an established Ombudsperson and incident handling process prior to adopting NumFOCUS version, and it is not something we can lightly change. The text could use some polishing so suggestions are welcome.

cc NumFOCUS @kamila-NF

Co-authored-by: Hans Moritz Günther <[email protected]>
Copy link
Member

@ceb8 ceb8 left a comment

Choose a reason for hiding this comment

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

Looks good, just a few small suggestions.

<p>Astropy is dedicated to providing a harassment-free community for everyone,
regardless of gender, sexual orientation, gender identity and expression, disability,
physical appearance, body size, race, or religion. We do not tolerate harassment
of community members in any form.</p>
Copy link
Member

Choose a reason for hiding this comment

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

Add "ethnicity" and "nation of origin/residence"?

Copy link
Member Author

Choose a reason for hiding this comment

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

@hamogu , are we allowed to add wordings that Clara suggested here and still stay opted in? Hope you can advise. Thanks!

Copy link
Member

Choose a reason for hiding this comment

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

No, we are not. Either we use the NumFOCUS CoC verbatim, or we don't. We can make our own CoC based on NumFOCUS wording, but then it's not the NumFOCUS CoC. The reasons for that is mostly practical: If we want the NumFOCUS CoC working group to do anything for us (e.g. advise on issues, act as backstop if our own ombudsperson is conflicted), then we need to have all the same CoC. The WG simply doesn't have the capacity to keep track of > 50 CoC's with just subtly different rules.

Copy link
Contributor

Choose a reason for hiding this comment

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

If we want the NumFOCUS CoC working group to do anything for us (e.g. advise on issues, act as backstop if our own ombudsperson is conflicted), then we need to have all the same CoC. The WG simply doesn't have the capacity to keep track of > 50 CoC's with just subtly different rules.

So that means we will also automatically subscribe to any updates and changes NumFOCUS makes, or opt out of their services again? Seems inevitable, but how would that be done in practice – voting on it again at every update?

Copy link
Member

Choose a reason for hiding this comment

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

Does every update need a formal vote? Updates will be small. So maybe that can just be discussed on the mailing list and and in issue and if there are no major objections, we just update. If there are any changes on the NumFOCUS side, we probably want to inform our members anyway, so we would send out communication anyway.

Copy link
Member Author

Choose a reason for hiding this comment

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

In practice, would NumFOCUS change it so drastically that we would have to opt out? Are we worrying about an edge case that probably would never happen?

appropriate for Astropy.</p>

<p>All communication should be appropriate for a professional audience including
people of many different backgrounds. Sexual language and imagery is not appropriate.</p>
Copy link
Member

Choose a reason for hiding this comment

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

Add back in some of our no tool-shaming language from the original Astropy CoC?

Copy link
Member

Choose a reason for hiding this comment

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

Same as above - but both of those are good suggestions for the next revision of the NumFOCUS Code of Conduct!

@eteq
Copy link
Member

eteq commented Jun 23, 2025

A few general thoughts: I think one of the things not in the NF CoC that we want to keep from Astropy is the "no code shaming" element. That is one of the things that's particular to our community when we originally wrote the Astropy CoC, and I think it's a thing we can add as an additional item/clause for this.

Another one might be the "We pledge to be conscientious of the perceptions of the wider community and to respond to criticism respectfully" item. It might be covered under the NF one? But I'm not sure.

I am also concerned about the fact that by linking to the NF CoC it could change at any time indepednent of this page, so we can't be sure it won't change without our consent in the future. I'm not sure if there's a good fix to this, but it is a concern...

@eteq
Copy link
Member

eteq commented Jun 23, 2025

From coordination meeting:

  • it looks like the CoC "short" version is out-of-sync with NF's web site, so we should update that. (thanks @taldcroft ).
  • Also we should put "Project has adopted CoC" clause at the top.
  • Need to check if the ombusperson makes final decisions with CoCo or just ombudsperson it does require CoCo according to APE0 (together with ombusperson)
  • Change to just the NF CoC reporting form (not ombudsperson as an alternative)

@eteq
Copy link
Member

eteq commented Jun 24, 2025

As discussed in a coordination meeting 2025 session, I updated this with several commits that reflect the iitems I listed above, as well as adding some examples

@eteq eteq marked this pull request as ready for review June 25, 2025 18:34
@eteq
Copy link
Member

eteq commented Jun 25, 2025

Note I think my changes above (from coordination meeting 2025 discussion) addressed one of @ceb8's concerns (the tool-shaming one, which is nowframed as an example) but not the other one. My understanding from @hamogu is that we can't really address the other one here until NF makes the change. @ceb8 , are you ok with leaving that part unaddressed for now?

@ceb8
Copy link
Member

ceb8 commented Jun 25, 2025

@eteq sounds good to me.

@pllim pllim requested a review from perrygreenfield July 2, 2025 22:23
@pllim
Copy link
Member Author

pllim commented Jul 2, 2025

@eteq are you going to fix the spacing between sections too? 😅

Copy link
Member Author

@pllim pllim left a comment

Choose a reason for hiding this comment

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

Thanks! Some comments below on @eteq 's follow-up changes.

I also pinged our Ombudsperson for review.

What is the next step?


<ul>

<li>A member of the Astropy community might express a preference on an online forum for a specific tool or programming language (e.g. Python) over another language. If this preference is expressed as a personal preference or with reference to particular technical merits of that language vs others, there is no violation of the Code of Conduct. However, if that member instead expresses this preference by way of insult to those who use another language, or via violent imagery directed at those other languages or its users, that would be an act of "tool shaming" and be a violation of the Code of Conduct</li>
Copy link
Member Author

Choose a reason for hiding this comment

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

Suggested change
<li>A member of the Astropy community might express a preference on an online forum for a specific tool or programming language (e.g. Python) over another language. If this preference is expressed as a personal preference or with reference to particular technical merits of that language vs others, there is no violation of the Code of Conduct. However, if that member instead expresses this preference by way of insult to those who use another language, or via violent imagery directed at those other languages or its users, that would be an act of "tool shaming" and be a violation of the Code of Conduct</li>
<li>A member of the Astropy community might express a preference on an online forum for a specific tool or programming language (e.g., Python) over another language. If this preference is expressed as a personal preference or with reference to particular technical merits of that language vs others, there is no violation of the Code of Conduct. However, if that member instead expresses this preference by way of insult to those who use another language, or via violent imagery directed at those other languages or its users, that would be an act of "tool shaming" and be a violation of the Code of Conduct.</li>


<h2>Examples</h2>

<p>To make this Code of Conduct more concrete, we provide here some hypothetical examples of how a Code of Conduct issue might arise that may be particular to our community.</p>
Copy link
Member Author

Choose a reason for hiding this comment

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

Suggested change
<p>To make this Code of Conduct more concrete, we provide here some hypothetical examples of how a Code of Conduct issue might arise that may be particular to our community.</p>
<p>To make this Code of Conduct more concrete, we provide here some hypothetical examples of how a Code of Conduct issue might arise that may be particular to our community:</p>


<li>A member of the Astropy community might express a preference on an online forum for a specific tool or programming language (e.g. Python) over another language. If this preference is expressed as a personal preference or with reference to particular technical merits of that language vs others, there is no violation of the Code of Conduct. However, if that member instead expresses this preference by way of insult to those who use another language, or via violent imagery directed at those other languages or its users, that would be an act of "tool shaming" and be a violation of the Code of Conduct</li>

<li>If a member of the community knowingly uses a software tool or astronomical dataset in a public package or academic publication without acknowledging or citing the tool in a reasonable way requested by the upstream tool, this is a violation of the Code of Conduct. If the member makes a reasonable effort to find an acknowledgement and one is not available, this would not be a Code of Conduct violation (although it might or might not represent a violation of copyright law depending on the details of the situation and adopted license).</li>
Copy link
Member Author

Choose a reason for hiding this comment

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

Was citation discussed at Astropy Coordination Meeting 2025 w.r.t. Code of Conduct? What if the person just didn't think to look up citation because they were not trained professionally to do so? I am a bit surprised to see this as example here.


<li>If a member of the community knowingly uses a software tool or astronomical dataset in a public package or academic publication without acknowledging or citing the tool in a reasonable way requested by the upstream tool, this is a violation of the Code of Conduct. If the member makes a reasonable effort to find an acknowledgement and one is not available, this would not be a Code of Conduct violation (although it might or might not represent a violation of copyright law depending on the details of the situation and adopted license).</li>

<li>If an Astropy maintainer were to post a message in a public forum that is insulting an astronomy research community member's skills as a programmer, this would be a violation of the Code of Conduct, as the researcher is also a member of our community. If that same thing were stated in a meeting with other Astropy maintainers, it may or may not represent a code of conduct violation, depending on whether the intent is to insult vs pointing out a skill lack in the community in a productive manner.</li>
Copy link
Member Author

Choose a reason for hiding this comment

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

If you must include this one, I feel like we should also include one that goes another way; for example, a researcher that rudely dismisses a code review from a programmer on the basis that the latter is not as wise in the way of science as the former, even thought the review comments are valid.

Suggested change
<li>If an Astropy maintainer were to post a message in a public forum that is insulting an astronomy research community member's skills as a programmer, this would be a violation of the Code of Conduct, as the researcher is also a member of our community. If that same thing were stated in a meeting with other Astropy maintainers, it may or may not represent a code of conduct violation, depending on whether the intent is to insult vs pointing out a skill lack in the community in a productive manner.</li>
<li>If an Astropy maintainer were to post a message in a public forum that is insulting an astronomy research community member's skills as a programmer, this would be a violation of the Code of Conduct, as the researcher is also a member of our community. If that same thing were stated in a meeting with other Astropy maintainers, it may or may not represent a code of conduct violation, depending on whether the intent is to insult v.s. pointing out a skill lack in the community in a productive manner.</li>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Adopting NumFOCUS code of conduct
5 participants