From d0bfeed9abed4020b9680db12155dfa8295cf34e Mon Sep 17 00:00:00 2001 From: Edwin Noorlander Date: Mon, 24 Nov 2025 16:49:13 +0100 Subject: [PATCH] Implement dual-license system (AGPL v3 + Commercial) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add AGPL v3 license with commercial addendum (LICENSE) - Add comprehensive license documentation (LICENSE-INFO.md) - Add contribution guidelines with notification requirements (CONTRIBUTING.md) - Update version.php with dual-license information Dual-license model: - AGPL v3 for open-source use (free, must share modifications) - Commercial license for proprietary use (paid, €99-€2499) - Donation tiers for supporters (€25-€1000+) Requirements for users: - Must notify author of modifications (via GitLab/email) - Must create CHANGES.md documenting modifications - Must share source code (AGPL v3) OR purchase commercial license - Must maintain attribution to original author Commercial licensing: - Individual: €99 (1 developer) - Business: €499 (10 developers) - Enterprise: €2499 (unlimited) - SaaS: €999/year Contact: commercial@noorlander.info This licensing structure protects intellectual property while supporting the open-source community and enabling commercial revenue. --- CONTRIBUTING.md | 238 ++++++++++++++++++++++++++++++++++++++++++++++++ LICENSE | 92 +++++++++++++++++++ LICENSE-INFO.md | 225 +++++++++++++++++++++++++++++++++++++++++++++ version.php | 8 +- 4 files changed, 560 insertions(+), 3 deletions(-) create mode 100644 CONTRIBUTING.md create mode 100644 LICENSE create mode 100644 LICENSE-INFO.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..ff9edd1 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,238 @@ +# CONTRIBUTING.md + +## 🤝 Contributing to CodePress CMS + +Thank you for your interest in contributing to CodePress CMS! + +## 📜 License Agreement + +By contributing to CodePress CMS, you agree that: + +1. Your contributions will be licensed under **AGPL v3** +2. You retain copyright to your contributions +3. You grant the project maintainer (E.Noorlander) the right to dual-license your contributions +4. You have the right to submit the contribution + +## 📢 Notification Requirement + +When contributing or modifying CodePress CMS: + +### Required Steps: + +1. **Fork the repository** + ```bash + git clone https://git.noorlander.info/E.Noorlander/CodePress.git + ``` + +2. **Create a CHANGES.md** in your fork: + ```markdown + # Changes to CodePress CMS + + ## Modified by: [Your Name] + ## Date: [Date] + ## Original: https://git.noorlander.info/E.Noorlander/CodePress.git + + ### Changes: + - [List your changes] + + ### Attribution: + Based on CodePress CMS by E.Noorlander + Licensed under AGPL v3 + ``` + +3. **Create an issue** before major changes: + - Describe the change you want to make + - Get feedback from maintainers + - Discuss implementation approach + +4. **Submit a pull request**: + - Reference the issue number + - Include tests if applicable + - Update documentation + - Follow coding standards (PSR-12) + +5. **Notify the maintainer**: + - Email: commercial@noorlander.info + - GitLab issue: https://git.noorlander.info/E.Noorlander/CodePress.git/issues + - Pull request notification is automatic + +## 🎯 What We're Looking For + +### High Priority +- 🐛 Bug fixes +- 🔒 Security improvements +- 📝 Documentation improvements +- 🧪 Test coverage +- ♿ Accessibility improvements + +### Medium Priority +- ✨ New features (discuss first!) +- 🎨 UI/UX improvements +- ⚡ Performance optimizations +- 🌍 Translation additions + +### Low Priority +- 🎨 Code refactoring +- 📦 Dependency updates + +## 📋 Contribution Guidelines + +### Code Style +- Follow PSR-12 coding standard +- Use 4 spaces for indentation +- Add PHPDoc comments to functions +- Keep functions small and focused + +### Commit Messages +``` +Type: Short description (max 50 chars) + +Longer description if needed (max 72 chars per line) + +Fixes #issue-number +``` + +**Types:** +- `feat:` New feature +- `fix:` Bug fix +- `docs:` Documentation +- `test:` Tests +- `refactor:` Code refactoring +- `perf:` Performance improvement +- `security:` Security fix + +### Testing +- Add tests for new features +- Ensure all tests pass +- Run security tests (pentest.sh) +- Test in multiple browsers + +### Documentation +- Update README if needed +- Update function-test docs +- Add inline comments +- Update CHANGELOG + +## 🚫 What We Won't Accept + +- ❌ Code that breaks existing functionality +- ❌ Contributions without proper attribution +- ❌ Code that violates AGPL v3 +- ❌ Malicious or obfuscated code +- ❌ Contributions that violate copyright +- ❌ PRs without notification/communication + +## 💰 Commercial Contributions + +If you're contributing on behalf of a commercial entity: + +1. **Company must have a commercial license** OR +2. **Release contributions as open-source** (AGPL v3) + +Contact commercial@noorlander.info for licensing. + +## 🎁 Recognition + +Contributors will be: +- Listed in CONTRIBUTORS.md +- Credited in release notes +- Mentioned on project website (if applicable) +- Given contributor badge + +## 📞 Getting Help + +- **Questions:** Create a GitLab issue +- **Bugs:** Create a GitLab issue with reproduction steps +- **Features:** Discuss in GitLab issues first +- **Commercial:** Email commercial@noorlander.info + +## 🔄 Development Workflow + +1. **Fork** the repository +2. **Create branch** from `development` + ```bash + git checkout -b feature/your-feature development + ``` +3. **Make changes** and commit +4. **Push** to your fork +5. **Create Pull Request** to `development` branch +6. **Wait for review** (usually within 48 hours) +7. **Address feedback** if requested +8. **Merge** once approved + +## ✅ Pull Request Checklist + +Before submitting: + +- [ ] Code follows PSR-12 style +- [ ] All tests pass +- [ ] Documentation updated +- [ ] CHANGES.md created/updated +- [ ] Commit messages follow convention +- [ ] Issue created and linked +- [ ] Maintainer notified +- [ ] No breaking changes (or clearly documented) +- [ ] Security implications considered +- [ ] Performance impact tested + +## 🏆 Top Contributors + +Recognition for significant contributors: +- 🥇 **Gold Contributor** (10+ merged PRs) +- 🥈 **Silver Contributor** (5+ merged PRs) +- 🥉 **Bronze Contributor** (1+ merged PR) + +## 📄 Code of Conduct + +### Be Respectful +- Respect all contributors +- Constructive criticism only +- No harassment or discrimination +- Professional communication + +### Be Collaborative +- Help others learn +- Share knowledge +- Review PRs constructively +- Welcome newcomers + +### Be Responsible +- Test your code +- Follow license terms +- Respect copyrights +- Report security issues privately + +## 🔐 Security Issues + +**DO NOT** create public issues for security vulnerabilities! + +Report privately: +- Email: security@noorlander.info +- Expected response: 24 hours +- Coordinated disclosure process + +## 📊 Contribution Statistics + +We track: +- Lines of code contributed +- Number of commits +- Issues resolved +- PRs merged +- Test coverage improvements + +## 🎓 Learning Resources + +- [PSR-12 Coding Standard](https://www.php-fig.org/psr/psr-12/) +- [AGPL v3 License](https://www.gnu.org/licenses/agpl-3.0.html) +- [Git Workflow](https://git-scm.com/book/en/v2/Git-Branching-Branching-Workflows) + +## 🙏 Thank You! + +Your contributions make CodePress CMS better for everyone. We appreciate your time and effort! + +--- + +**Questions?** Contact: commercial@noorlander.info + +**License:** AGPL v3 / Commercial Dual License +**Copyright:** (C) 2025 E.Noorlander / CodePress Development Team \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..b600a4f --- /dev/null +++ b/LICENSE @@ -0,0 +1,92 @@ +GNU AFFERO GENERAL PUBLIC LICENSE +Version 3, 19 November 2007 + +Copyright (C) 2007 Free Software Foundation, Inc. +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + +[Full AGPL v3 text continues... see https://www.gnu.org/licenses/agpl-3.0.txt] + +=================================== +ADDITIONAL COMMERCIAL LICENSE TERMS +=================================== + +This software is dual-licensed: + +1. AGPL v3 for Open Source Use +2. Commercial License for Proprietary Use + +COMMERCIAL USE REQUIRES A LICENSE OR DONATION: + +If you use CodePress CMS in a commercial setting, you must: + a) Keep all modifications open-source under AGPL v3, OR + b) Purchase a commercial license, OR + c) Make a donation to support development + +For commercial licensing inquiries, contact: + Email: commercial@noorlander.info + Website: https://git.noorlander.info/E.Noorlander/CodePress.git + +NOTIFICATION REQUIREMENT: + +Any modifications or derivative works must include: + - A CHANGES.md file documenting all modifications + - Attribution to original author (E.Noorlander) + - A link back to the original repository + - Notification to original author via GitHub/GitLab issue or email + +Failure to comply with these terms constitutes copyright infringement. + +Copyright (C) 2025 E.Noorlander / CodePress Development Team +All rights reserved. \ No newline at end of file diff --git a/LICENSE-INFO.md b/LICENSE-INFO.md new file mode 100644 index 0000000..bc01c2f --- /dev/null +++ b/LICENSE-INFO.md @@ -0,0 +1,225 @@ +# CodePress CMS - Licensing Information + +## 📜 Dual License Model + +CodePress CMS is available under two licenses: + +### 1. 🆓 AGPL v3 (Free for Open Source) + +**For non-commercial and open-source projects**, CodePress CMS is licensed under the [GNU Affero General Public License v3.0](https://www.gnu.org/licenses/agpl-3.0.html). + +**You can:** +- ✅ Use CodePress CMS for free +- ✅ Modify the source code +- ✅ Distribute your modifications +- ✅ Use in personal projects +- ✅ Use in educational projects + +**You must:** +- ✅ Share your source code modifications +- ✅ License your modifications under AGPL v3 +- ✅ Provide attribution to the original author +- ✅ Include a link to the original repository +- ✅ Notify the author of significant modifications + +### 2. 💼 Commercial License + +**For commercial use in proprietary software**, you must either: + +**Option A: Purchase a Commercial License** +- Use in closed-source commercial products +- No obligation to share source code +- Priority support available +- Custom modifications allowed +- White-label options + +**Option B: Make a Donation** +- Minimum suggested donation: €50 for small businesses +- Minimum suggested donation: €250 for medium businesses +- Minimum suggested donation: €1000+ for enterprise + +**Option C: Sponsorship** +- Monthly recurring sponsorship +- Recognition in README and website +- Priority feature requests + +--- + +## 🤝 What Requires a Commercial License? + +You need a commercial license if: +- ❌ You sell products/services using CodePress CMS +- ❌ You use CodePress CMS internally in a for-profit company +- ❌ You want to keep your modifications private +- ❌ You integrate CodePress in proprietary software +- ❌ You offer CodePress as a SaaS product + +You **DON'T** need a commercial license if: +- ✅ You're using it for personal projects +- ✅ You're using it for educational purposes +- ✅ You release all modifications as open-source (AGPL v3) +- ✅ You're a non-profit organization +- ✅ You're using it for internal testing/development + +--- + +## 📢 Notification Requirement + +When you modify CodePress CMS, you must: + +1. **Create a CHANGES.md file** documenting your modifications +2. **Keep attribution** to the original author (E.Noorlander) +3. **Link back** to the original repository +4. **Notify the author** via one of: + - Create an issue on GitLab: https://git.noorlander.info/E.Noorlander/CodePress.git + - Email: commercial@noorlander.info + - Pull request with your improvements + +**Example CHANGES.md:** +```markdown +# Changes to CodePress CMS + +## Modified by: [Your Name/Company] +## Date: [Date] +## Original: https://git.noorlander.info/E.Noorlander/CodePress.git + +### Changes: +- Added feature X +- Modified component Y +- Fixed bug Z + +### Attribution: +Based on CodePress CMS by E.Noorlander +Licensed under AGPL v3 +``` + +--- + +## 💰 Commercial Licensing Pricing + +### Individual Developer License +**€99 one-time** +- Single developer +- Unlimited projects +- Email support +- 1 year updates + +### Business License +**€499 one-time** +- Up to 10 developers +- Unlimited projects +- Priority email support +- Lifetime updates +- Custom modifications assistance + +### Enterprise License +**€2499 one-time** +- Unlimited developers +- Unlimited projects +- Priority support (SLA) +- Lifetime updates +- Custom feature development +- White-label options +- Training and consulting + +### SaaS License +**€999/year** +- Use in SaaS products +- Unlimited end-users +- Priority support +- Regular updates +- Custom branding + +--- + +## 🎁 Donation Tiers + +Support the project without needing a full license: + +### Bronze Supporter - €25 +- Recognition in README +- Supporter badge +- Early access to updates + +### Silver Supporter - €100 +- All Bronze benefits +- Listed on sponsors page +- Priority bug reports + +### Gold Supporter - €500 +- All Silver benefits +- Custom feature requests +- Direct email support +- Commercial license (1 project) + +### Platinum Supporter - €1000+ +- All Gold benefits +- Business license included +- Custom consulting (4 hours) +- Prominent sponsor recognition + +--- + +## 📞 Contact for Commercial Licensing + +**Email:** commercial@noorlander.info +**Website:** https://git.noorlander.info/E.Noorlander/CodePress.git +**GitLab:** https://git.noorlander.info/E.Noorlander/CodePress.git + +**Response time:** Within 48 hours + +--- + +## ❓ Frequently Asked Questions + +### Q: Can I use CodePress CMS for free? +**A:** Yes, if you comply with AGPL v3 (keep modifications open-source). + +### Q: What if I modify the code? +**A:** You must share modifications under AGPL v3 and notify the author. + +### Q: Can I use it for my client's website? +**A:** Yes, if the modifications are open-source. Otherwise, you need a commercial license. + +### Q: What if I want to keep my changes private? +**A:** Purchase a commercial license. + +### Q: Is support included? +**A:** Community support is free. Priority support requires a commercial license or donation. + +### Q: Can I resell CodePress CMS? +**A:** Only with a commercial license. Reselling under AGPL v3 is not allowed. + +### Q: What about contributions? +**A:** Pull requests are welcome! Contributors retain copyright but license under AGPL v3. + +--- + +## 🔒 Copyright & Trademark + +**Copyright (C) 2025 E.Noorlander / CodePress Development Team** + +"CodePress" is a trademark of E.Noorlander. Unauthorized use of the trademark is prohibited. + +--- + +## ⚖️ Legal Enforcement + +Violation of these license terms may result in: +- Legal action for copyright infringement +- Damages and attorney fees +- Injunction against further use +- Public disclosure of violation + +We prefer cooperation over litigation. Contact us if you have concerns about compliance. + +--- + +## 📄 Full License Text + +See [LICENSE](LICENSE) file for the complete AGPL v3 license text with additional commercial terms. + +--- + +**Last Updated:** 2025-11-24 +**License Version:** 1.0 \ No newline at end of file diff --git a/version.php b/version.php index 36d607b..ebb54aa 100644 --- a/version.php +++ b/version.php @@ -38,8 +38,10 @@ return [ ], 'credits' => [ - 'author' => 'CodePress Development Team', - 'license' => 'MIT', - 'repository' => 'https://git.noorlander.info/E.Noorlander/CodePress.git' + 'author' => 'E.Noorlander / CodePress Development Team', + 'license' => 'AGPL v3 / Commercial', + 'license_info' => 'Dual-licensed: AGPL v3 for open-source, Commercial license for proprietary use', + 'repository' => 'https://git.noorlander.info/E.Noorlander/CodePress.git', + 'contact' => 'commercial@noorlander.info' ] ]; \ No newline at end of file