Skip to content

chore: migrate from MIT to GPL-3.0-or-later license - #137

Closed
jackgranatowski wants to merge 6 commits into
mainfrom
claude/bricks-builder-marketing-nl9lx4
Closed

chore: migrate from MIT to GPL-3.0-or-later license#137
jackgranatowski wants to merge 6 commits into
mainfrom
claude/bricks-builder-marketing-nl9lx4

Conversation

@jackgranatowski

Copy link
Copy Markdown
Contributor

Summary

Migrate the SLASHED for WordPress plugin from MIT to GPL-3.0-or-later licensing across all source files, configuration, and documentation. This aligns the plugin with the GPL requirements for WordPress.org distribution and clarifies the licensing relationship between the plugin (GPL-3.0-or-later) and the bundled SLASHED framework (MIT, which is GPL-compatible).

Changes

  • License files: Replace MIT license in LICENSE with full GPL-3.0 text; update SLASHED-for-WP/license.txt from GPL-2.0 to GPL-3.0
  • Plugin headers: Update License and License URI headers in:
    • SLASHED-for-WP/slashed.php
    • SLASHED-for-WP/integrations/bricks/slashed-bricks.php
    • SLASHED-for-WP/integrations/gutenberg/slashed-gutenberg.php
    • SLASHED-for-WP/readme.txt
  • Package metadata: Update license field in package.json and composer.json
  • Documentation: Add WordPress.org readme (wordpress-org-readme.txt) and GitHub readme (github-readme.md) with GPL-3.0-or-later licensing statement and external services disclosure
  • Integration docs: Update Bricks integration README to reflect GPL-3.0-or-later licensing

Type

  • chore / tooling

Checklist

  • Conventional Commit messages
  • No code logic changes — license/metadata only
  • Version metadata consistent (0.4.20 across all files)
  • No generated artifacts modified

Notes

This is a licensing migration only. No functional changes to the plugin. The bundled SLASHED CSS framework remains MIT-licensed (GPL-compatible); the WordPress plugin wrapper is now GPL-3.0-or-later to comply with WordPress.org requirements.

https://claude.ai/code/session_019y4H17xqMWoEgvxv3BRM98

claude added 4 commits July 2, 2026 12:19
Fix factual errors in the wp.org description: SLASHED derives four
status colors (success, warning, danger, info), not five — 'error'
does not exist — and the Components/Utilities/Full bundles currently
style nothing beyond Optimal because those framework layers are
staged upstream. Restructure the repo README around what the plugin
does (Design Settings, Bricks, Gutenberg) before build internals.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019y4H17xqMWoEgvxv3BRM98
The shipped plugin declares GPL-2.0-or-later (plugin header, readme.txt,
license.txt) while the bundled SLASHED framework is MIT. State that split
in readme.txt and the repo README, and fix the Bricks integration README,
which wrongly claimed the integration itself is MIT.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019y4H17xqMWoEgvxv3BRM98
Update the plugin headers, readme.txt, license.txt, repo LICENSE,
composer.json, and package.json to GPL-3.0-or-later (SPDX canonical
text). The bundled SLASHED framework remains MIT; both license files
keep a third-party notice saying so.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019y4H17xqMWoEgvxv3BRM98
Restore the live README.md and readme.txt to their previous content
and park the rewritten versions in copy-wip/, alongside the draft
community post. The GPL-3.0-or-later license header in readme.txt is
kept so it matches license.txt and the plugin headers.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019y4H17xqMWoEgvxv3BRM98
@coderabbitai

coderabbitai Bot commented Jul 2, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@jackgranatowski, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 6 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 543cf51c-bcb5-4d5b-8e3b-f40d1d60bf9c

📥 Commits

Reviewing files that changed from the base of the PR and between d0f9cad and c1867f8.

⛔ Files ignored due to path filters (1)
  • SLASHED-for-WP/admin-app/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (14)
  • LICENSE
  • SLASHED-for-WP/admin-app/package.json
  • SLASHED-for-WP/admin-app/src/AppOverlay.svelte
  • SLASHED-for-WP/integrations/bricks/README.md
  • SLASHED-for-WP/integrations/bricks/slashed-bricks.php
  • SLASHED-for-WP/integrations/gutenberg/slashed-gutenberg.php
  • SLASHED-for-WP/license.txt
  • SLASHED-for-WP/readme.txt
  • SLASHED-for-WP/slashed.php
  • composer.json
  • copy-wip/facebook-post-bricks-community.md
  • copy-wip/github-readme.md
  • copy-wip/wordpress-org-readme.txt
  • package.json
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/bricks-builder-marketing-nl9lx4

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.

@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

Migrate plugin licensing to GPL-3.0-or-later (retain MIT for bundled framework)

📝 Documentation ⚙️ Configuration changes 🕐 20-40 Minutes

Grey Divider

AI Description

• Switch plugin licensing metadata from GPL-2.0-or-later/MIT to GPL-3.0-or-later for WP.org
 alignment.
• Replace/refresh license texts and clarify third-party MIT framework licensing in the main LICENSE.
• Add/update distribution-facing docs (wp.org readme + repo readme + marketing copy) including
 external-services disclosure.
Diagram

graph TD
  A["Repo maintainers"] --> B[("License texts") ] --> C["Plugin headers"] --> D["Package manifests"] --> E["Distribution docs"]
  B --> F["MIT framework notice"]
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Adopt REUSE/SPDX file-level compliance
  • ➕ Reduces future churn by standardizing per-file SPDX headers and centralizing attribution
  • ➕ Makes automated license auditing easier (CI tooling, scanners)
  • ➖ Doesn’t replace WP.org expectations for a shipped license.txt; still need plugin-distribution artifacts
  • ➖ Requires additional repo-wide sweep to add/verify SPDX headers consistently
2. Keep repo-level LICENSE MIT; only license the plugin subtree as GPL
  • ➕ Clean separation if the repo is intended as a multi-project mono-repo (plugin vs framework tooling)
  • ➕ Avoids implying GPL applies to non-plugin content by default
  • ➖ More confusing for users skimming the repo root; requires very explicit scoping language
  • ➖ May conflict with desired ‘plugin-first’ positioning where the repository is primarily the plugin
3. Stay on GPL-2.0-or-later (status quo) and document the MIT framework split
  • ➕ Minimizes licensing change surface while still meeting WordPress.org GPL-compatibility
  • ➕ Less risk of downstream license concerns from GPLv3-specific clauses
  • ➖ Does not achieve the explicit GPLv3 migration goal
  • ➖ Still requires touching many headers/docs to correct inconsistent current statements

Recommendation: The PR’s approach (GPL-3.0-or-later for the plugin, explicit MIT carve-out for bundled framework assets) is appropriate for WordPress distribution and clarity. If ongoing licensing hygiene becomes a recurring cost, consider adding REUSE/SPDX compliance later to make future audits and updates more mechanical.

Files changed (12) +858 / -364

Documentation (7) +850 / -356
LICENSEReplace MIT root license with GPLv3 text and add third-party MIT notice +266/-21

Replace MIT root license with GPLv3 text and add third-party MIT notice

• Swaps the repository root LICENSE from MIT to the full GPL-3.0 license text. Appends a third-party licensing section explicitly stating that bundled SLASHED framework assets remain MIT-licensed and are covered separately.

LICENSE

README.mdClarify Bricks integration license as GPLv3 (plugin) with MIT framework exception +3/-1

Clarify Bricks integration license as GPLv3 (plugin) with MIT framework exception

• Updates the integration README license section to state GPL-3.0-or-later as part of the plugin. Explicitly notes the bundled framework CSS remains MIT-licensed and GPL-compatible.

SLASHED-for-WP/integrations/bricks/README.md

license.txtReplace shipped plugin license.txt from GPLv2 to GPLv3 +222/-332

Replace shipped plugin license.txt from GPLv2 to GPLv3

• Replaces the bundled plugin license.txt contents with the GPL-3.0 license text (Version 3, 29 June 2007). Keeps the THIRD-PARTY LICENSES section header for downstream notices.

SLASHED-for-WP/license.txt

readme.txtUpdate WordPress readme header license fields to GPL-3.0-or-later +2/-2

Update WordPress readme header license fields to GPL-3.0-or-later

• Updates the readme.txt License and License URI header lines from GPL-2.0-or-later to GPL-3.0-or-later.

SLASHED-for-WP/readme.txt

facebook-post-bricks-community.mdAdd draft Bricks community Facebook post copy +17/-0

Add draft Bricks community Facebook post copy

• Introduces marketing/community post draft describing the framework/plugin value proposition and license split (MIT framework, GPL plugin).

copy-wip/facebook-post-bricks-community.md

github-readme.mdAdd GitHub-facing README with feature overview and license statement +88/-0

Add GitHub-facing README with feature overview and license statement

• Adds a repo README describing Design Settings, Bricks and Gutenberg integrations, development commands, and repo layout. Includes explicit license positioning: GPL-3.0-or-later plugin with MIT-licensed bundled framework notice.

copy-wip/github-readme.md

wordpress-org-readme.txtAdd WordPress.org readme including GPLv3 license and external-services disclosure +252/-0

Add WordPress.org readme including GPLv3 license and external-services disclosure

• Adds a wp.org-formatted readme with plugin description, feature breakdown, installation/FAQ/changelog, and explicit GPL-3.0-or-later license header. Includes an external services section describing the optional configurator link and what (if any) data is shared.

copy-wip/wordpress-org-readme.txt

Other (5) +8 / -8
slashed-bricks.phpUpdate Bricks integration plugin header to GPL-3.0-or-later +2/-2

Update Bricks integration plugin header to GPL-3.0-or-later

• Changes the WordPress plugin header fields for License and License URI from GPL-2.0-or-later to GPL-3.0-or-later.

SLASHED-for-WP/integrations/bricks/slashed-bricks.php

slashed-gutenberg.phpUpdate Gutenberg integration plugin header to GPL-3.0-or-later +2/-2

Update Gutenberg integration plugin header to GPL-3.0-or-later

• Changes the WordPress plugin header fields for License and License URI from GPL-2.0-or-later to GPL-3.0-or-later.

SLASHED-for-WP/integrations/gutenberg/slashed-gutenberg.php

slashed.phpUpdate main plugin header to GPL-3.0-or-later +2/-2

Update main plugin header to GPL-3.0-or-later

• Changes the primary plugin bootstrap header fields for License and License URI from GPL-2.0-or-later to GPL-3.0-or-later.

SLASHED-for-WP/slashed.php

composer.jsonSet Composer package license to GPL-3.0-or-later +1/-1

Set Composer package license to GPL-3.0-or-later

• Updates the Composer manifest SPDX license field from MIT to GPL-3.0-or-later to match the plugin’s declared license.

composer.json

package.jsonSet npm package license to GPL-3.0-or-later +1/-1

Set npm package license to GPL-3.0-or-later

• Updates the npm/package.json SPDX license field from MIT to GPL-3.0-or-later for consistency with the plugin licensing.

package.json

@qodo-code-review

qodo-code-review Bot commented Jul 2, 2026

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📜 Skill insights (0)

Context used
✅ Compliance rules (platform): 1 rule

Grey Divider


Remediation recommended

1. Malformed license separator ✓ Resolved 🐞 Bug ⚙ Maintainability
Description
SLASHED-for-WP/license.txt has the separator string --- appended to the end of a GPL paragraph
instead of being on its own line, which makes the distributed license text look
corrupted/inconsistent. This can confuse reviewers and any simple scripts that expect the separator
as a standalone line (as done in the repo root LICENSE).
Code

SLASHED-for-WP/license.txt[R228-233]

+The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an “about box”.

+You should also get your employer (if you work as a programmer) or school, if any, to sign a “copyright disclaimer” for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see <https://www.gnu.org/licenses/>.

----
+The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read <https://www.gnu.org/philosophy/why-not-lgpl.html>.---
Relevance

⭐⭐⭐ High

Team accepts license.txt/doc formatting/compliance fixes (license.txt created/updated in PR #47,
#82).

PR-#47
PR-#82
PR-#77

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The plugin-distributed license file shows the separator appended directly to the URL sentence, while
the repo root LICENSE shows the intended formatting with --- on its own line immediately before
the THIRD-PARTY LICENSES section.

SLASHED-for-WP/license.txt[222-235]
LICENSE[228-236]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`SLASHED-for-WP/license.txt` contains a formatting typo: the `---` separator is concatenated to the end of the final GPL sentence rather than being a standalone separator line.

## Issue Context
The repo root `LICENSE` uses a standalone `---` line before the “THIRD-PARTY LICENSES” section, but the plugin-shipped `SLASHED-for-WP/license.txt` currently has `...why-not-lgpl.html>.---` on one line, which looks like an accidental merge of the delimiter.

## Fix Focus Areas
- SLASHED-for-WP/license.txt[228-234]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Qodo Logo

Comment thread SLASHED-for-WP/license.txt
claude added 2 commits July 2, 2026 14:50
The frameworks configurator (synced from main at build time) de-minified
its codec exports — 'fa' is now 'generateCSS' — and moved from
lucide-svelte to @lucide/svelte. Update the plugin-owned AppOverlay.svelte
import/call and the admin-app dependency + lockfile to match. Verified by
building with SLASHED_CONFIGURATOR_SRC pointed at framework main.

Also fix the license.txt separator that was concatenated onto the last
GPL paragraph line.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019y4H17xqMWoEgvxv3BRM98
Weave the acronym (Standalone, Lean, Agnostic, Structured, Hybrid,
Explicit, Deterministic) into the plugin README draft, the wp.org
description draft, and the community post — leading with Agnostic,
since no-lock-in is the reason the plugin exists.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019y4H17xqMWoEgvxv3BRM98

Copy link
Copy Markdown
Contributor Author

Splitting this into smaller, focused PRs — this one bundled three unrelated concerns together:

The third concern, the admin-app build fix (generateCSS/@lucide/svelte), has already landed on main independently and needs no separate PR.

Closing this one in favor of #149 and #150.


Generated by Claude Code

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