diff --git a/doc/source/dev/ai_policy.rst b/doc/source/dev/ai_policy.rst new file mode 100644 index 000000000000..3a793d45b849 --- /dev/null +++ b/doc/source/dev/ai_policy.rst @@ -0,0 +1,80 @@ +.. _ai_policy: + +AI Policy +========= + +"AI" herein refers to generative AI tools like large language models (LLMs) +that can generate, edit, and review software code, create and manipulate +images, or generate human-like communication. + +Responsibility +-------------- + +You are responsible for any code you submit to NumPy's repositories, regardless +of whether it was manually written or generated by AI. You must understand and be able +to explain the code you submit as well as the existing related code. It is not +acceptable to submit a patch that you cannot understand and explain yourself. +In explaining your contribution, do not use AI to automatically generate +comments, pull request descriptions, or issue descriptions. See below for our +policy on AI translation systems. + +Disclosure +---------- + +You must disclose whether AI has been used to assist in the development of +your pull request. +If so, you must document which tool(s) have been used, how they were used, +and specify what code or text is AI generated. We will reject any pull request +that does not include the disclosure. + +Code Quality +------------ + +Contributors are expected to submit code that meets NumPy's standards. We will +reject pull requests that we deem to be "`AI slop`_". Do not waste developers' +time by submitting code that is fully or mostly generated by AI, and doesn't +meet our standards. + +.. _AI slop: https://en.wikipedia.org/wiki/AI_slop + +Copyright +--------- + +All code in NumPy is released under the BSD 3-clause copyright license. +Contributors to NumPy license their code under the same license when it is +included in NumPy's version control repository. That means contributors must +own the copyright of any code submitted to NumPy or must include the BSD +3-clause compatible open source license(s) associated with the submitted code +in the patch. Code generated by AI may infringe on copyright and it is the +submitter's responsibility to not infringe. We reserve the right to reject any pull +requests, AI-generated or not, where the copyright is in question. + +Communication +------------- + +When interacting with developers (forums, discussions, +issues, pull requests, etc.) do not use AI to speak for you, except for +translation or grammar editing. If the developers want to chat with a chatbot, +they can do so themselves. Human-to-human communication is essential for an +open source community to thrive. + +AI Agents +--------- +The use of an AI agent that writes code and then submits a pull request autonomously is +not permitted. A human must check any generated code and submit a pull request according +to the 'Responsibility' section above. + +Other Resources +--------------- +While these do not formally form part of NumPy's AI policy, the following resources +may be helpful in understanding some pitfalls associated with using AI to contribute to +NumPy: + +- https://llvm.org/docs/AIToolPolicy.html +- https://github.com/melissawm/open-source-ai-contribution-policies +- https://blog.scientific-python.org/scientific-python/community-considerations-around-ai/ + +Acknowledgements +---------------- +We thank the SciPy developers for their AI policy, upon which this document is largely +based. diff --git a/doc/source/dev/index.rst b/doc/source/dev/index.rst index 625e69712030..bee0bf746ab4 100644 --- a/doc/source/dev/index.rst +++ b/doc/source/dev/index.rst @@ -254,6 +254,7 @@ The rest of the story .. toctree:: :maxdepth: 2 + ai_policy development_environment spin howto_build_docs diff --git a/requirements/ci32_requirements.txt b/requirements/ci32_requirements.txt index da8c8141917f..a19f6b3b9e7b 100644 --- a/requirements/ci32_requirements.txt +++ b/requirements/ci32_requirements.txt @@ -1,3 +1,3 @@ spin # Keep this in sync with ci_requirements.txt -scipy-openblas32==0.3.31.22.1 +scipy-openblas32==0.3.31.126.1 diff --git a/requirements/ci_requirements.txt b/requirements/ci_requirements.txt index 6a63af65d96c..f200891aa560 100644 --- a/requirements/ci_requirements.txt +++ b/requirements/ci_requirements.txt @@ -1,4 +1,4 @@ spin # Keep this in sync with ci32_requirements.txt -scipy-openblas32==0.3.31.22.1 -scipy-openblas64==0.3.31.22.1 +scipy-openblas32==0.3.31.126.1 +scipy-openblas64==0.3.31.126.1