Update License to PolyForm Noncommercial 1.0.0#548
Conversation
Co-authored-by: ngoiyaeric <115367894+ngoiyaeric@users.noreply.github.com>
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
|
There was a problem hiding this comment.
The biggest risk is that LICENSE appears to contain a partial PolyForm Noncommercial 1.0.0 text, which can create legal ambiguity and distribution compliance problems. There’s also a likely copyright/attribution inconsistency between the new Required Notice line and prior attribution implied by the repository context. The README’s summary should more clearly defer to LICENSE/the official PolyForm terms to avoid inadvertently redefining the license. Finally, package.json’s license value may not be an official SPDX identifier, which can matter if the package is ever published.
Summary of changes
License change
- Replaced the entire
LICENSEfile contents from Apache 2.0 to PolyForm Noncommercial License 1.0.0, including adding aRequired Notice: Copyright 2025 QueueLabheader and linking to the PolyForm license URL.
Metadata updates
- Updated
package.jsonlicensefield fromApache-2.0toPolyForm-Noncommercial-1.0.0.
Documentation
- Added a new License section to
README.mddescribing non-commercial vs commercial usage and linking to a Stripe page for purchasing a commercial license.
| Required Notice: Copyright 2025 QueueLab | ||
|
|
||
| PolyForm Noncommercial License 1.0.0 |
There was a problem hiding this comment.
The Required Notice year (2025) conflicts with the prior Apache notice indicating Copyright 2024 Yoshiki Miura, while the README footer attributes the project to QueueLab. This mismatch can create legal/attribution confusion, especially when the PolyForm terms explicitly call out preserving Required Notice: lines. Confirm the correct copyright holder(s) and year range and keep it consistent across LICENSE and README.md.
Suggestion
Decide the authoritative copyright statement (e.g., Required Notice: Copyright 2024–2026 QueueLab or include multiple notices if there are multiple rightsholders) and ensure it matches any existing attribution in README.md and/or other legal files. If you still need to credit the original author, consider adding an additional Required Notice: line rather than replacing it.
Reply with "@CharlieHelps yes please" if you'd like me to add a commit that reconciles the notice across LICENSE and README.md (based on your chosen canonical wording).
| ## License | ||
|
|
||
| This project is licensed under the **PolyForm Noncommercial License 1.0.0**. | ||
|
|
||
| - **Non-commercial use:** Free for personal, educational, and non-profit use. | ||
| - **Commercial use:** Requires a paid commercial license. | ||
|
|
||
| [**Purchase Commercial License**](https://buy.stripe.com/14A3cv7K72TR3go14Nasg02) |
There was a problem hiding this comment.
The README’s license summary is not the license terms and could be interpreted as modifying or oversimplifying rights/limitations (e.g., the license’s exact definition of “noncommercial” matters). It’s fine to explain at a high level, but it should point readers clearly to the authoritative LICENSE file (and ideally the official PolyForm URL), and avoid categorical statements that may be inaccurate in edge cases.
Suggestion
Update the README section to (1) link to the local LICENSE file and (2) reference the official PolyForm license URL as the authoritative definition of terms. Consider softening the bullets to avoid redefining the license, e.g., “Noncommercial use is permitted under the PolyForm Noncommercial License; see LICENSE for details.”
Reply with "@CharlieHelps yes please" if you'd like me to add a commit that adjusts the README license section to link to ./LICENSE and avoids potentially misleading re-statements.
WalkthroughThe project's license was migrated from Apache License 2.0 to PolyForm Noncommercial License 1.0.0 across three files. The LICENSE file was replaced with the new license text, README.md was updated with licensing terms and commercial purchase information, and package.json's license field was updated to reflect the new licensing model. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (2)
LICENSE (1)
1-1:⚠️ Potential issue | 🟡 MinorReconcile the copyright year and holder in the
Required Notice.
Copyright 2025 QueueLabconflicts with the prior Apache 2.0 copyright notice (Copyright 2024 Yoshiki Miura). The PolyForm license requires downstream distributors to preserve allRequired Notice:lines verbatim, so the accuracy and completeness of this notice matters legally.Confirm the authoritative copyright holder(s) and the correct year range (e.g.,
2024–2026), and if multiple copyright holders exist, add additionalRequired Notice:lines rather than replacing earlier ones.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@LICENSE` at line 1, Update the "Required Notice:" block so it accurately preserves all upstream notices: do not replace the existing "Required Notice: Copyright 2024 Yoshiki Miura" line; instead confirm the authoritative year range (e.g., "2024–2026") and add one or more additional "Required Notice:" lines for QueueLab if it is a separate copyright holder (e.g., "Required Notice: Copyright 2024–2026 QueueLab"), or extend the existing line to a correct range if the same holder; ensure each notice is a separate verbatim "Required Notice:" line and keep original text intact.README.md (1)
169-176:⚠️ Potential issue | 🟡 MinorLink the license section to the authoritative
LICENSEfile and the canonical PolyForm URL.The section still doesn't reference the local
LICENSEfile or the official PolyForm URL as authoritative sources. The categorical bullets ("Free for personal, educational…", "Requires a paid commercial license") may not reflect the precise definitions in the PolyForm Noncommercial License text (e.g., the license's own definitions of "noncommercial purposes", "personal uses", and "noncommercial organizations" are nuanced).📝 Proposed fix
## License This project is licensed under the **PolyForm Noncommercial License 1.0.0**. -- **Non-commercial use:** Free for personal, educational, and non-profit use. -- **Commercial use:** Requires a paid commercial license. +Noncommercial use is permitted under the terms of the [PolyForm Noncommercial License 1.0.0](https://polyformproject.org/licenses/noncommercial/1.0.0); see [`LICENSE`](./LICENSE) for the full terms. + +Commercial use requires a paid license. [**Purchase Commercial License**](https://buy.stripe.com/14A3cv7K72TR3go14Nasg02)🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@README.md` around lines 169 - 176, The "## License" section currently states the PolyForm terms without linking to the repo's authoritative LICENSE file or the official PolyForm URL; update the section titled "## License" to add links to the local LICENSE file (e.g., ./LICENSE) and the canonical PolyForm Noncommercial License page (https://polyformproject.org/licenses/noncommercial/1.0.0/) and replace or qualify the two bullets so they do not paraphrase legal definitions—either remove the categorical bullets or preface them with "summary" and add a line directing readers to consult the LICENSE file for the exact definitions and commercial licensing instructions (retain the existing "Purchase Commercial License" purchase link as a separate call-to-action).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@LICENSE`:
- Around line 1-75: This PR replaces Apache-2.0 with PolyForm Noncommercial
1.0.0 in the LICENSE file but you must not relicence third-party contributions
without authorization; obtain explicit written consent from each listed
contributor (EreQ, Eric Ngoiya, ngoiyaeric, google-labs-julius[bot],
edward-w-eth, rosaleensiroosi, Fabrice Renard, Manus AI, Manus) or verify a
Contributor License Agreement that grants relicensing rights before merging, and
locate and preserve any original Apache-2.0 NOTICE text per Apache 2.0 §4(c) if
present.
---
Duplicate comments:
In `@LICENSE`:
- Line 1: Update the "Required Notice:" block so it accurately preserves all
upstream notices: do not replace the existing "Required Notice: Copyright 2024
Yoshiki Miura" line; instead confirm the authoritative year range (e.g.,
"2024–2026") and add one or more additional "Required Notice:" lines for
QueueLab if it is a separate copyright holder (e.g., "Required Notice: Copyright
2024–2026 QueueLab"), or extend the existing line to a correct range if the same
holder; ensure each notice is a separate verbatim "Required Notice:" line and
keep original text intact.
In `@README.md`:
- Around line 169-176: The "## License" section currently states the PolyForm
terms without linking to the repo's authoritative LICENSE file or the official
PolyForm URL; update the section titled "## License" to add links to the local
LICENSE file (e.g., ./LICENSE) and the canonical PolyForm Noncommercial License
page (https://polyformproject.org/licenses/noncommercial/1.0.0/) and replace or
qualify the two bullets so they do not paraphrase legal definitions—either
remove the categorical bullets or preface them with "summary" and add a line
directing readers to consult the LICENSE file for the exact definitions and
commercial licensing instructions (retain the existing "Purchase Commercial
License" purchase link as a separate call-to-action).
ℹ️ Review info
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (3)
LICENSEREADME.mdpackage.json
📜 Review details
🔇 Additional comments (1)
package.json (1)
5-5: SPDX identifier is valid.
PolyForm-Noncommercial-1.0.0is an officially recognized SPDX identifier, so the field value is correct and will be recognized by license-scanning tooling.
| Required Notice: Copyright 2025 QueueLab | ||
|
|
||
| PolyForm Noncommercial License 1.0.0 | ||
|
|
||
| <https://polyformproject.org/licenses/noncommercial/1.0.0> | ||
|
|
||
| Acceptance | ||
|
|
||
| In order to get any license under these terms, you must agree to them as both strict obligations and conditions to all your licenses. | ||
|
|
||
| Copyright License | ||
|
|
||
| The licensor grants you a copyright license for the software to do everything you might do with the software that would otherwise infringe the licensor’s copyright in it for any permitted purpose. However, you may only distribute the software according to [Distribution License] and make changes or new works based on the software according to [Changes and New Works License]. | ||
|
|
||
| Distribution License | ||
|
|
||
| The licensor grants you an additional copyright license to distribute copies of the software. Your license to distribute covers distributing the software with changes and new works permitted by [Changes and New Works License]. | ||
|
|
||
| Notices | ||
|
|
||
| You must ensure that anyone who gets a copy of any part of the software from you also gets a copy of these terms or the URL for them above, as well as copies of any plain-text lines beginning with Required Notice: that the licensor provided with the software. For example: | ||
|
|
||
| Required Notice: Copyright <Year> <Licensor> | ||
|
|
||
| Changes and New Works License | ||
|
|
||
| The licensor grants you an additional copyright license to make changes and new works based on the software for any permitted purpose. | ||
|
|
||
| Patent License | ||
|
|
||
| The licensor grants you a patent license for the software that covers patent claims the licensor can license, or becomes able to license, that you would infringe by using the software. | ||
|
|
||
| Noncommercial Purposes | ||
|
|
||
| Any noncommercial purpose is a permitted purpose. | ||
|
|
||
| Personal Uses | ||
|
|
||
| Personal use for research, experiment, and testing for the benefit of public knowledge, personal study, private entertainment, hobby projects, amateur pursuits, or religious observance, without any anticipated commercial application, is use for a permitted purpose. | ||
|
|
||
| Noncommercial Organizations | ||
|
|
||
| Use by any charitable organization, educational institution, public research organization, public safety or health organization, environmental protection organization, or government institution is use for a permitted purpose regardless of the source of funding or obligations resulting from the funding. | ||
|
|
||
| Fair Use | ||
|
|
||
| You may have “fair use” rights for the software under the law. These terms do not limit them. | ||
|
|
||
| No Other Rights | ||
|
|
||
| These terms do not allow you to sublicense or transfer any of your licenses to anyone else, or prevent the licensor from granting licenses to anyone else. These terms do not imply any other licenses. | ||
|
|
||
| Patent Defense | ||
|
|
||
| If you make any written claim that the software infringes or contributes to infringement of any patent, your patent license for the software granted under these terms ends immediately. If your company makes such a claim, your patent license ends immediately for work on behalf of your company. | ||
|
|
||
| Violations | ||
|
|
||
| The first time you are notified in writing that you have violated any of these terms, or done anything with the software not covered by your licenses, your licenses can nonetheless continue if you come into full compliance with these terms, and take practical steps to correct past violations, within 32 days of receiving notice. Otherwise, all your licenses end immediately. | ||
|
|
||
| No Liability | ||
|
|
||
| As far as the law allows, the software comes as is, without any warranty or condition, and the licensor will not be liable to you for any damages arising out of these terms or the use or nature of the software, under any kind of legal claim. | ||
|
|
||
| Definitions | ||
|
|
||
| The licensor is the individual or entity offering these terms, and the software is the software the licensor makes available under these terms. | ||
|
|
||
| You refers to the individual or entity agreeing to these terms. | ||
|
|
||
| Your company is any legal entity, sole proprietorship, or other kind of organization that you work for, plus all organizations that have control over, are under the control of, or are under common control with that organization. Control means ownership of substantially all the assets of an entity, or the power to direct its management and policies by vote, contract, or otherwise. Control can be direct or indirect. | ||
|
|
||
| Your licenses are all the licenses granted to you for the software under these terms. | ||
|
|
||
| Use means anything you do with the software requiring one of your licenses. |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
# Get unique contributors from git history
echo "=== Unique Contributors ==="
git log --format='%ae | %an' | sort -u
echo -e "\n=== Contributor Count ==="
git log --format='%ae' | sort -u | wc -lRepository: QueueLab/QCX
Length of output: 195
🏁 Script executed:
# Search for CLA-related files
echo "=== CLA Files ==="
find . -type f \( -name "*CLA*" -o -name "*CONTRIBUTOR*" -o -name "*cla*" -o -name "*DCO*" \) ! -path "./.git/*" 2>/dev/null | head -20
echo -e "\n=== NOTICE file ==="
ls -la NOTICE* 2>/dev/null || echo "No NOTICE file found"
echo -e "\n=== License files in root ==="
ls -la LICENSE* COPYING* 2>/dev/null || echo "No other license files found"Repository: QueueLab/QCX
Length of output: 232
🏁 Script executed:
# Check git history for license changes
echo "=== Recent changes to LICENSE file ==="
git log --oneline -20 -- LICENSE 2>/dev/null || echo "No git history available or LICENSE is new"
echo -e "\n=== First commit of LICENSE ==="
git log --follow --format='%h %ai %an: %s' --reverse -- LICENSE 2>/dev/null | head -5 || echo "Unable to retrieve"Repository: QueueLab/QCX
Length of output: 301
🏁 Script executed:
# Check for Apache 2.0 references in the codebase
echo "=== Apache 2.0 references in code/comments ==="
rg -i "apache.*2\.0|license.*apache" --type-list | head -5
rg -i "apache.*2\.0|license.*apache" -l 2>/dev/null | head -10Repository: QueueLab/QCX
Length of output: 509
🏁 Script executed:
# Correct the Apache 2.0 search
echo "=== Apache 2.0 references in codebase ==="
rg -i "apache.*2\.0|license.*apache" -l 2>/dev/null | head -20 || echo "No Apache 2.0 references found"
echo -e "\n=== Total commits in repo ==="
git rev-list --count HEAD
echo -e "\n=== All commit subjects ==="
git log --oneline | head -20Repository: QueueLab/QCX
Length of output: 221
🏁 Script executed:
# Check if there are other branches or remotes that might have prior history
echo "=== Git branches ==="
git branch -a
echo -e "\n=== Git remote URLs ==="
git remote -v
echo -e "\n=== git log --all --oneline (including refs) ==="
git log --all --oneline | head -20Repository: QueueLab/QCX
Length of output: 1724
🏁 Script executed:
# Check if .git/logs or reflog shows prior commits
echo "=== Git reflog ==="
git reflog | head -20Repository: QueueLab/QCX
Length of output: 199
🏁 Script executed:
# Check if LICENSE file existed in prior commits
echo "=== Prior LICENSE file existence ==="
git show 5973db1:LICENSE 2>/dev/null | head -20 || echo "No LICENSE file in prior commits"
echo -e "\n=== Complete authorship across all commits ==="
git log --all --format='%an | %ae' | sort | uniq -c
echo -e "\n=== Check for copyright notices in source files ==="
rg -i "copyright.*google|google.*copyright" -l 2>/dev/null | head -10Repository: QueueLab/QCX
Length of output: 1831
🏁 Script executed:
# Look for any LICENSE or COPYING files in prior commits
echo "=== Files matching license patterns in prior commits ==="
git ls-tree -r --name-only 5973db1 2>/dev/null | grep -iE "(license|copying|copyright|notice)" || echo "None found"
echo -e "\n=== All files in prior commit ==="
git ls-tree -r --name-only 5973db1 2>/dev/null | head -30Repository: QueueLab/QCX
Length of output: 783
Obtain written consent from all prior contributors before merging this license change.
This PR changes the license from Apache License 2.0 to PolyForm Noncommercial 1.0.0. Under Apache 2.0 Section 5, code contributed by others is irrevocably submitted under that license. The codebase includes contributions from multiple authors:
- EreQ (385 commits)
- Eric Ngoiya (42 commits)
- ngoiyaeric (31 commits)
- google-labs-julius[bot] (185 commits)
- edward-w-eth (12 commits)
- rosaleensiroosi (12 commits)
- Fabrice Renard, Manus AI, Manus (1 commit each)
No CLA exists in the repository granting maintainers relicensing authority. Before merging:
- Obtain explicit written consent from each human contributor listed above, or
- Confirm that a Contributor License Agreement signed by all contributors explicitly grants relicensing rights.
Additionally, check whether an original Apache 2.0 NOTICE file exists and whether it must be preserved per Apache 2.0 Section 4(c).
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@LICENSE` around lines 1 - 75, This PR replaces Apache-2.0 with PolyForm
Noncommercial 1.0.0 in the LICENSE file but you must not relicence third-party
contributions without authorization; obtain explicit written consent from each
listed contributor (EreQ, Eric Ngoiya, ngoiyaeric, google-labs-julius[bot],
edward-w-eth, rosaleensiroosi, Fabrice Renard, Manus AI, Manus) or verify a
Contributor License Agreement that grants relicensing rights before merging, and
locate and preserve any original Apache-2.0 NOTICE text per Apache 2.0 §4(c) if
present.
Updated the project license to PolyForm Noncommercial License 1.0.0 to limit commercial usage unless paid for.
licensefield toPolyForm-Noncommercial-1.0.0.PR created automatically by Jules for task 8466494624491387717 started by @ngoiyaeric
Summary by CodeRabbit