chore: add license to project

This commit is contained in:
Ralph Khreish
2025-03-30 21:41:23 +02:00
parent 197f6b0c53
commit aaca4253a6
13 changed files with 720 additions and 23 deletions

View File

@@ -0,0 +1,5 @@
---
"task-master-ai": patch
---
Add license to repo

200
APACHE-LICENSE Normal file
View File

@@ -0,0 +1,200 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
0. Additional Restrictions for Task Master AI
This Apache License 2.0 applies to all uses EXCEPT those that directly compete
with Task Master AI as defined in the LICENSE.md file. You MAY use this software
commercially to create and sell your own products and services, but you may NOT:
- Create products that directly compete with Task Master AI
- Sell Task Master AI itself as a service
- Create hosted/managed versions of Task Master AI
These restricted uses are governed by the Business Source License 1.1 (BSL 1.1).
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
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. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
Copyright 2025 Eyal Toledano and Ralph Khreish
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

91
BSL-LICENSE Normal file
View File

@@ -0,0 +1,91 @@
Business Source License 1.1
Parameters
Licensor: Eyal Toledano and Ralph Khreish
Licensed Work: Task Master AI
The Licensed Work is (c) 2025 Eyal Toledano and Ralph Khreish
Additional Use Grant: You may use Task Master AI to create and commercialize your own projects and products, as long as they do not directly compete with Task Master AI itself or attempt to resell Task Master AI's functionality as a service.
Change Date: 2025-03-30
Change License: None
Notice
The Business Source License (this document, or the "License") is not an Open
Source license. However, the Licensed Work will eventually be made available
under an Open Source License, as stated in this License.
License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved.
"Business Source License" is a trademark of MariaDB Corporation Ab.
---
Business Source License 1.1
Terms
The Licensor hereby grants you the right to copy, modify, create derivative
works, redistribute, and make non-production use of the Licensed Work. The
Licensor may make an Additional Use Grant, above, permitting limited
production use.
Effective on the Change Date, or the fourth anniversary of the first publicly
available distribution of a specific version of the Licensed Work under this
License, whichever comes first, the Licensor hereby grants you rights under
the terms of the Change License, and the rights granted in the paragraph
above terminate.
If your use of the Licensed Work does not comply with the requirements
currently in effect as described in this License, you must purchase a
commercial license from the Licensor, its affiliated entities, or authorized
resellers, or you must refrain from using the Licensed Work.
All copies of the original and modified Licensed Work, and derivative works
of the Licensed Work, are subject to this License. This License applies
separately for each version of the Licensed Work and the Change Date may
vary for each version.
You must conspicuously display this License on each original or modified copy
of the Licensed Work. If you receive the Licensed Work in original or
modified form from a third party, the terms and conditions set forth in this
License apply to your use of that work.
Any use of the Licensed Work in violation of this License will automatically
terminate your rights under this License for the current and all other
versions of the Licensed Work.
This License does not grant you any right in any trademark or logo of
Licensor or its affiliates (provided that you may use a trademark or logo of
Licensor as expressly required by this License).
TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON
AN "AS IS" BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS,
EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND
TITLE.
MariaDB hereby grants you permission to use this License's text to license
your works, and to refer to it using the trademark "Business Source License",
as long as you comply with the Covenants of Licensor below.
Covenants of Licensor
In consideration of the right to use this License's text and the "Business
Source License" name and trademark, Licensor covenants to MariaDB, and to all
other recipients of the licensed work to be provided by Licensor:
1. To specify as the Change License the GPL Version 2.0 or any later version,
or a license that is compatible with GPL Version 2.0 or a later version,
where "compatible" means that software provided under the Change License can
be included in a program with software provided under GPL Version 2.0 or a
later version. Licensor may specify additional Change Licenses without
limitation.
2. To either: (a) specify an additional grant of rights to use that does not
impose any additional restriction on the right granted in this License, as
the Additional Use Grant; or (b) insert the text "None".
3. To specify a Change Date.
4. Not to modify this License in any other way.

21
LICENSE
View File

@@ -1,21 +0,0 @@
MIT License
Copyright (c) 2025 Eyal Toledano
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.

90
LICENSE.md Normal file
View File

@@ -0,0 +1,90 @@
# Dual License
This project is licensed under two separate licenses:
1. [Business Source License 1.1](#business-source-license-11) (BSL 1.1) for commercial use of Task Master itself
2. [Apache License 2.0](#apache-license-20) for all other uses
## Business Source License 1.1
Terms: https://mariadb.com/bsl11/
Licensed Work: Task Master AI
Additional Use Grant: You may use Task Master AI to create and commercialize your own projects and products.
Change Date: 2025-03-30
Change License: None
The Licensed Work is subject to the Business Source License 1.1. If you are interested in using the Licensed Work in a way that competes directly with Task Master, please contact the licensors.
### Licensor
- Eyal Toledano (GitHub: @eyaltoledano)
- Ralph (GitHub: @Crunchyman-ralph)
### Commercial Use Restrictions
This license explicitly restricts certain commercial uses of Task Master AI to the Licensors listed above. Restricted commercial uses include:
1. Creating commercial products or services that directly compete with Task Master AI
2. Selling Task Master AI itself as a service
3. Offering Task Master AI's functionality as a commercial managed service
4. Reselling or redistributing Task Master AI for a fee
### Explicitly Permitted Uses
The following uses are explicitly allowed under this license:
1. Using Task Master AI to create and commercialize your own projects
2. Using Task Master AI in commercial environments for internal development
3. Building and selling products or services that were created using Task Master AI
4. Using Task Master AI for commercial development as long as you're not selling Task Master AI itself
### Additional Terms
1. The right to commercialize Task Master AI itself is exclusively reserved for the Licensors
2. No party may create commercial products that directly compete with Task Master AI without explicit written permission
3. Forks of this repository are subject to the same restrictions regarding direct competition
4. Contributors agree that their contributions will be subject to this same dual licensing structure
## Apache License 2.0
For all uses other than those restricted above. See [APACHE-LICENSE](./APACHE-LICENSE) for the full license text.
### Permitted Use Definition
You may use Task Master AI for any purpose, including commercial purposes, as long as you are not:
1. Creating a direct competitor to Task Master AI
2. Selling Task Master AI itself as a service
3. Redistributing Task Master AI for a fee
### Requirements for Use
1. You must include appropriate copyright notices
2. You must state significant changes made to the software
3. You must preserve all license notices
## Questions and Commercial Licensing
For questions about licensing or to inquire about commercial use that may compete with Task Master, please contact:
- Eyal Toledano (GitHub: @eyaltoledano)
- Ralph (GitHub: @Crunchyman-ralph)
## Examples
### ✅ Allowed Uses
- Using Task Master to create a commercial SaaS product
- Using Task Master in your company for development
- Creating and selling products that were built using Task Master
- Using Task Master to generate code for commercial projects
- Offering consulting services where you use Task Master
### ❌ Restricted Uses
- Creating a competing AI task management tool
- Selling access to Task Master as a service
- Creating a hosted version of Task Master
- Reselling Task Master's functionality

100
LICENSING.md Normal file
View File

@@ -0,0 +1,100 @@
# Task Master Licensing
Task Master is released under a dual license structure to balance open source accessibility with commercial interests.
## License Overview
Task Master is available under two licenses:
1. **Business Source License 1.1 (BSL 1.1)** - For commercial use of Task Master itself
2. **Apache License 2.0** - For all other uses
## What You Can Do
**Allowed Activities**:
- Use Task Master to create and commercialize your own projects
- Modify Task Master for your own use
- Contribute to Task Master's development
- Share and distribute Task Master under the terms of the Apache License 2.0 for non-commercial use
- Use Task Master in your personal or organization's development workflow
## What You Cannot Do
**Restricted Activities**:
- Create competing products based on Task Master
- Sell Task Master itself as a service without explicit permission
- Remove or modify the license headers in the source files
- Use the Task Master trademark or branding without permission
## Commercial Use
The BSL 1.1 license applies when you want to:
1. Create a competing product to Task Master
2. Sell Task Master itself as a service
3. Use Task Master's code in a way that competes with its core functionality
To obtain commercial use rights:
1. Contact the copyright holders (Eyal Toledano and Ralph Khreish)
2. Negotiate appropriate terms for commercial use
3. Obtain written permission for your specific use case
## Non-Commercial Use
The Apache License 2.0 applies to all other uses, including:
1. Personal projects
2. Open source projects
3. Internal use within organizations
4. Educational purposes
5. Research and development
## License Texts
### Business Source License 1.1
The full text of the BSL 1.1 license can be found in the [BSL-LICENSE](BSL-LICENSE) file.
### Apache License 2.0
The full text of the Apache 2.0 license can be found in the [APACHE-LICENSE](APACHE-LICENSE) file.
## Frequently Asked Questions
### Q: Can I use Task Master in my company's development process?
**A**: Yes, you can use Task Master internally in your organization for development purposes. This falls under the Apache License 2.0.
### Q: Can I create and sell a product that was built using Task Master?
**A**: Yes, you can create and commercialize your own projects that were built using Task Master. The restriction only applies to selling Task Master itself or creating competing products.
### Q: Can I contribute improvements back to Task Master?
**A**: Yes, contributions are welcome! By contributing, you agree that your contributions will be licensed under the same dual license structure.
### Q: What constitutes a "competing product"?
**A**: A competing product would be any software that provides similar core functionality to Task Master, specifically:
- AI-driven task management for development
- Integration with Cursor for development workflows
- Task parsing and management features similar to Task Master
### Q: Do I need a commercial license to use Task Master in my startup?
**A**: No, you only need a commercial license if you plan to create a competing product or sell Task Master itself as a service. Using Task Master to develop your startup's products falls under the Apache License 2.0.
## Copyright
Copyright (c) 2025 Eyal Toledano and Ralph Khreish. All rights reserved.
## Contact
For licensing inquiries or to obtain commercial use permission, please contact:
- Eyal Toledano: [https://x.com/eyaltoledano](https://x.com/eyaltoledano)
- Ralph Khreish: [https://x.com/RalphEcom](https://x.com/RalphEcom)

View File

@@ -4,6 +4,15 @@
A task management system for AI-driven development with Claude, designed to work seamlessly with Cursor AI.
## Licensing
Task Master is available under a dual license:
- **Business Source License 1.1 (BSL 1.1)** for commercial use of Task Master itself
- **Apache License 2.0** for all other uses
You can freely use Task Master to create and commercialize your own projects, but you cannot create competing products or sell Task Master itself as a service without explicit permission. See [LICENSING.md](LICENSING.md) for detailed terms and FAQs.
## Requirements
- Node.js 14.0.0 or higher
@@ -385,7 +394,7 @@ task-master update-subtask --id=5.2 --prompt="Add rate limiting of 100 requests
task-master update-subtask --id=<parentId.subtaskId> --prompt="<prompt>" --research
```
Unlike the `update-task` command which replaces task information, the `update-subtask` command *appends* new information to the existing subtask details, marking it with a timestamp. This is useful for iteratively enhancing subtasks while preserving the original content.
Unlike the `update-task` command which replaces task information, the `update-subtask` command _appends_ new information to the existing subtask details, marking it with a timestamp. This is useful for iteratively enhancing subtasks while preserving the original content.
### Generate Task Files

View File

@@ -1,5 +1,22 @@
#!/usr/bin/env node
/**
* Task Master AI
* https://github.com/eyaltoledano/claude-task-master
*
* Copyright (c) 2025 Eyal Toledano and Ralph Khreish
*
* This source code is licensed under a dual license:
* - Business Source License 1.1 (BSL 1.1) for commercial use of Task Master itself
* - Apache License 2.0 for all other uses
*
* See LICENSE.md for details.
*
* You may use this software to create and commercialize your own projects,
* but you may not create competing products or sell Task Master itself as a service
* without explicit permission from the copyright holders.
*/
/**
* Claude Task Master CLI
* Main entry point for globally installed package

View File

@@ -1,5 +1,22 @@
#!/usr/bin/env node
/**
* Task Master AI
* https://github.com/eyaltoledano/claude-task-master
*
* Copyright (c) 2025 Eyal Toledano and Ralph Khreish
*
* This source code is licensed under a dual license:
* - Business Source License 1.1 (BSL 1.1) for commercial use of Task Master itself
* - Apache License 2.0 for all other uses
*
* See LICENSE.md for details.
*
* You may use this software to create and commercialize your own projects,
* but you may not create competing products or sell Task Master itself as a service
* without explicit permission from the copyright holders.
*/
/**
* Claude Task Master
* A task management system for AI-driven development with Claude

View File

@@ -34,7 +34,7 @@
"context"
],
"author": "Eyal Toledano",
"license": "MIT",
"license": "(BSL-1.1 AND Apache-2.0)",
"dependencies": {
"@anthropic-ai/sdk": "^0.39.0",
"@model-context-protocol/sdk": "^1.20.5",

View File

@@ -1,5 +1,22 @@
#!/usr/bin/env node
/**
* Task Master AI
* https://github.com/eyaltoledano/claude-task-master
*
* Copyright (c) 2025 Eyal Toledano and Ralph
*
* This source code is licensed under a dual license:
* - Business Source License 1.1 (BSL 1.1) for commercial use of Task Master itself
* - Apache License 2.0 for all other uses
*
* See LICENSE.md for details.
*
* You may use this software to create and commercialize your own projects,
* but you may not create competing products or sell Task Master itself as a service
* without explicit permission from the copyright holders.
*/
console.log('Starting task-master-ai...');
import fs from 'fs';

128
tasks/task_039.txt Normal file
View File

@@ -0,0 +1,128 @@
# Task ID: 39
# Title: Update Project Licensing to Dual License Structure
# Status: done
# Dependencies: None
# Priority: high
# Description: Replace the current MIT license with a dual license structure that protects commercial rights for project owners while allowing non-commercial use under an open source license.
# Details:
This task requires implementing a comprehensive licensing update across the project:
1. Remove all instances of the MIT license from the codebase, including any MIT license files, headers in source files, and references in documentation.
2. Create a dual license structure with:
- Business Source License (BSL) 1.1 or similar for commercial use, explicitly stating that commercial rights are exclusively reserved for Ralph & Eyal
- Apache 2.0 for non-commercial use, allowing the community to use, modify, and distribute the code for non-commercial purposes
3. Update the license field in package.json to reflect the dual license structure (e.g., "BSL 1.1 / Apache 2.0")
4. Add a clear, concise explanation of the licensing terms in the README.md, including:
- A summary of what users can and cannot do with the code
- Who holds commercial rights
- How to obtain commercial use permission if needed
- Links to the full license texts
5. Create a detailed LICENSE.md file that includes:
- Full text of both licenses
- Clear delineation between commercial and non-commercial use
- Specific definitions of what constitutes commercial use
- Any additional terms or clarifications specific to this project
6. Create a CONTRIBUTING.md file that explicitly states:
- Contributors must agree that their contributions will be subject to the project's dual licensing
- Commercial rights for all contributions are assigned to Ralph & Eyal
- Guidelines for acceptable contributions
7. Ensure all source code files include appropriate license headers that reference the dual license structure.
# Test Strategy:
To verify correct implementation, perform the following checks:
1. File verification:
- Confirm the MIT license file has been removed
- Verify LICENSE.md exists and contains both BSL and Apache 2.0 license texts
- Confirm README.md includes the license section with clear explanation
- Verify CONTRIBUTING.md exists with proper contributor guidelines
- Check package.json for updated license field
2. Content verification:
- Review LICENSE.md to ensure it properly describes the dual license structure with clear terms
- Verify README.md license section is concise yet complete
- Check that commercial rights are explicitly reserved for Ralph & Eyal in all relevant documents
- Ensure CONTRIBUTING.md clearly explains the licensing implications for contributors
3. Legal review:
- Have a team member not involved in the implementation review all license documents
- Verify that the chosen BSL terms properly protect commercial interests
- Confirm the Apache 2.0 implementation is correct and compatible with the BSL portions
4. Source code check:
- Sample at least 10 source files to ensure they have updated license headers
- Verify no MIT license references remain in any source files
5. Documentation check:
- Ensure any documentation that mentioned licensing has been updated to reflect the new structure
# Subtasks:
## 1. Remove MIT License and Create Dual License Files [done]
### Dependencies: None
### Description: Remove all MIT license references from the codebase and create the new license files for the dual license structure.
### Details:
Implementation steps:
1. Scan the entire codebase to identify all instances of MIT license references (license files, headers in source files, documentation mentions).
2. Remove the MIT license file and all direct references to it.
3. Create a LICENSE.md file containing:
- Full text of Business Source License (BSL) 1.1 with explicit commercial rights reservation for Ralph & Eyal
- Full text of Apache 2.0 license for non-commercial use
- Clear definitions of what constitutes commercial vs. non-commercial use
- Specific terms for obtaining commercial use permission
4. Create a CONTRIBUTING.md file that explicitly states the contribution terms:
- Contributors must agree to the dual licensing structure
- Commercial rights for all contributions are assigned to Ralph & Eyal
- Guidelines for acceptable contributions
Testing approach:
- Verify all MIT license references have been removed using a grep or similar search tool
- Have legal review of the LICENSE.md and CONTRIBUTING.md files to ensure they properly protect commercial rights
- Validate that the license files are properly formatted and readable
## 2. Update Source Code License Headers and Package Metadata [done]
### Dependencies: 39.1
### Description: Add appropriate dual license headers to all source code files and update package metadata to reflect the new licensing structure.
### Details:
Implementation steps:
1. Create a template for the new license header that references the dual license structure (BSL 1.1 / Apache 2.0).
2. Systematically update all source code files to include the new license header, replacing any existing MIT headers.
3. Update the license field in package.json to "BSL 1.1 / Apache 2.0".
4. Update any other metadata files (composer.json, setup.py, etc.) that contain license information.
5. Verify that any build scripts or tools that reference licensing information are updated.
Testing approach:
- Write a script to verify that all source files contain the new license header
- Validate package.json and other metadata files have the correct license field
- Ensure any build processes that depend on license information still function correctly
- Run a sample build to confirm license information is properly included in any generated artifacts
## 3. Update Documentation and Create License Explanation [done]
### Dependencies: 39.1, 39.2
### Description: Update project documentation to clearly explain the dual license structure and create comprehensive licensing guidance.
### Details:
Implementation steps:
1. Update the README.md with a clear, concise explanation of the licensing terms:
- Summary of what users can and cannot do with the code
- Who holds commercial rights (Ralph & Eyal)
- How to obtain commercial use permission
- Links to the full license texts
2. Create a dedicated LICENSING.md or similar document with detailed explanations of:
- The rationale behind the dual licensing approach
- Detailed examples of what constitutes commercial vs. non-commercial use
- FAQs addressing common licensing questions
3. Update any other documentation references to licensing throughout the project.
4. Create visual aids (if appropriate) to help users understand the licensing structure.
5. Ensure all documentation links to licensing information are updated.
Testing approach:
- Have non-technical stakeholders review the documentation for clarity and understanding
- Verify all links to license files work correctly
- Ensure the explanation is comprehensive but concise enough for users to understand quickly
- Check that the documentation correctly addresses the most common use cases and questions

View File

@@ -2164,6 +2164,50 @@
"priority": "high",
"details": "Implement a version check mechanism that runs automatically with every command execution:\n\n1. Create a new module (e.g., `versionChecker.js`) that will:\n - Fetch the latest version from npm registry using the npm registry API (https://registry.npmjs.org/task-master-ai/latest)\n - Compare it with the current installed version (from package.json)\n - Store the last check timestamp to avoid excessive API calls (check once per day)\n - Cache the result to minimize network requests\n\n2. The notification should:\n - Use colored text (e.g., yellow background with black text) to be noticeable\n - Include the current version and latest version\n - Show the exact upgrade command: 'npm i task-master-ai@latest'\n - Be displayed at the beginning or end of command output, not interrupting the main content\n - Include a small separator line to distinguish it from command output\n\n3. Implementation considerations:\n - Handle network failures gracefully (don't block command execution if version check fails)\n - Add a configuration option to disable update checks if needed\n - Ensure the check is lightweight and doesn't significantly impact command performance\n - Consider using a package like 'semver' for proper version comparison\n - Implement a cooldown period (e.g., only check once per day) to avoid excessive API calls\n\n4. The version check should be integrated into the main command execution flow so it runs for all commands automatically.",
"testStrategy": "1. Manual testing:\n - Install an older version of the package\n - Run various commands and verify the update notification appears\n - Update to the latest version and confirm the notification no longer appears\n - Test with network disconnected to ensure graceful handling of failures\n\n2. Unit tests:\n - Mock the npm registry response to test different scenarios:\n - When a newer version exists\n - When using the latest version\n - When the registry is unavailable\n - Test the version comparison logic with various version strings\n - Test the cooldown/caching mechanism works correctly\n\n3. Integration tests:\n - Create a test that runs a command and verifies the notification appears in the expected format\n - Test that the notification appears for all commands\n - Verify the notification doesn't interfere with normal command output\n\n4. Edge cases to test:\n - Pre-release versions (alpha/beta)\n - Very old versions\n - When package.json is missing or malformed\n - When npm registry returns unexpected data"
},
{
"id": 39,
"title": "Update Project Licensing to Dual License Structure",
"description": "Replace the current MIT license with a dual license structure that protects commercial rights for project owners while allowing non-commercial use under an open source license.",
"status": "done",
"dependencies": [],
"priority": "high",
"details": "This task requires implementing a comprehensive licensing update across the project:\n\n1. Remove all instances of the MIT license from the codebase, including any MIT license files, headers in source files, and references in documentation.\n\n2. Create a dual license structure with:\n - Business Source License (BSL) 1.1 or similar for commercial use, explicitly stating that commercial rights are exclusively reserved for Ralph & Eyal\n - Apache 2.0 for non-commercial use, allowing the community to use, modify, and distribute the code for non-commercial purposes\n\n3. Update the license field in package.json to reflect the dual license structure (e.g., \"BSL 1.1 / Apache 2.0\")\n\n4. Add a clear, concise explanation of the licensing terms in the README.md, including:\n - A summary of what users can and cannot do with the code\n - Who holds commercial rights\n - How to obtain commercial use permission if needed\n - Links to the full license texts\n\n5. Create a detailed LICENSE.md file that includes:\n - Full text of both licenses\n - Clear delineation between commercial and non-commercial use\n - Specific definitions of what constitutes commercial use\n - Any additional terms or clarifications specific to this project\n\n6. Create a CONTRIBUTING.md file that explicitly states:\n - Contributors must agree that their contributions will be subject to the project's dual licensing\n - Commercial rights for all contributions are assigned to Ralph & Eyal\n - Guidelines for acceptable contributions\n\n7. Ensure all source code files include appropriate license headers that reference the dual license structure.",
"testStrategy": "To verify correct implementation, perform the following checks:\n\n1. File verification:\n - Confirm the MIT license file has been removed\n - Verify LICENSE.md exists and contains both BSL and Apache 2.0 license texts\n - Confirm README.md includes the license section with clear explanation\n - Verify CONTRIBUTING.md exists with proper contributor guidelines\n - Check package.json for updated license field\n\n2. Content verification:\n - Review LICENSE.md to ensure it properly describes the dual license structure with clear terms\n - Verify README.md license section is concise yet complete\n - Check that commercial rights are explicitly reserved for Ralph & Eyal in all relevant documents\n - Ensure CONTRIBUTING.md clearly explains the licensing implications for contributors\n\n3. Legal review:\n - Have a team member not involved in the implementation review all license documents\n - Verify that the chosen BSL terms properly protect commercial interests\n - Confirm the Apache 2.0 implementation is correct and compatible with the BSL portions\n\n4. Source code check:\n - Sample at least 10 source files to ensure they have updated license headers\n - Verify no MIT license references remain in any source files\n\n5. Documentation check:\n - Ensure any documentation that mentioned licensing has been updated to reflect the new structure",
"subtasks": [
{
"id": 1,
"title": "Remove MIT License and Create Dual License Files",
"description": "Remove all MIT license references from the codebase and create the new license files for the dual license structure.",
"dependencies": [],
"details": "Implementation steps:\n1. Scan the entire codebase to identify all instances of MIT license references (license files, headers in source files, documentation mentions).\n2. Remove the MIT license file and all direct references to it.\n3. Create a LICENSE.md file containing:\n - Full text of Business Source License (BSL) 1.1 with explicit commercial rights reservation for Ralph & Eyal\n - Full text of Apache 2.0 license for non-commercial use\n - Clear definitions of what constitutes commercial vs. non-commercial use\n - Specific terms for obtaining commercial use permission\n4. Create a CONTRIBUTING.md file that explicitly states the contribution terms:\n - Contributors must agree to the dual licensing structure\n - Commercial rights for all contributions are assigned to Ralph & Eyal\n - Guidelines for acceptable contributions\n\nTesting approach:\n- Verify all MIT license references have been removed using a grep or similar search tool\n- Have legal review of the LICENSE.md and CONTRIBUTING.md files to ensure they properly protect commercial rights\n- Validate that the license files are properly formatted and readable",
"status": "done",
"parentTaskId": 39
},
{
"id": 2,
"title": "Update Source Code License Headers and Package Metadata",
"description": "Add appropriate dual license headers to all source code files and update package metadata to reflect the new licensing structure.",
"dependencies": [
1
],
"details": "Implementation steps:\n1. Create a template for the new license header that references the dual license structure (BSL 1.1 / Apache 2.0).\n2. Systematically update all source code files to include the new license header, replacing any existing MIT headers.\n3. Update the license field in package.json to \"BSL 1.1 / Apache 2.0\".\n4. Update any other metadata files (composer.json, setup.py, etc.) that contain license information.\n5. Verify that any build scripts or tools that reference licensing information are updated.\n\nTesting approach:\n- Write a script to verify that all source files contain the new license header\n- Validate package.json and other metadata files have the correct license field\n- Ensure any build processes that depend on license information still function correctly\n- Run a sample build to confirm license information is properly included in any generated artifacts",
"status": "done",
"parentTaskId": 39
},
{
"id": 3,
"title": "Update Documentation and Create License Explanation",
"description": "Update project documentation to clearly explain the dual license structure and create comprehensive licensing guidance.",
"dependencies": [
1,
2
],
"details": "Implementation steps:\n1. Update the README.md with a clear, concise explanation of the licensing terms:\n - Summary of what users can and cannot do with the code\n - Who holds commercial rights (Ralph & Eyal)\n - How to obtain commercial use permission\n - Links to the full license texts\n2. Create a dedicated LICENSING.md or similar document with detailed explanations of:\n - The rationale behind the dual licensing approach\n - Detailed examples of what constitutes commercial vs. non-commercial use\n - FAQs addressing common licensing questions\n3. Update any other documentation references to licensing throughout the project.\n4. Create visual aids (if appropriate) to help users understand the licensing structure.\n5. Ensure all documentation links to licensing information are updated.\n\nTesting approach:\n- Have non-technical stakeholders review the documentation for clarity and understanding\n- Verify all links to license files work correctly\n- Ensure the explanation is comprehensive but concise enough for users to understand quickly\n- Check that the documentation correctly addresses the most common use cases and questions",
"status": "done",
"parentTaskId": 39
}
]
}
]
}