From 93d8c10191547bb52ad291ec87dbe3667294867c Mon Sep 17 00:00:00 2001 From: Tomasz Wejroch Date: Wed, 10 Dec 2025 12:47:10 +0100 Subject: [PATCH 1/2] Added CLA and edited other docs --- CLA.md | 133 +++++ CONTRIBUTING.md | 146 ++---- COPYING | 13 - Dockerfile | 1 - LICENSE | 646 +++++++++++++++++++++++-- README.md | 100 ++-- dbzero/setup.py | 2 +- pyproject.toml | 2 +- src/dbzero/object_model/CMakeLists.txt | 5 - tests/CMakeLists.txt | 24 - tests/unit_tests/CMakeLists.txt | 4 - tests/utils/CMakeLists.txt | 4 - 12 files changed, 847 insertions(+), 233 deletions(-) create mode 100644 CLA.md delete mode 100644 COPYING delete mode 100644 src/dbzero/object_model/CMakeLists.txt delete mode 100644 tests/CMakeLists.txt delete mode 100644 tests/unit_tests/CMakeLists.txt delete mode 100644 tests/utils/CMakeLists.txt diff --git a/CLA.md b/CLA.md new file mode 100644 index 00000000..11c4be71 --- /dev/null +++ b/CLA.md @@ -0,0 +1,133 @@ +# Contributor License Agreement (CLA) + +## dbzero Contributor License Agreement + +This Contributor License Agreement ("Agreement") is entered into by the party signing below ("You" or "Contributor"), and conveys certain license rights to the dbzero project maintainers ("We," "Us," or "Project") for Your contributions to dbzero. + +### 1. Definitions + +**"We," "Us," "Our"** means DBZero Software sp. z o.o. and its successors or assigns + +**"Contribution"** means any original work of authorship, including any modifications or additions to an existing work, that You intentionally submit to Us for inclusion in the dbzero project, in any form (source code, documentation, configuration files, etc.). + +**"Submit"** means any form of electronic, verbal, or written communication sent to Us or our representatives, including but not limited to communication on electronic mailing lists, source code control systems, issue tracking systems, and pull requests. + +**"dbzero"** means the dbzero Community Edition software project and all associated repositories, documentation, and materials. + +### 2. Grant of Rights + +#### 2.1 Copyright License +You hereby grant to Us and to recipients of software distributed by Us a perpetual, worldwide, non-exclusive, royalty-free, irrevocable copyright license to: +- Reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Your Contributions and such derivative works in source code or object code form +- Sublicense the above rights to third parties under any license terms, including proprietary or commercial licenses + +#### 2.2 Patent License +You hereby grant to Us and to recipients of software distributed by Us a perpetual, worldwide, non-exclusive, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer Your Contributions, where such license applies only to those patent claims licensable by You that are necessarily infringed by Your Contribution(s) alone or by combination of Your Contribution(s) with the work to which such Contribution(s) was submitted. + +If any entity institutes patent litigation against You, Us, or any other entity (including a cross-claim or counterclaim in a lawsuit) alleging that Your Contribution, or the work to which You have contributed, constitutes direct or contributory patent infringement, then any patent licenses granted to that entity under this Agreement for that Contribution or work shall terminate as of the date such litigation is filed. + +#### 2.3 Outbound License +Based on the grants of rights in Sections 2.1 and 2.2, if We include Your Contribution in the dbzero project: +- Your Contribution will be licensed to the public under the GNU Affero General Public License v3.0 (AGPL-3.0) as part of the dbzero project +- We reserve the right to also license Your Contribution under alternative licenses without any additional compensation to You, including proprietary licenses for commercial or other purposes + +#### 2.4 Moral Rights +To the fullest extent permitted under applicable law, You waive and agree not to assert any moral rights You may have in Your Contributions. In jurisdictions where moral rights cannot be waived, You agree not to assert such rights in a manner that would interfere with Our exercise of the licensed rights. + +### 3. Representations and Warranties + +You represent and warrant that: + +#### 3.1 Authority +You are legally entitled to grant the above licenses. If You are an individual and Your employer(s) has rights to intellectual property that You create that includes Your Contributions, You represent that: +- You have received permission from Your employer to make Contributions on behalf of that employer, OR +- Your employer has waived such rights for Your Contributions to the dbzero project, OR +- Your Contributions were created entirely on Your own time using Your own equipment and do not relate to Your employer's business + +#### 3.2 Originality +Each of Your Contributions is Your original creation. You represent that Your Contribution submissions include complete details of any third-party license or other restriction (including, but not limited to, related patents and trademarks) of which You are personally aware and which are associated with any part of Your Contributions. + +#### 3.3 No Conflicts +To Your knowledge, Your Contribution does not violate any third party's copyrights, trademarks, patents, or other intellectual property rights. + +### 4. No Obligation to Use + +You understand and agree that: +- The Project has no obligation to accept, include, or use any Contribution +- The decision to include any Contribution in any Project release is entirely at the discretion of the Project maintainers +- Your Contribution may be modified, replaced, or removed from the Project codebase at any time for any reason as a result of future changes or technical decisions +- If We do not include Your Contribution, all rights granted under Section 2 revert to You, except for any derivatives that were created during review + +### 5. Disclaimer of Warranty + +Your Contributions are provided "as is," without warranties or conditions of any kind, either express or implied, including, without limitation, any warranties or conditions of title, non-infringement, merchantability, or fitness for a particular purpose. + +### 6. Copyright Ownership and Reuse + +You retain ownership of the copyright in Your Contributions. Nothing in this Agreement transfers copyright ownership to the Project. You are free to use Your Contributions for any purpose, including in projects outside of dbzero. + +### 7. Notification and Remediation + +**7.1 Duty to Notify** +You agree to notify Us promptly in writing if: +- You become aware that any representation in Section 3 was inaccurate when made, OR +- A third party makes a claim against Your Contribution + +Such notification should include credible evidence supporting the claim. + +**7.2 Consequences of Inaccuracy** +If the Project determines that a representation in Section 3 was materially inaccurate: +- The licenses granted in Section 2 for affected Contributions may be revoked prospectively upon written notice +- The Project will remove affected Contributions from future releases +- You agree to cooperate in remediation, including potentially re-licensing corrected Contributions +- This does not affect licenses already granted for past releases that included the Contribution in good faith +- You remain responsible for any damages caused by breach of Your warranties + +### 8. Scope of Agreement + +This Agreement applies to all Contributions You submit to the dbzero project on or after the date You accept this Agreement. Each Contribution You submit is subject to the terms of this Agreement. + +### 9. Effective Date and Duration + +This Agreement becomes effective on the date You accept it. You may stop making Contributions at any time. However, the licenses granted in Section 2 for Contributions You have already made are irrevocable and will remain in effect even if You stop contributing. + +### 10. Limitation of Liability + +To the maximum extent permitted by applicable law: + +**For Contributors:** +In no event shall You be liable for any indirect, incidental, special, consequential, or punitive damages arising from this Agreement, except for: +- Willful misconduct or gross negligence +- Fraudulent misrepresentation in Section 3 +- Breach of confidentiality obligations (if any) + +**For the Project:** +In no event shall the Project be liable to You or other parties for any damages arising from acceptance, rejection, modification, or removal of Your Contributions. + +This does not limit liability that cannot be excluded or limited under applicable law. + +### 11. Severability + +If any provision of this Agreement is held to be invalid or unenforceable, the remaining provisions shall remain in full force and effect, and the invalid provision shall be modified to the minimum extent necessary to make it valid and enforceable. + +--- + +## How to Accept This Agreement + +This CLA is accepted when you click "I Agree" through CLA Assistant on your first pull request. + +By accepting this Agreement, you acknowledge that you have read, understood, and agree to be bound by its terms and conditions for all your current and future Contributions to dbzero. + +--- + +## Contact + +**Questions?** If you have questions about this CLA, please open an issue on GitHub before contributing. + +**Corporate CLA:** If you need a Corporate Contributor License Agreement, please contact the project maintainers. + +--- + +**Version:** 1.0 +**Last Updated:** December 9, 2025 +**Maintained by:** DBZero Software sp. z o.o. \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1c42f46e..531e0c4e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -15,7 +15,8 @@ Thank you for your interest in contributing to dbzero! We welcome contributions - [Reporting Bugs](#reporting-bugs) - [Suggesting Enhancements](#suggesting-enhancements) - [Documentation](#documentation) -- [Community](#community) +- [Contributor License Agreement](#contributor-license-agreement) +- [License](#license) ## Code of Conduct @@ -38,11 +39,11 @@ This project adheres to a code of conduct that all contributors are expected to ### Prerequisites -- C++ compiler (GCC 9+ or Microsoft C/C++ Optimizing Compiler 19.41+) -- Meson 0.55 or higher +- C++ compiler (GCC 13+ or Microsoft C/C++ Optimizing Compiler 19.41+) +- Meson - Ninja build system - Git -- Python 3.8 or higher (for Python components and tooling) +- Python 3.9 or higher (for Python components and tooling) - A virtual environment tool (venv, virtualenv, or conda) for Python dependencies ### Setting Up Your Environment @@ -76,7 +77,7 @@ This project adheres to a code of conduct that all contributors are expected to 3. **Install Python dependencies**: ```bash - pip install -e ".[dev]" # Install in editable mode with dev dependencies + pip install -r requirements.txt # Install dependencies ``` 4. **Verify the installation**: @@ -129,7 +130,7 @@ We welcome various types of contributions: Since the project is predominantly C++ (85%), these are our primary coding standards: -- Follow **Modern C++ (C++17/20)** best practices +- Follow **Modern C++** best practices - Use **meaningful variable and function names** with clear intent - Follow **RAII principles** for resource management - Prefer **smart pointers** over raw pointers @@ -141,7 +142,7 @@ Since the project is predominantly C++ (85%), these are our primary coding stand - **Naming Conventions**: - Classes/Structs: `PascalCase` - - Functions/Methods: `camelCase` or `snake_case` (be consistent within modules) + - Functions/Methods: `camelCase` - Variables: `snake_case` - Constants: `UPPER_SNAKE_CASE` - Namespaces: `lowercase` @@ -155,23 +156,10 @@ Since the project is predominantly C++ (85%), these are our primary coding stand */ ``` -- **Error Handling**: Use exceptions for exceptional cases, return codes for expected errors +- **Error Handling**: Use exceptions for exceptional cases, return values for expected errors - **Comments**: Write clear comments for complex logic, algorithms, and non-obvious decisions - **DRY Principle**: Extract common code into reusable functions and templates -#### C++ Formatting Tools - -```bash -# Format C++ code -clang-format -i $(find . -name '*.cpp' -o -name '*.h') - -# Static analysis -clang-tidy src/*.cpp -- -std=c++17 - -# Check for common issues -cppcheck --enable=all --suppress=missingInclude . -``` - ### Python Style Guide (Additional) For the Python components (~15% of the project): @@ -184,26 +172,10 @@ For the Python components (~15% of the project): #### Python Code Quality - **Type hints**: Use type annotations where appropriate -- **Docstrings**: Document all public modules, functions, classes, and methods using Google or NumPy style +- **Docstrings**: Document all public modules, functions, classes, and methods using NumPy style - **Comments**: Write clear comments for complex logic - **DRY principle**: Extract common code into reusable functions -#### Python Formatting Tools - -```bash -# Format Python code -black . - -# Sort imports -isort . - -# Lint code -flake8 . - -# Type checking -mypy . -``` - ## Testing Guidelines ### Writing Tests @@ -233,48 +205,8 @@ TEST(TestSuiteName, TestName) { ## Commit Message Guidelines -Write clear and meaningful commit messages following these conventions: - -### Format - -``` -(): - - - -