Skip to content

Update License to PolyForm Noncommercial 1.0.0#548

Open
ngoiyaeric wants to merge 1 commit intomainfrom
chore/update-license-8466494624491387717
Open

Update License to PolyForm Noncommercial 1.0.0#548
ngoiyaeric wants to merge 1 commit intomainfrom
chore/update-license-8466494624491387717

Conversation

@ngoiyaeric
Copy link
Collaborator

@ngoiyaeric ngoiyaeric commented Feb 25, 2026

Updated the project license to PolyForm Noncommercial License 1.0.0 to limit commercial usage unless paid for.

  • LICENSE: Replaced Apache 2.0 with PolyForm Noncommercial License 1.0.0.
  • package.json: Updated license field to PolyForm-Noncommercial-1.0.0.
  • README.md: Added a License section explaining the terms and linking to the commercial license purchase page.

PR created automatically by Jules for task 8466494624491387717 started by @ngoiyaeric

Summary by CodeRabbit

  • Chores
    • Updated project license from Apache License 2.0 to PolyForm Noncommercial License 1.0.0.
    • Non-commercial use (personal, educational, non-profit) remains free.
    • Commercial use now requires a paid license.

Co-authored-by: ngoiyaeric <115367894+ngoiyaeric@users.noreply.github.com>
@google-labs-jules
Copy link
Contributor

👋 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 @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

@vercel
Copy link
Contributor

vercel bot commented Feb 25, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
qcx Building Building Preview, Comment Feb 25, 2026 11:55am

@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

Copy link

@charliecreates charliecreates bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 LICENSE file contents from Apache 2.0 to PolyForm Noncommercial License 1.0.0, including adding a Required Notice: Copyright 2025 QueueLab header and linking to the PolyForm license URL.

Metadata updates

  • Updated package.json license field from Apache-2.0 to PolyForm-Noncommercial-1.0.0.

Documentation

  • Added a new License section to README.md describing non-commercial vs commercial usage and linking to a Stripe page for purchasing a commercial license.

Comment on lines +1 to +3
Required Notice: Copyright 2025 QueueLab

PolyForm Noncommercial License 1.0.0

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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).

Comment on lines +169 to +176
## 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)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@charliecreates charliecreates bot removed the request for review from CharlieHelps February 25, 2026 11:58
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 25, 2026

Walkthrough

The 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

Cohort / File(s) Summary
License Migration
LICENSE
Replaced Apache License 2.0 boilerplate with PolyForm Noncommercial License 1.0.0 text, introducing noncommercial usage terms, copyright license restrictions, and patent defense clauses.
Documentation & Metadata
README.md, package.json
Added License section to README.md describing noncommercial/commercial usage terms and purchase link; updated package.json license field from "Apache-2.0" to "PolyForm-Noncommercial-1.0.0".

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 A license renewed, from open to fair,
The hopping grounds now declare with care,
Noncommercial virtue, for all who share,
Commerce a choice, not a glare!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly and accurately summarizes the main change: replacing the Apache 2.0 license with PolyForm Noncommercial 1.0.0, which is the primary purpose of the entire changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/update-license-8466494624491387717

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (2)
LICENSE (1)

1-1: ⚠️ Potential issue | 🟡 Minor

Reconcile the copyright year and holder in the Required Notice.

Copyright 2025 QueueLab conflicts with the prior Apache 2.0 copyright notice (Copyright 2024 Yoshiki Miura). The PolyForm license requires downstream distributors to preserve all Required 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 additional Required 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 | 🟡 Minor

Link the license section to the authoritative LICENSE file and the canonical PolyForm URL.

The section still doesn't reference the local LICENSE file 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

📥 Commits

Reviewing files that changed from the base of the PR and between 5973db1 and 60ceffe.

📒 Files selected for processing (3)
  • LICENSE
  • README.md
  • package.json
📜 Review details
🔇 Additional comments (1)
package.json (1)

5-5: SPDX identifier is valid.

PolyForm-Noncommercial-1.0.0 is an officially recognized SPDX identifier, so the field value is correct and will be recognized by license-scanning tooling.

Comment on lines +1 to +75
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.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 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 -l

Repository: 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 -10

Repository: 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 -20

Repository: 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 -20

Repository: QueueLab/QCX

Length of output: 1724


🏁 Script executed:

# Check if .git/logs or reflog shows prior commits
echo "=== Git reflog ==="
git reflog | head -20

Repository: 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 -10

Repository: 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 -30

Repository: 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:

  1. Obtain explicit written consent from each human contributor listed above, or
  2. 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants