From e1747624580514e87d5216c0d0e1d0acefa4bd87 Mon Sep 17 00:00:00 2001 From: Oscar Dowson Date: Thu, 26 Mar 2026 19:26:56 +1300 Subject: [PATCH 01/11] [docs] add a policy for AI assisted contributions --- docs/make_utilities.jl | 1 + docs/src/developers/ai_policy.md | 75 ++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 docs/src/developers/ai_policy.md diff --git a/docs/make_utilities.jl b/docs/make_utilities.jl index c83f524db73..23627fad846 100644 --- a/docs/make_utilities.jl +++ b/docs/make_utilities.jl @@ -652,6 +652,7 @@ function documentation_structure() ], "Developer Docs" => [ "Contributing" => "developers/contributing.md", + "AI Policy" => "developers/ai_policy.md", "Extensions" => "developers/extensions.md", "Custom binaries" => "developers/custom_solver_binaries.md", "Style Guide" => "developers/style.md", diff --git a/docs/src/developers/ai_policy.md b/docs/src/developers/ai_policy.md new file mode 100644 index 00000000000..c6fe7c4d509 --- /dev/null +++ b/docs/src/developers/ai_policy.md @@ -0,0 +1,75 @@ +# AI Policy + +This document describes how the JuMP developers will manage and respond to +AI-assisted contributions to the JuMP ecosystem. + +It was inspired by similar policies in [SymPy](https://docs.sympy.org/dev/contributing/ai-generated-code-policy.html) +and [SciPy](https://scipy.github.io/devdocs/dev/conduct/ai_policy.html). + +## Communication + +This part of the policy applies to all communication in our [community forum](/forum), +[developer chatroom](/chatroom), and [GitHub repositories](https://github.com/jump-dev). + +Do not use AI to speak for you by copy-pasting a conversation in-and-out of a +chatbot. + +We would rather speak to you directly, errors and grammatical mistakes included. + +If English is not your first language, consider providing both a machine +generated translation into English and the original text in your preferred +language. + +## Code contributions + +This part of the policy applies to all pull requests and issues in our +[GitHub repositories](https://github.com/jump-dev). + +We expect and encourage users to use AI assistance when developing. You do not +need to disclose what parts you used AI assistance for, but you are responsible +for all code that you submit to JuMP. However, do not use AI to author the text +descriptions of pull requests and issues; see our [Communication](@ref) policy. + +When authoring new code in JuMP, keep in mind that the JuMP developers' two +biggest bottlenecks are: + +1. capacity for code review of new pull requests +2. on-going support and maintenance of existing features + +For these reasons, please open an issue to discuss what you want to change +_before_ opening a pull request. In the issue, describe what you want to change +and why it matters to you. + +Large pull requests that add new features not previously discussed in an issue +may be closed without review, even if they are correct and demonstrably useful. + +## New Contributors + +The JuMP developers welcome and encourage new contributors. + +The best ways you can get involved are: + +1. **Find and report bugs**: we can't fix things that we don't know about. There + are always new bugs (or inconsistencies that we should better document) to + find. Report a bug by [opening a GitHub issue](https://github.com/jump-dev/JuMP.jl/issues). + + Using AI tools to find bugs is acceptable, but you are responsible for + understanding and explaining _why_ the issue is a bug (see our + [Communication](@ref) policy). Rather than copy-pasting only the content of + the AI analysis into the issue, first explain what you did to find and + verify the bug, and then copy-paste the AI tool's output. + + Also note that there are many repositories in the JuMP ecosystem. Don't worry + if you open an issue in the "wrong" one; we can easily transfer it to the + correct repository. + +2. **Tell us about confusing parts of the documentation**: if you get stuck + trying to do something in JuMP, it means we didn't document things well + enough. If you have suggestions for new tutorials we could add or how we + could improve the documentation please leave a comment at + ["Suggestions for documentation improvements"](https://github.com/jump-dev/JuMP.jl/issues/2348) + +3. **Make your own packages**: write your own solver or JuMP extension under + your personal account. There are no rules here. Vibe code as much as you + like. Tell us about the things you have created by posting on the + [community forum](/forum), or give a talk at a [JuMP-dev workshop](https://jump.dev/categories/#jump-dev). From ba1f5192289cf7dd29f6b5cd78e396f528b80b60 Mon Sep 17 00:00:00 2001 From: Oscar Dowson Date: Fri, 27 Mar 2026 08:53:42 +1300 Subject: [PATCH 02/11] Update --- docs/src/developers/ai_policy.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/src/developers/ai_policy.md b/docs/src/developers/ai_policy.md index c6fe7c4d509..56123da28b8 100644 --- a/docs/src/developers/ai_policy.md +++ b/docs/src/developers/ai_policy.md @@ -8,8 +8,8 @@ and [SciPy](https://scipy.github.io/devdocs/dev/conduct/ai_policy.html). ## Communication -This part of the policy applies to all communication in our [community forum](/forum), -[developer chatroom](/chatroom), and [GitHub repositories](https://github.com/jump-dev). +This part of the policy applies to all communication in our[community forum](https://jump.dev/forum), +[developer chatroom](https://jump.dev/chatroom), and [GitHub repositories](https://github.com/jump-dev). Do not use AI to speak for you by copy-pasting a conversation in-and-out of a chatbot. @@ -34,7 +34,7 @@ When authoring new code in JuMP, keep in mind that the JuMP developers' two biggest bottlenecks are: 1. capacity for code review of new pull requests -2. on-going support and maintenance of existing features +2. on-going support and maintenance of existing features. For these reasons, please open an issue to discuss what you want to change _before_ opening a pull request. In the issue, describe what you want to change @@ -67,9 +67,10 @@ The best ways you can get involved are: trying to do something in JuMP, it means we didn't document things well enough. If you have suggestions for new tutorials we could add or how we could improve the documentation please leave a comment at - ["Suggestions for documentation improvements"](https://github.com/jump-dev/JuMP.jl/issues/2348) + ["Suggestions for documentation improvements"](https://github.com/jump-dev/JuMP.jl/issues/2348). 3. **Make your own packages**: write your own solver or JuMP extension under your personal account. There are no rules here. Vibe code as much as you like. Tell us about the things you have created by posting on the - [community forum](/forum), or give a talk at a [JuMP-dev workshop](https://jump.dev/categories/#jump-dev). + [community forum](https://jump.dev/forum), or give a talk at a + [JuMP-dev workshop](https://jump.dev/categories/#jump-dev). From c4e6d20245d2a6e05d08a2ab7b0ff4df62ebc0ac Mon Sep 17 00:00:00 2001 From: Oscar Dowson Date: Fri, 27 Mar 2026 11:00:39 +1300 Subject: [PATCH 03/11] Move new users part to the contributing guide --- docs/src/developers/ai_policy.md | 32 ----------------------- docs/src/developers/contributing.md | 39 ++++++++++++++++++++++++++--- 2 files changed, 35 insertions(+), 36 deletions(-) diff --git a/docs/src/developers/ai_policy.md b/docs/src/developers/ai_policy.md index 56123da28b8..4158a459a27 100644 --- a/docs/src/developers/ai_policy.md +++ b/docs/src/developers/ai_policy.md @@ -42,35 +42,3 @@ and why it matters to you. Large pull requests that add new features not previously discussed in an issue may be closed without review, even if they are correct and demonstrably useful. - -## New Contributors - -The JuMP developers welcome and encourage new contributors. - -The best ways you can get involved are: - -1. **Find and report bugs**: we can't fix things that we don't know about. There - are always new bugs (or inconsistencies that we should better document) to - find. Report a bug by [opening a GitHub issue](https://github.com/jump-dev/JuMP.jl/issues). - - Using AI tools to find bugs is acceptable, but you are responsible for - understanding and explaining _why_ the issue is a bug (see our - [Communication](@ref) policy). Rather than copy-pasting only the content of - the AI analysis into the issue, first explain what you did to find and - verify the bug, and then copy-paste the AI tool's output. - - Also note that there are many repositories in the JuMP ecosystem. Don't worry - if you open an issue in the "wrong" one; we can easily transfer it to the - correct repository. - -2. **Tell us about confusing parts of the documentation**: if you get stuck - trying to do something in JuMP, it means we didn't document things well - enough. If you have suggestions for new tutorials we could add or how we - could improve the documentation please leave a comment at - ["Suggestions for documentation improvements"](https://github.com/jump-dev/JuMP.jl/issues/2348). - -3. **Make your own packages**: write your own solver or JuMP extension under - your personal account. There are no rules here. Vibe code as much as you - like. Tell us about the things you have created by posting on the - [community forum](https://jump.dev/forum), or give a talk at a - [JuMP-dev workshop](https://jump.dev/categories/#jump-dev). diff --git a/docs/src/developers/contributing.md b/docs/src/developers/contributing.md index 7075b4bae3c..bdccca0b79d 100644 --- a/docs/src/developers/contributing.md +++ b/docs/src/developers/contributing.md @@ -1,6 +1,7 @@ # How to contribute to JuMP -Welcome, this document explains some ways you can contribute to JuMP. +The JuMP developers welcome and encourage new contributors. This document +explains some ways you can contribute to JuMP. ## Code of Conduct @@ -25,7 +26,37 @@ If you're interested in contributing code to JuMP, the next place to join is the [developer chatroom](https://jump.dev/chatroom). Let us know what you have in mind, and we can point you in the right direction. -## Improve the documentation +## The best ways to contribute + +The best ways you can get involved are: + +1. **Find and report bugs**: we can't fix things that we don't know about. There + are always new bugs (or inconsistencies that we should better document) to + find. Report a bug by [opening a GitHub issue](https://github.com/jump-dev/JuMP.jl/issues). + + Using AI tools to find bugs is acceptable, but you are responsible for + understanding and explaining _why_ the issue is a bug in your own words. + Rather than copy-pasting only the content of the AI analysis into the issue, + first explain what you did to find and verify the bug, and then copy-paste + the AI tool's output. + + Also note that there are many repositories in the JuMP ecosystem. Don't worry + if you open an issue in the "wrong" one; we can easily transfer it to the + correct repository. + +2. **Tell us about confusing parts of the documentation**: if you get stuck + trying to do something in JuMP, it means we didn't document things well + enough. If you have suggestions for new tutorials we could add or how we + could improve the documentation please leave a comment at + ["Suggestions for documentation improvements"](https://github.com/jump-dev/JuMP.jl/issues/2348). + +3. **Make your own packages**: write your own solver or JuMP extension under + your personal account. There are no rules here. Vibe code as much as you + like. Tell us about the things you have created by posting on the + [community forum](https://jump.dev/forum), or give a talk at a + [JuMP-dev workshop](https://jump.dev/categories/#jump-dev). + +## How to improve the documentation Chances are, if you asked (or answered) a question on the community forum, then it is a sign that the [documentation](https://jump.dev/JuMP.jl/dev/) could be @@ -51,7 +82,7 @@ change locally and then use Git to submit a pull request. (See [developer chatroom](https://jump.dev/chatroom) and we will walk you through the process. -## File a bug report +## How to file a bug report Another way to contribute to JuMP is to file [bug reports](https://github.com/jump-dev/JuMP.jl/issues/new?template=bug_report.md). @@ -66,7 +97,7 @@ before posting. You can also find a copy of that info first. Someone will either help you fix the problem, or let you know the most appropriate place to open a bug report. -## Contribute code to JuMP +## How to contribute code to JuMP Finally, you can also contribute code to JuMP. From b1f6fc2dd3c2c4b8bdb2f228d23301f4a10b00bc Mon Sep 17 00:00:00 2001 From: Oscar Dowson Date: Fri, 27 Mar 2026 11:08:55 +1300 Subject: [PATCH 04/11] Update --- docs/src/developers/ai_policy.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/src/developers/ai_policy.md b/docs/src/developers/ai_policy.md index 4158a459a27..f74bc682ff5 100644 --- a/docs/src/developers/ai_policy.md +++ b/docs/src/developers/ai_policy.md @@ -1,20 +1,20 @@ # AI Policy This document describes how the JuMP developers will manage and respond to -AI-assisted contributions to the JuMP ecosystem. +AI-assisted contributions to the JuMP ecosystem. The intent of the policy is to +balance the benefits of AI-assisted contributions against the long-term +maintenance requirement of the JuMP ecosystem. It was inspired by similar policies in [SymPy](https://docs.sympy.org/dev/contributing/ai-generated-code-policy.html) and [SciPy](https://scipy.github.io/devdocs/dev/conduct/ai_policy.html). ## Communication -This part of the policy applies to all communication in our[community forum](https://jump.dev/forum), +This part of the policy applies to all communication in our [community forum](https://jump.dev/forum), [developer chatroom](https://jump.dev/chatroom), and [GitHub repositories](https://github.com/jump-dev). -Do not use AI to speak for you by copy-pasting a conversation in-and-out of a -chatbot. - -We would rather speak to you directly, errors and grammatical mistakes included. +Do not use AI to generate written communication. Write in your own words. +Human-to-human communication is essential for an open source community to thrive. If English is not your first language, consider providing both a machine generated translation into English and the original text in your preferred From a493b8697602feecc978efccbcfa12ac2d4b1b65 Mon Sep 17 00:00:00 2001 From: Oscar Dowson Date: Fri, 27 Mar 2026 11:55:38 +1300 Subject: [PATCH 05/11] Update --- docs/src/developers/contributing.md | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/docs/src/developers/contributing.md b/docs/src/developers/contributing.md index bdccca0b79d..2543a0247f1 100644 --- a/docs/src/developers/contributing.md +++ b/docs/src/developers/contributing.md @@ -23,8 +23,8 @@ help answer questions on the forum. ## Join the developer chatroom If you're interested in contributing code to JuMP, the next place to join is the -[developer chatroom](https://jump.dev/chatroom). Let us know what you -have in mind, and we can point you in the right direction. +[developer chatroom](https://jump.dev/chatroom). Let us know what you have in +mind, and we can point you in the right direction. ## The best ways to contribute @@ -75,12 +75,11 @@ on how to do this.) If your change is larger, or touches multiple files, you will need to make the change locally and then use Git to submit a pull request. (See -[Contribute code to JuMP](@ref) below for more on this.) +[How to contribute code to JuMP](@ref) below for more on this.) !!! tip - If you need any help, come join the - [developer chatroom](https://jump.dev/chatroom) and we will walk - you through the process. + If you need any help, come join the [developer chatroom](https://jump.dev/chatroom) + and we will walk you through the process. ## How to file a bug report @@ -92,8 +91,7 @@ before posting. You can also find a copy of that info [here](https://github.com/jump-dev/JuMP.jl/blob/master/.github/ISSUE_TEMPLATE/bug_report.md). !!! tip - If you're unsure whether you have a real bug, post on the - [community forum](https://jump.dev/forum) + If you're unsure whether you have a real bug, post on the [community forum](https://jump.dev/forum) first. Someone will either help you fix the problem, or let you know the most appropriate place to open a bug report. @@ -120,14 +118,14 @@ JuMP is similar to the following: The first step is to find an [open issue](https://github.com/jump-dev/JuMP.jl/issues) (or open a new one) for the problem you want to solve. Then, _before_ spending too much time on it, discuss what you are planning to do in the issue to see if -other contributors are fine with your proposed changes. Getting feedback early can -improve code quality, and avoid time spent writing code that does not get merged into -JuMP. +other contributors are fine with your proposed changes. Getting feedback early +can improve code quality and avoid time spent writing code that does not get +merged into JuMP. !!! tip At this point, remember to be patient and polite; you may get a _lot_ of - comments on your issue. However, do not be afraid. Comments mean that people are - willing to help you improve the code that you are contributing to JuMP. + comments on your issue. However, do not be afraid. Comments mean that people + are willing to help you improve the code that you are contributing to JuMP. **Step 2: fork JuMP** From 1e6791d6060e4fe4d810df5cb92b071b6b31c8c5 Mon Sep 17 00:00:00 2001 From: Oscar Dowson Date: Fri, 27 Mar 2026 14:01:31 +1300 Subject: [PATCH 06/11] Update --- docs/src/developers/ai_policy.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/docs/src/developers/ai_policy.md b/docs/src/developers/ai_policy.md index f74bc682ff5..a5b14e0806a 100644 --- a/docs/src/developers/ai_policy.md +++ b/docs/src/developers/ai_policy.md @@ -1,9 +1,14 @@ # AI Policy This document describes how the JuMP developers will manage and respond to -AI-assisted contributions to the JuMP ecosystem. The intent of the policy is to -balance the benefits of AI-assisted contributions against the long-term -maintenance requirement of the JuMP ecosystem. +AI-assisted contributions to the JuMP ecosystem. + +“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. + +The intent of the policy is to balance the benefits of AI-assisted contributions +against the long-term maintenance requirement of the JuMP ecosystem. It was inspired by similar policies in [SymPy](https://docs.sympy.org/dev/contributing/ai-generated-code-policy.html) and [SciPy](https://scipy.github.io/devdocs/dev/conduct/ai_policy.html). From 60e1817a26a69e0c9e96cf3996c53872507b8441 Mon Sep 17 00:00:00 2001 From: Oscar Dowson Date: Fri, 27 Mar 2026 15:14:40 +1300 Subject: [PATCH 07/11] Update --- docs/src/developers/ai_policy.md | 35 +++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/docs/src/developers/ai_policy.md b/docs/src/developers/ai_policy.md index a5b14e0806a..6f76d6ba8b7 100644 --- a/docs/src/developers/ai_policy.md +++ b/docs/src/developers/ai_policy.md @@ -25,15 +25,30 @@ If English is not your first language, consider providing both a machine generated translation into English and the original text in your preferred language. -## Code contributions +## Responsibility -This part of the policy applies to all pull requests and issues in our -[GitHub repositories](https://github.com/jump-dev). +You are responsible for any code you submit to JuMP's repositories. 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 in your own words. In explaining your contribution, do not use AI to +automatically generate descriptions; see our [Communication](@ref) policy. -We expect and encourage users to use AI assistance when developing. You do not -need to disclose what parts you used AI assistance for, but you are responsible -for all code that you submit to JuMP. However, do not use AI to author the text -descriptions of pull requests and issues; see our [Communication](@ref) policy. +## Copyright + +All code in JuMP-related repositories is released under an open source license +(the exact license depends on the repository). Contributors license their code +under the same license. That means contributors must own the copyright of any +code you submit. It is your responsibility to not infringe on others copyright. +We will reject any pull requests where the copyright is in question. + +## Disclosure + +You must disclose whether AI has been used to assist in the development of your +pull request. If so, you must document which tools 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 When authoring new code in JuMP, keep in mind that the JuMP developers' two biggest bottlenecks are: @@ -47,3 +62,9 @@ and why it matters to you. Large pull requests that add new features not previously discussed in an issue may be closed without review, even if they are correct and demonstrably useful. + +## 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](@ref) section above. From 65ecc0bfeff2d148b584851a24a7a9a15e166de5 Mon Sep 17 00:00:00 2001 From: Oscar Dowson Date: Fri, 27 Mar 2026 16:22:46 +1300 Subject: [PATCH 08/11] Update --- docs/src/developers/ai_policy.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/src/developers/ai_policy.md b/docs/src/developers/ai_policy.md index 6f76d6ba8b7..e572a077571 100644 --- a/docs/src/developers/ai_policy.md +++ b/docs/src/developers/ai_policy.md @@ -3,8 +3,8 @@ This document describes how the JuMP developers will manage and respond to AI-assisted contributions to the JuMP ecosystem. -“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 +"AI" herein refers to generative AI tools like large language models that can +generate, edit, and review software code; create and manipulate images; or generate human-like communication. The intent of the policy is to balance the benefits of AI-assisted contributions From 47c7a33e6ad9f780ebaab12a608b44d546f3a85f Mon Sep 17 00:00:00 2001 From: Oscar Dowson Date: Tue, 31 Mar 2026 14:00:03 +1300 Subject: [PATCH 09/11] Update --- docs/src/developers/ai_policy.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/src/developers/ai_policy.md b/docs/src/developers/ai_policy.md index e572a077571..003052df995 100644 --- a/docs/src/developers/ai_policy.md +++ b/docs/src/developers/ai_policy.md @@ -56,9 +56,10 @@ biggest bottlenecks are: 1. capacity for code review of new pull requests 2. on-going support and maintenance of existing features. -For these reasons, please open an issue to discuss what you want to change -_before_ opening a pull request. In the issue, describe what you want to change -and why it matters to you. +For these reasons, if you want to add a new feature or undertake a large +refactor, please open an issue to discuss what you want to change _before_ +opening a pull request. In the issue, describe what you want to change and why +it matters to you. Large pull requests that add new features not previously discussed in an issue may be closed without review, even if they are correct and demonstrably useful. From ac0f5d753a7ac5f138fad6a24d8d344f1d0fc523 Mon Sep 17 00:00:00 2001 From: Oscar Dowson Date: Tue, 31 Mar 2026 14:02:48 +1300 Subject: [PATCH 10/11] Update --- docs/src/developers/ai_policy.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/src/developers/ai_policy.md b/docs/src/developers/ai_policy.md index 003052df995..efcd1537250 100644 --- a/docs/src/developers/ai_policy.md +++ b/docs/src/developers/ai_policy.md @@ -30,8 +30,11 @@ language. You are responsible for any code you submit to JuMP's repositories. 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 in your own words. In explaining your contribution, do not use AI to -automatically generate descriptions; see our [Communication](@ref) policy. +and explain in your own words. + +If you use AI to automatically generate descriptions, please first start with a +human-written description of your changes, and then provide a properly +identified (see [Disclosure](@ref)) and polished AI summary. ## Copyright From 55a879bdfb53e0c63fc8d77af0b7f40af4aa2894 Mon Sep 17 00:00:00 2001 From: Oscar Dowson Date: Wed, 1 Apr 2026 08:57:16 +1300 Subject: [PATCH 11/11] Apply suggestion from @odow --- docs/src/developers/ai_policy.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/developers/ai_policy.md b/docs/src/developers/ai_policy.md index efcd1537250..7ec4583e3ca 100644 --- a/docs/src/developers/ai_policy.md +++ b/docs/src/developers/ai_policy.md @@ -51,7 +51,7 @@ pull request. If so, you must document which tools 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 +## Pull Requests When authoring new code in JuMP, keep in mind that the JuMP developers' two biggest bottlenecks are: