|
2 | 2 | ## How to contribute to NanoXLSX |
3 | 3 |
|
4 | 4 | ### Preamble |
5 | | - |
6 | 5 | Thank you very much for your interest in NanoXLSX. This library is maintained completely based on community effort and is currently not backed by a company or organization. Any contribution is highly appreciated and helps to increase the quality and relevance of NanoXLSX, [PicoXLSX](https://github.com/rabanti-github/PicoXLSX) and [NanoXLSX4J](https://github.com/rabanti-github/NanoXLSX4j). |
7 | 6 |
|
8 | 7 | However, to ensure a good experience for everyone (library users, developers, or other contributors), we kindly ask to follow the recommendations in this document when contributing to the library |
9 | 8 |
|
10 | 9 | ### Creating an issue |
11 | 10 |
|
12 | 11 | #### General |
13 | | - |
14 | 12 | * Please use one of the provided issue templates if applicable |
15 | 13 | * Please use English as common language. If you don't feel confident about this, don't worry. [DeepL]( https://www.deepl.com/translator) or other online translators can help to write an issue quite smoothly |
16 | 14 | * Please only open an issue if that issue may be relevant to you or another party, and if you are willing to reply to upcoming questions or request for clarification. Abandoned or irrelevant issues may be closed after some weeks or months |
@@ -56,6 +54,18 @@ However, to ensure a good experience for everyone (library users, developers, or |
56 | 54 | * Excessive use of the var keyword (The goal of the library is to make its usage as clear as possible and that code snippets are always appropriately typed, even if the usings are not available) |
57 | 55 | * Uses cryptic variable or function names (`CalcAmount` may be OK as function name , but `GT56R` may not) |
58 | 56 | * Introduces (inline) hard-coded values that are either already defined as constants or could be substituted by an existing enum or similar code parts |
59 | | - * Code that is clearly copied from somewhere else or is AI generated |
60 | | - * External sources: Ensure compliance with the licenses. Don’t use code that may have a more restrictive license than NanoXLSX (MIT) or that has no license declaration |
61 | | - * AI: That’s great, and we love what AI can achieve nowadays! But please, revise the code, check it, and remove unnecessary comments. Ensure that this code cannot cause a licensing issue too |
| 57 | + * Code that is clearly copied from external sources: Ensure compliance with the licenses. Don’t use code that may have a more restrictive license than NanoXLSX (MIT) or that has no license declaration |
| 58 | + |
| 59 | +### AI generated code |
| 60 | + |
| 61 | +Some promises were made, some were not kept, and some expectations were far exceeded. |
| 62 | +We have come to the conclusion that AI-generated code (especially from AI agents) can significantly increase both productivity and code quality. However, the following must be observed when submitting PRs that include AI-generated code: |
| 63 | + |
| 64 | +* Please do not submit very large AI-driven refactorings without discussing them first. During code reviews, we must ensure that only the necessary scope has been changed in order to prevent side effects, compatibility issues, or inconsistencies. |
| 65 | +* Please make sure to carefully review AI-generated code before submitting it. Even an AI can have a bad day. |
| 66 | +* Please remove unnecessary comments, TODOs (where not needed), and other markup that only serves the AI. If you create (or have generated) context files for the code, do not commit them at this time. **Note**: A decision may be made later on whether to introduce a dedicated context directory (for Copilots / agents, etc.). |
| 67 | +* Please ensure that AI-generated code does not break any unit tests. |
| 68 | +* Please ensure that AI-generated unit tests are meaningful (not: `Assert.True(true)` or similar). |
| 69 | +* Please ensure that AI-generated code follows the project’s defined contribution, coding, and code style guidelines. |
| 70 | + |
| 71 | +Happy coding! 🤖 |
0 commit comments