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
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
120 changes: 54 additions & 66 deletions code_of_conduct.html
Original file line number Diff line number Diff line change
Expand Up @@ -77,74 +77,62 @@

<h1 id="astropy-community-code-of-conduct">Astropy Community Code of Conduct<a class="paralink" href="#astropy-community-code-of-conduct" title="Permalink to this headline">¶</a></h1>

<p>The community of participants in open source Astronomy projects is made
up of members from around the globe with a diverse set of skills,
personalities, and experiences. It is through these differences that our
community experiences success and continued growth. We expect everyone in
our community to follow these guidelines when interacting with others both
inside and outside of our community. Our goal is to keep ours a positive,
inclusive, successful, and growing community.</p>

<p>As members of the community,</p>

<ul>

<li>We pledge to treat all people with respect and provide a harassment- and
bullying-free environment, regardless of sex, sexual orientation and/or
gender identity, disability, physical appearance, body size, race,
nationality, ethnicity, and religion. In particular, sexual language and
imagery, sexist, racist, or otherwise exclusionary jokes are not
appropriate.</li>

<li>We pledge to respect the work of others by recognizing
acknowledgment/citation requests of original authors. As authors, we pledge
to be explicit about how we want our own work to be cited or
acknowledged.</li>

<li>We pledge to welcome those interested in joining the community, and
realize that including people with a variety of opinions and backgrounds
will only serve to enrich our community. In particular, discussions relating
to pros/cons of various technologies, programming languages, and so on are
welcome, but these should be done with respect, taking proactive measure to
ensure that all participants are heard and feel confident that they can
freely express their opinions.</li>

<li>We pledge to welcome questions and answer them respectfully, paying
particular attention to those new to the community. We pledge to provide
respectful criticisms and feedback in forums, especially in discussion
threads resulting from code contributions.</li>

<li>We pledge to be conscientious of the perceptions of the wider community
and to respond to criticism respectfully. We will strive to model behaviors
that encourage productive debate and disagreement, both within our community
and where we are criticized. We will treat those outside our community with
the same respect as people within our community.</li>

<li>We pledge to help the entire community follow the code of conduct, and
to not remain silent when we see violations of the code of conduct. We will
take action when members of our community violate this code such as
contacting [email protected] (all emails sent to this address will be
treated with the strictest confidence) or talking privately with the
person.</li>

</ul>

<p>This code of conduct applies to all community situations online and
offline, including mailing lists, forums, social media, conferences,
meetings, associated social events, and one-to-one interactions.</p>

<p>Any related activity or project organized by members of the Astropy
community, including affiliated packages, are welcome to have their own
codes of conduct, but agree to also abide by the present code of
conduct.</p>

<p>Parts of this code of conduct have been adapted from the PSF code of
conduct.</p>

<p class="centered"><a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a><br />The Astropy Community Code of Conduct is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>. We encourage other communities related to ours to use or adapt this code as they see fit.</p>

</section>
<p>Since July 2025, the Astropy Project has adopted the NumFOCUS Code of Conduct, which is summarized below.
For the previous version of the Astropy Code of Conduct, click <a href="code_of_conduct_old_astropy.html">here</a>.</p>

<hr/>

<h2>The Short Version</h2>

<p>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 Astropy.</p>

<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?


<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!


<p>Thank you for helping make this a welcoming, friendly community for all.</p>

<h2>The Long Version</h2>

<p>You can find the long version of the Code of Conduct on the
<a href="https://numfocus.org/code-of-conduct">NumFOCUS website</a>.</p>

<h2>How To Report</h2>

<p>If you feel that the Code of Conduct has been violated, you can submit a report via the <a href="https://numfocus.typeform.com/to/ynjGdT?typeform-source=numfocus.org">NumFOCUS Code of Conduct Reporting Form</a>.

<h2>Who Will Receive Your Report</h2>

<p>Your report will be received and handled by NumFOCUS Code of Conduct Working Group;
trained, and experienced contributors with diverse backgrounds. The group is making
decisions independently from the project, PyData, NumFOCUS, or any other organization.</p>

<p>The Working Group will work with the Astropy Project's Ombudsperson to resolve an incident:
The NumFOCUS Code of Conduct Working group will review the incident, and provide recommendations on how to handle this or what consequences or sanction might be appropriate. As per <a href="https://github.com/astropy/astropy-APEs/blob/main/APE0.rst">Astropy's governance charter</a>, the Astropy Ombudsperson along with the Coordination Committee will receive those recommendations and perform any actions necessary to address the concern.</p>

<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>


<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>


<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 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>


</ul>


</section>

<footer>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
Expand Down
161 changes: 161 additions & 0 deletions code_of_conduct_old_astropy.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content="Astropy. A Community Python Library for Astronomy." />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="shortcut icon" href="favicon.ico" />

<link href='https://fonts.googleapis.com/css?family=Open+Sans:400italic,400,700' rel='stylesheet' type='text/css' />
<link rel="stylesheet" type="text/css" href="css/style.css" />
<link rel="stylesheet" type="text/css" href="css/jquery.sidr.light.css" />

<style>
table.roles td {word-break:normal}
</style>

<title>Astropy | Code of Conduct (old)</title>

<!-- Google analytics -->
<script src="js/analytics.js"></script>
</head>

<body>

<div id="wrapper">
<nav>
<div id="mobile-header">
<!-- Menu Icon -->
<a id="responsive-menu-button" href="#sidr-main"><div><svg senable-background="new 0 0 24 24" height="24px" id="Layer_1" version="1.1" viewBox="0 0 24 24" width="24px" x="0px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px"><g><g><path d="M23.244,17.009H0.75c-0.413,0-0.75,0.36-0.75,0.801v3.421C0,21.654,0.337,22,0.75,22h22.494c0.414,0,0.75-0.346,0.75-0.77 V17.81C23.994,17.369,23.658,17.009,23.244,17.009z M23.244,9.009H0.75C0.337,9.009,0,9.369,0,9.81v3.421 c0,0.424,0.337,0.769,0.75,0.769h22.494c0.414,0,0.75-0.345,0.75-0.769V9.81C23.994,9.369,23.658,9.009,23.244,9.009z M23.244,1.009H0.75C0.337,1.009,0,1.369,0,1.81V5.23c0,0.423,0.337,0.769,0.75,0.769h22.494c0.414,0,0.75-0.346,0.75-0.769V1.81 C23.994,1.369,23.658,1.009,23.244,1.009z"/></g></g></svg></div></a>
<!-- -->
</div>
<a href="index.html"><img src="images/astropy_word.svg" height="32" onerror="this.src='images/astropy_word_32.png; this.onerror=null;"/></a>
<div id="navigation">
<ul>
<li>
<div class="dropdown">
<a>About</a>
<div class="dropdown-content">
<ul>
<li><a href="about.html">About Astropy</a></li>
<li><a href="code_of_conduct.html">Code of Conduct</a></li>
<li><a href="acknowledging.html">Acknowledging & Citing</a></li>
<li><a href="history.html">History</a></li>
</ul>
</div>
</div>
</li>
<li><a href="help.html">Get Help</a></li>
<li><a href="contribute.html">Contribute</a></li>
<li>
<div class="dropdown">
<a href="https://docs.astropy.org">Documentation</a>
<div class="dropdown-content">
<ul>
<li><a href="https://docs.astropy.org" target="_blank">Current Release</a></li>
<li><a href="https://astropy.readthedocs.io/en/latest/" target="_blank">In Development</a></li>
</ul>
</div>
</div>
</li>
<li><a href="affiliated/index.html">Affiliated Packages</a></li>
<li><a href="team.html">Team</a></li>
<li><a href="credits.html">Credits</a></li>
</ul>
</div>
<div class="search pull-right">
<form action="https://docs.astropy.org/en/stable/search.html" method="get">
<input type="text" name="q" placeholder="Search Documentation" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</nav>

<section>
<a name="codeofconductold"></a>

<h1 id="astropy-community-code-of-conduct-old">Astropy Community Code of Conduct (prior to July 2025)<a class="paralink" href="#astropy-community-code-of-conduct-old" title="Permalink to this headline">¶</a></h1>

<p><b>Astropy has switched to using NumFOCUS code of conduct, please see the
<a href="code_of_conduct.html">current code of conduct</a>.</b></p>

<p>The community of participants in open source Astronomy projects is made
up of members from around the globe with a diverse set of skills,
personalities, and experiences. It is through these differences that our
community experiences success and continued growth. We expect everyone in
our community to follow these guidelines when interacting with others both
inside and outside of our community. Our goal is to keep ours a positive,
inclusive, successful, and growing community.</p>

<p>As members of the community,</p>

<ul>

<li>We pledge to treat all people with respect and provide a harassment- and
bullying-free environment, regardless of sex, sexual orientation and/or
gender identity, disability, physical appearance, body size, race,
nationality, ethnicity, and religion. In particular, sexual language and
imagery, sexist, racist, or otherwise exclusionary jokes are not
appropriate.</li>

<li>We pledge to respect the work of others by recognizing
acknowledgment/citation requests of original authors. As authors, we pledge
to be explicit about how we want our own work to be cited or
acknowledged.</li>

<li>We pledge to welcome those interested in joining the community, and
realize that including people with a variety of opinions and backgrounds
will only serve to enrich our community. In particular, discussions relating
to pros/cons of various technologies, programming languages, and so on are
welcome, but these should be done with respect, taking proactive measure to
ensure that all participants are heard and feel confident that they can
freely express their opinions.</li>

<li>We pledge to welcome questions and answer them respectfully, paying
particular attention to those new to the community. We pledge to provide
respectful criticisms and feedback in forums, especially in discussion
threads resulting from code contributions.</li>

<li>We pledge to be conscientious of the perceptions of the wider community
and to respond to criticism respectfully. We will strive to model behaviors
that encourage productive debate and disagreement, both within our community
and where we are criticized. We will treat those outside our community with
the same respect as people within our community.</li>

<li>We pledge to help the entire community follow the code of conduct, and
to not remain silent when we see violations of the code of conduct. We will
take action when members of our community violate this code such as
contacting [email protected] (all emails sent to this address will be
treated with the strictest confidence) or talking privately with the
person.</li>

</ul>

<p>This code of conduct applies to all community situations online and
offline, including mailing lists, forums, social media, conferences,
meetings, associated social events, and one-to-one interactions.</p>

<p>Any related activity or project organized by members of the Astropy
community, including affiliated packages, are welcome to have their own
codes of conduct, but agree to also abide by the present code of
conduct.</p>

<p>Parts of this code of conduct have been adapted from the PSF code of
conduct.</p>

<p class="centered"><a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a><br />The Astropy Community Code of Conduct is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>. We encourage other communities related to ours to use or adapt this code as they see fit.</p>

</section>


<footer>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="js/jquery.sidr.min.js"></script>
<script src="js/functions.js"></script>
</footer>

</div>

</body>
</html>