From fe8b4a850a524a569c69e32b19172a6c296b1e9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Fuhrmann?= Date: Wed, 23 Jul 2025 12:17:31 +0200 Subject: [PATCH 1/6] first draft of cla + issue/pr templates --- .gitea/issue_template.md | 22 ++++++++++++++++ .gitea/pull_request_template.md | 10 ++++++++ CONTRIBUTING.md | 45 +++++++++++++++++++++++++++++++++ README.md | 5 ++++ 4 files changed, 82 insertions(+) create mode 100644 .gitea/issue_template.md create mode 100644 .gitea/pull_request_template.md create mode 100644 CONTRIBUTING.md diff --git a/.gitea/issue_template.md b/.gitea/issue_template.md new file mode 100644 index 0000000..84d2e08 --- /dev/null +++ b/.gitea/issue_template.md @@ -0,0 +1,22 @@ +Thank you very much for your interest in TetGen! Reporting your issue here helps to improve the code. + +### Legal +By opening this issue, you agree to the terms of the contributor license agreement stated in [CONTRIBUTING.md](https://codeberg.org/TetGen/TetGen/src/branch/main/CONTRIBUTING.md) + +### Kind of issue (bug, feature request...): + +### Issue description: + +### Expected behavior: + +### Observed behavior: + +### Environment: + - TeGen version: + - OS (e.g. MacOS 14): + - Architecture (e.g. x64, aarch64): + - Compiler vendor + version: + +### Minimum working example: + +Please attach input data which allow to reproduce the problem. diff --git a/.gitea/pull_request_template.md b/.gitea/pull_request_template.md new file mode 100644 index 0000000..41425f1 --- /dev/null +++ b/.gitea/pull_request_template.md @@ -0,0 +1,10 @@ +Thank you very much for helping to improve TetGen! + +### Legal: +By opening this pull request, you agree to the terms of the contributor license agreement stated in [CONTRIBUTING.md](https://codeberg.org/TetGen/TetGen/src/branch/main/CONTRIBUTING.md) + +### Pull request description: + + +### Test data: +Please provide input data which help to test the feature implemented in the pull request. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..918e4fd --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,45 @@ +# Notes +- Contributors should be aware that under this CLA, commercial licenses for versions of TetGen which include their contributions under the MIT license be may provided to customers by the maintainers or their contract partners +# Contributor License Agreement (CLA) + +By submitting a contribution (including but not limited to code, documentation, or other materials) via a pull request, issue, or other means, Contributor agrees to the following terms: + +## Grant of License +Contributor hereby grants to the Project and its maintainers a perpetual, worldwide, non-exclusive, transferable, royalty-free, irrevocable license under all of Contributor's copyright and patent rights to: +- Use, reproduce, modify, distribute, and publicly display/perform the contribution under the GNU Affero General Public License v3 (AGPLv3) or any later version; +- Additionally, sublicense the contribution under the MIT License (included below) + +## MIT License Grant +Contributor agrees that their contribution may be made available under the following MIT License terms, in addition to AGPLv3: + +```text +Copyright (c) [Year] [Contributor's Name] + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` + +## Representations and Warranties +Contributor represents that: +- They are legally entitled to grant the above licenses; +- Their contributions are original works and do not violate third-party rights; +- They are not required to grant licenses under third-party terms (e.g., employer agreements). + +## No Obligation +The Project is under no obligation to accept or use any contribution. + diff --git a/README.md b/README.md index d9fe935..bceb4ef 100644 --- a/README.md +++ b/README.md @@ -28,3 +28,8 @@ It is planned to resume active development of TetGen in cooperation between the TetGen versions developed at WIAS are distributed under a dual licensing scheme. As an alternative to the use of TetGen under the AGPLv3 license, consider the option to obtain a commercial license for a fee. These licenses are offered by the Weierstrass Institute for Applied Analysis and Stochastics (WIAS). As a rule, licenses are provided "as-is", unlimited in time for a one time fee. Please send corresponding requests to: `tetgen at wias-berlin.de`. Please do not forget to include some description of your company and the realm of its activities. Due to the change of affiliation of Hang Si, details about the continuation of this dual licensing scheme for future versions of TetGen will be announced in the future. Please feel free to contact us if you have any questions. + +## Contributing + +By submitting a contribution (including but not limited to code, documentation, or other materials) via a pull request, issue, or other means, a contributor agrees to the terms of the contributor license agreement stated in [CONTRIBUTING.md](https://codeberg.org/TetGen/TetGen/src/branch/main/CONTRIBUTING.md) + From 19c62144b1e49a7a37ba9fcc1c8f86bd04fe2480 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Fuhrmann?= Date: Wed, 23 Jul 2025 12:18:19 +0200 Subject: [PATCH 2/6] move templates to .github --- {.gitea => .github}/issue_template.md | 0 {.gitea => .github}/pull_request_template.md | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename {.gitea => .github}/issue_template.md (100%) rename {.gitea => .github}/pull_request_template.md (100%) diff --git a/.gitea/issue_template.md b/.github/issue_template.md similarity index 100% rename from .gitea/issue_template.md rename to .github/issue_template.md diff --git a/.gitea/pull_request_template.md b/.github/pull_request_template.md similarity index 100% rename from .gitea/pull_request_template.md rename to .github/pull_request_template.md From 0e60cee0e4503a8e160b2c658b8de57b5b6b2ca0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Fuhrmann?= Date: Wed, 23 Jul 2025 18:20:26 +0200 Subject: [PATCH 3/6] update CLA after Discussion with T.K. --- .github/issue_template.md | 4 ++-- .github/pull_request_template.md | 2 +- CONTRIBUTING.md | 32 +++++++++++++++++++++++--------- 3 files changed, 26 insertions(+), 12 deletions(-) diff --git a/.github/issue_template.md b/.github/issue_template.md index 84d2e08..4d3d813 100644 --- a/.github/issue_template.md +++ b/.github/issue_template.md @@ -1,7 +1,7 @@ -Thank you very much for your interest in TetGen! Reporting your issue here helps to improve the code. +Thank you very much for your interest in TetGen! Reporting your issue helps to improve the code. ### Legal -By opening this issue, you agree to the terms of the contributor license agreement stated in [CONTRIBUTING.md](https://codeberg.org/TetGen/TetGen/src/branch/main/CONTRIBUTING.md) +By opening this issue, you agree to the terms of the Contributor License Agreement (CLA) stated in [CONTRIBUTING.md](https://codeberg.org/TetGen/TetGen/src/branch/main/CONTRIBUTING.md). ### Kind of issue (bug, feature request...): diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 41425f1..bf3dd3d 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,7 +1,7 @@ Thank you very much for helping to improve TetGen! ### Legal: -By opening this pull request, you agree to the terms of the contributor license agreement stated in [CONTRIBUTING.md](https://codeberg.org/TetGen/TetGen/src/branch/main/CONTRIBUTING.md) +By opening this issue, you agree to the terms of the Contributor License Agreement (CLA) stated in [CONTRIBUTING.md](https://codeberg.org/TetGen/TetGen/src/branch/main/CONTRIBUTING.md). ### Pull request description: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 918e4fd..771e7f3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,16 +1,13 @@ -# Notes -- Contributors should be aware that under this CLA, commercial licenses for versions of TetGen which include their contributions under the MIT license be may provided to customers by the maintainers or their contract partners # Contributor License Agreement (CLA) -By submitting a contribution (including but not limited to code, documentation, or other materials) via a pull request, issue, or other means, Contributor agrees to the following terms: +A "Contributor" is any person or entity that intentionally submits copyrighted material to the project, +including but not limited to code, documentation, or other material, via a pull request, issue, or other means. -## Grant of License -Contributor hereby grants to the Project and its maintainers a perpetual, worldwide, non-exclusive, transferable, royalty-free, irrevocable license under all of Contributor's copyright and patent rights to: -- Use, reproduce, modify, distribute, and publicly display/perform the contribution under the GNU Affero General Public License v3 (AGPLv3) or any later version; -- Additionally, sublicense the contribution under the MIT License (included below) +By submitting a contribution Contributor agrees to the following terms: -## MIT License Grant -Contributor agrees that their contribution may be made available under the following MIT License terms, in addition to AGPLv3: +## Dual AGPLv3/MIT License Grant +Contributor agrees that their contribution is provided under the GNU Affero General Public License v3 (AGPLv3) reproduced +in [LICENSE](https://codeberg.org/TetGen/TetGen/src/branch/main/LICENSE.md) or any later version and, in addition, under the following MIT License terms: ```text Copyright (c) [Year] [Contributor's Name] @@ -34,6 +31,23 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` + +## Annotating contributions to source code + +### Trivial changes +Trivial changes (e.g., 1-2 line fixes or typo fixes) inherit the AGPLv3 license of the project and without further annotation in addition are assumed to be licensed under the MIT license + +### Functions and nontrivial snippets of code +Functions and nontrivial snippets of code by default inherit the AGPLv3 license of the project and in addition shall be marked in a PR with an SPDX header as in this example: + ``` + # SPDX-License-Identifier: MIT + # Copyright (c) [Year] [Your Name] + void frobnicate(int ntet) + { + ... + } + ``` + ## Representations and Warranties Contributor represents that: - They are legally entitled to grant the above licenses; From 939f253212c8c6f5785dd017ee01f3706a573cf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Fuhrmann?= Date: Wed, 23 Jul 2025 18:22:30 +0200 Subject: [PATCH 4/6] try to fix link in readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bceb4ef..9990cdd 100644 --- a/README.md +++ b/README.md @@ -31,5 +31,5 @@ Due to the change of affiliation of Hang Si, details about the continuation of t ## Contributing -By submitting a contribution (including but not limited to code, documentation, or other materials) via a pull request, issue, or other means, a contributor agrees to the terms of the contributor license agreement stated in [CONTRIBUTING.md](https://codeberg.org/TetGen/TetGen/src/branch/main/CONTRIBUTING.md) +By submitting a contribution (including but not limited to code, documentation, or other materials) via a pull request, issue, or other means, a contributor agrees to the terms of the contributor license agreement stated in [CONTRIBUTING.md](CONTRIBUTING.md). From 49d04852f4a34a27eded68455c911dc1baa70d06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Fuhrmann?= Date: Wed, 23 Jul 2025 18:24:56 +0200 Subject: [PATCH 5/6] localize license link --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 771e7f3..4dabf02 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -7,7 +7,7 @@ By submitting a contribution Contributor agrees to the following terms: ## Dual AGPLv3/MIT License Grant Contributor agrees that their contribution is provided under the GNU Affero General Public License v3 (AGPLv3) reproduced -in [LICENSE](https://codeberg.org/TetGen/TetGen/src/branch/main/LICENSE.md) or any later version and, in addition, under the following MIT License terms: +in the file [LICENSE](LICENSE) or any later version and, in addition, under the following MIT License terms: ```text Copyright (c) [Year] [Contributor's Name] From 0b93af87729513aa1eaf9c0b41c4fcae7a64b600 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Fuhrmann?= Date: Tue, 29 Jul 2025 18:13:19 +0200 Subject: [PATCH 6/6] Update Contributor License Agreement for dual AGPLv3/MIT licensing With a little help of copilot/claude sonnet 4. - Add explicit CLA agreement checkbox to PR template - Update README with commercial licensing information and future CLA revision notice - Enable dual licensing strategy while maintaining contributor-friendly approach - Use license grants instead of copyright assignment for practical implementation --- .github/pull_request_template.md | 4 +++- CONTRIBUTING.md | 13 +++++-------- README.md | 2 +- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index bf3dd3d..3565c93 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,7 +1,9 @@ Thank you very much for helping to improve TetGen! ### Legal: -By opening this issue, you agree to the terms of the Contributor License Agreement (CLA) stated in [CONTRIBUTING.md](https://codeberg.org/TetGen/TetGen/src/branch/main/CONTRIBUTING.md). +By opening this pull request, you agree to the terms of the Contributor License Agreement (CLA) stated in [CONTRIBUTING.md](https://codeberg.org/TetGen/TetGen/src/branch/main/CONTRIBUTING.md). + +- [ ] I have read and agree to the Contributor License Agreement in CONTRIBUTING.md ### Pull request description: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4dabf02..0490557 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -7,11 +7,9 @@ By submitting a contribution Contributor agrees to the following terms: ## Dual AGPLv3/MIT License Grant Contributor agrees that their contribution is provided under the GNU Affero General Public License v3 (AGPLv3) reproduced -in the file [LICENSE](LICENSE) or any later version and, in addition, under the following MIT License terms: +in the file [LICENSE](LICENSE) or any later version and, in addition, grants the contribution under the MIT License terms below: ```text -Copyright (c) [Year] [Contributor's Name] - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights @@ -31,17 +29,16 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` - ## Annotating contributions to source code ### Trivial changes -Trivial changes (e.g., 1-2 line fixes or typo fixes) inherit the AGPLv3 license of the project and without further annotation in addition are assumed to be licensed under the MIT license +Trivial changes (e.g., 1-2 line fixes or typo fixes) inherit the AGPLv3 license of the project and without further annotation are also licensed under MIT as specified above. ### Functions and nontrivial snippets of code -Functions and nontrivial snippets of code by default inherit the AGPLv3 license of the project and in addition shall be marked in a PR with an SPDX header as in this example: +Functions and nontrivial snippets of code by default inherit the AGPLv3 license of the project and are also licensed under MIT as specified above. They shall be marked in a PR with an SPDX header as in this example: ``` - # SPDX-License-Identifier: MIT - # Copyright (c) [Year] [Your Name] + # SPDX-License-Identifier: AGPL-3.0-or-later OR MIT + # Copyright (c) [Year] [Contributor Name] void frobnicate(int ntet) { ... diff --git a/README.md b/README.md index ce02ba0..e8d89ee 100644 --- a/README.md +++ b/README.md @@ -31,5 +31,5 @@ Details about the extension of this dual licensing scheme for future versions of ## Contributing -By submitting a contribution (including but not limited to code, documentation, or other materials) via a pull request, issue, or other means, a contributor agrees to the terms of the contributor license agreement stated in [CONTRIBUTING.md](CONTRIBUTING.md). +By submitting a contribution (including but not limited to code, documentation, or other materials) via a pull request, issue, or other means, a contributor agrees to the terms of the contributor license agreement stated in [CONTRIBUTING.md](CONTRIBUTING.md). It is planned to revise this agreement, once the extension of the dual licensing scheme has been set up.