Skip to content

Conversation

@kingston
Copy link
Collaborator

@kingston kingston commented May 31, 2025

Summary by CodeRabbit

  • Documentation
    • Updated the LICENSE file across all packages to the Mozilla Public License 2.0 (MPL-2.0) with a new "Generated Code Exception," ensuring users have full ownership and flexibility over code generated by Baseplate tools.
    • Added and clarified license information in the README, including explicit details about generated code ownership.
    • Updated package metadata to reference the new licensing terms.

@linear
Copy link

linear bot commented May 31, 2025

ENG-718 Switch licensing to MPL 2.0 for platform and MIT for generated code

Overview

Update Baseplate's licensing structure to use MPL 2.0 for the platform code and MIT for all generated code/templates.

Tasks

1. Update Platform License

  • Replace current LICENSE file with MPL 2.0 license text
  • Update package.json files to reflect MPL 2.0 license

2. Generated Code Licensing

  • Add clear statements that generated code belongs to the user

3. Documentation Updates

  • Update README.md to clearly explain dual licensing approach
  • Add licensing section explaining:
    • Baseplate platform is MPL 2.0
    • Generated code is user-owned with no restrictions

Acceptance Criteria

  • All platform code is properly licensed under MPL 2.0
  • Generated code includes clear user ownership statements
  • Documentation clearly explains the licensing approach
  • No licensing conflicts in dependencies

@changeset-bot
Copy link

changeset-bot bot commented May 31, 2025

🦋 Changeset detected

Latest commit: 2a1ed2e

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 17 packages
Name Type
@halfdomelabs/baseplate-plugin-storage Patch
@halfdomelabs/project-builder-common Patch
@halfdomelabs/project-builder-server Patch
@halfdomelabs/project-builder-test Patch
@halfdomelabs/baseplate-plugin-auth Patch
@halfdomelabs/project-builder-cli Patch
@halfdomelabs/project-builder-lib Patch
@halfdomelabs/project-builder-web Patch
@halfdomelabs/fastify-generators Patch
@halfdomelabs/react-generators Patch
@halfdomelabs/core-generators Patch
@halfdomelabs/create-project Patch
@halfdomelabs/ui-components Patch
@halfdomelabs/code-morph Patch
@halfdomelabs/tools Patch
@halfdomelabs/utils Patch
@halfdomelabs/sync Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai
Copy link

coderabbitai bot commented May 31, 2025

Walkthrough

This update replaces all proprietary and MIT license texts across the repository and its packages with the Mozilla Public License 2.0 (MPL-2.0), adding a "Generated Code Exception" that grants users full ownership of generated code. Supporting configuration and documentation were updated to reference the new license and clarify generated code ownership.

Changes

File(s) Change Summary
LICENSE
packages//LICENSE
plugins/
/LICENSE
Replaced proprietary or MIT license texts with the full Mozilla Public License 2.0 (MPL-2.0) and added a "Generated Code Exception" clarifying user ownership and rights over generated code. Removed all prior custom license clauses.
.workspace-meta/templates/LICENSE Added a new LICENSE template file containing the full MPL-2.0 text plus the Generated Code Exception for use across packages.
.workspace-meta/config.ts Updated configuration to ensure LICENSE files use the new template, added logic to avoid formatting LICENSE files, and modified plugins to set the license field in package.json to "SEE LICENSE IN LICENSE".
packages/create-project/package.json Changed the license field from "MIT" to "SEE LICENSE IN LICENSE" to reference the new license file.
README.md Added a License section specifying MPL-2.0 and a Generated Code Ownership subsection clarifying user rights over generated code.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant WorkspaceConfig
    participant LicenseTemplate
    participant PackageJson

    User->>WorkspaceConfig: Initialize or update workspace
    WorkspaceConfig->>LicenseTemplate: Read LICENSE template
    WorkspaceConfig->>WorkspaceConfig: Ensure LICENSE file exists in each package
    WorkspaceConfig->>PackageJson: Set license field to "SEE LICENSE IN LICENSE"
    Note over WorkspaceConfig,PackageJson: LICENSE files and package.json updated to MPL-2.0 with Generated Code Exception
Loading

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@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: 0

♻️ Duplicate comments (9)
packages/project-builder-web/LICENSE (1)

1-391: This LICENSE file is identical to the template in .workspace-meta/templates/LICENSE. Ensure it stays in sync with the approved template above.

plugins/baseplate-plugin-auth/LICENSE (1)

1-391: Apply the same formatting and verification fixes as above

This file has the identical markdown-style headers and exception clause as in packages/project-builder-cli/LICENSE. Please remove markdown syntax and ensure the MPL-2.0 text matches the official license verbatim, following the suggestions made for the first LICENSE file.

packages/project-builder-common/LICENSE (1)

1-391: Apply the same formatting and verification fixes as above

This LICENSE file also uses markdown headings and bold markers. Please convert to plain text and verify the MPL-2.0 content against the official source, as noted for the initial LICENSE file.

packages/project-builder-lib/LICENSE (1)

1-391: Apply the same formatting and verification fixes as above

Identical markdown formatting and content appear here. Remove markdown artifacts and confirm that the license text is an exact match to the authoritative MPL-2.0.

packages/fastify-generators/LICENSE (1)

1-391: Apply the same formatting and verification fixes as above

This LICENSE file likewise needs markdown removed and a verbatim MPL-2.0 text check, following the recommendations applied to the first file.

packages/tools/LICENSE (1)

1-8: The Generated Code Exception clause and MPL-2.0 text are consistent with the approved template in packages/project-builder-server/LICENSE.

plugins/baseplate-plugin-storage/LICENSE (1)

1-8: The license content matches the standardized MPL-2.0 with Generated Code Exception as reviewed in the server package.

packages/sync/LICENSE (1)

1-8: Same update as above: the Generated Code Exception is correctly applied and the MPL-2.0 text is complete.

packages/project-builder-test/LICENSE (1)

1-8: This LICENSE file aligns with the approved template from other packages, including the Generated Code Exception.

🧹 Nitpick comments (6)
packages/project-builder-cli/LICENSE (1)

1-8: Use plain-text formatting for license header and Generated Code Exception

The LICENSE file currently includes markdown-specific syntax (e.g., “## License”, “Generated Code Exception”), which may break license scanners and tooling that expect plain-text. Please remove the markdown headings and bold markers, and render the exception clause as plain text to align with standard license file conventions.

packages/project-builder-server/LICENSE (1)

1-12: Consider adding an SPDX identifier
To improve machine readability and compliance, you may want to prepend an SPDX header (e.g., SPDX-License-Identifier: MPL-2.0 WITH Generated-Code-Exception) at the very top of this file.

packages/ui-components/LICENSE (1)

1-391: Consider Centralizing License Maintenance to Reduce Duplication.
Each package contains the same lengthy license text. Since you have a canonical template in .workspace-meta/templates/LICENSE, consider automating or symlinking these files to that template so updates only need to happen in one place.

packages/core-generators/LICENSE (1)

1-391: Reduce License Duplication via Template Automation.
Maintaining identical license files across multiple packages risks drift. Leverage your .workspace-meta/templates/LICENSE to generate or symlink these files, streamlining future updates.

packages/utils/LICENSE (1)

1-391: Automate License File Generation to Prevent Divergence.
Rather than manually copying the full text into each package, use your existing license template mechanism to inject or symlink these files—simplifying maintenance and reducing the chance of discrepancy.

LICENSE (1)

1-391: Centralize Root LICENSE for Consistency and Ease of Updates.
While root LICENSE duplication is expected, consider referencing the .workspace-meta/templates/LICENSE directly or automating its propagation to package subdirectories to maintain a single source of truth.

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Lite

📥 Commits

Reviewing files that changed from the base of the PR and between b957226 and 2a1ed2e.

📒 Files selected for processing (23)
  • .changeset/smart-islands-mix.md (1 hunks)
  • .workspace-meta/config.ts (1 hunks)
  • .workspace-meta/templates/LICENSE (1 hunks)
  • LICENSE (1 hunks)
  • README.md (1 hunks)
  • packages/code-morph/LICENSE (1 hunks)
  • packages/core-generators/LICENSE (1 hunks)
  • packages/create-project/LICENSE (1 hunks)
  • packages/create-project/package.json (1 hunks)
  • packages/fastify-generators/LICENSE (1 hunks)
  • packages/project-builder-cli/LICENSE (1 hunks)
  • packages/project-builder-common/LICENSE (1 hunks)
  • packages/project-builder-lib/LICENSE (1 hunks)
  • packages/project-builder-server/LICENSE (1 hunks)
  • packages/project-builder-test/LICENSE (1 hunks)
  • packages/project-builder-web/LICENSE (1 hunks)
  • packages/react-generators/LICENSE (1 hunks)
  • packages/sync/LICENSE (1 hunks)
  • packages/tools/LICENSE (1 hunks)
  • packages/ui-components/LICENSE (1 hunks)
  • packages/utils/LICENSE (1 hunks)
  • plugins/baseplate-plugin-auth/LICENSE (1 hunks)
  • plugins/baseplate-plugin-storage/LICENSE (1 hunks)
🔇 Additional comments (21)
.workspace-meta/templates/LICENSE (2)

5-8: Exception clause is clear and explicit.

The "Generated Code Exception" clearly states user ownership of generated code and disclaims any copyright interest by Half Dome Labs LLC,
aligning perfectly with the PR objectives.


9-391: The remaining content is the unmodified, official MPL-2.0 text duplicated correctly.

.changeset/smart-islands-mix.md (1)

2-21:

Details

✅ Verification successful

Verify completeness of the changeset.

This changeset lists all @halfdomelabs/* packages that had their LICENSE updated. Please confirm that every package directory with a LICENSE file is included here. You can run:


🏁 Script executed:

#!/bin/bash
# List all package LICENSE files and compare to the changeset entries
find packages -type f -name LICENSE | sed 's|^\.\/packages\/||' | sort

Length of output: 563


All LICENSE-bearing packages are included in the changeset.

Verified that the 15 package directories containing a LICENSE file are listed:

• code-morph
• core-generators
• create-project
• fastify-generators
• project-builder-cli
• project-builder-common
• project-builder-lib
• project-builder-server
• project-builder-test
• project-builder-web
• react-generators
• sync
• tools
• ui-components
• utils

packages/create-project/package.json (1)

6-6: Update license field to external LICENSE reference.

Changing the "license" value to "SEE LICENSE IN LICENSE" aligns with the external MPL-2.0 file in this package.

README.md (1)

58-64: Document license and generated code ownership.

The new License section correctly references the MPL-2.0 and the Generated Code Ownership clause clearly conveys user rights and aligns with the updated LICENSE files.

.workspace-meta/config.ts (1)

1-33: LGTM! Well-structured license management configuration.

The configuration changes effectively implement automated LICENSE file management across the workspace:

  • Custom formatter appropriately bypasses LICENSE files to preserve formatting
  • ensureFile plugin ensures consistent LICENSE content from template
  • Package.json license field correctly references LICENSE file instead of SPDX identifier

This approach will help maintain licensing consistency across all packages.

packages/create-project/LICENSE (1)

1-391: LGTM! Complete and proper MPL-2.0 license implementation.

The license file correctly implements:

  • Clear copyright notice for Half Dome Labs LLC (2025)
  • Well-defined "Generated Code Exception" that clarifies user ownership of generated code
  • Complete MPL-2.0 text with all required sections and exhibits
  • Proper formatting and structure

The Generated Code Exception effectively addresses the common concern about ownership of code generated by development tools.

packages/react-generators/LICENSE (1)

1-391: LGTM! Consistent license implementation across packages.

This LICENSE file maintains perfect consistency with the other package licenses, ensuring uniform licensing terms across the repository. The MPL-2.0 + Generated Code Exception content is identical and properly formatted.

packages/code-morph/LICENSE (1)

1-391: LGTM! Excellent repository-wide license standardization.

This completes the consistent licensing implementation across all reviewed packages. The uniform MPL-2.0 + Generated Code Exception approach provides:

  • Clear legal framework for the project
  • Explicit ownership clarification for generated code
  • Consistent licensing across all packages
  • Professional legal documentation

The licensing update is comprehensive and well-executed.

packages/project-builder-cli/LICENSE (1)

9-391: Verify the MPL-2.0 text verbatim

The remainder of this file should be an exact, unmodified copy of the official Mozilla Public License Version 2.0. Please compare this text against the authoritative source to catch any typos, formatting deviations, or missing sections.

packages/project-builder-server/LICENSE (3)

1-2: Verify copyright notice
The ownership statement on lines 1–2 correctly attributes Half Dome Labs LLC and contributors for 2025.


5-7: Generated Code Exception clarity
The “Generated Code Exception” clause on lines 5–7 is clearly stated before the MPL-2.0 text, ensuring users understand their full rights over generated code.


9-12: MPL-2.0 text completeness
The standard Mozilla Public License Version 2.0 sections appear intact and in the correct order, covering definitions, grants, conditions, and exhibits.

packages/ui-components/LICENSE (2)

1-7: Ensure the Generated Code Exception is Prominent and Legally Sound.
The exception clearly states that generated code is user-owned and disclaims Half Dome Labs LLC’s copyright interest.
Please verify the exact wording with legal counsel to confirm it fully captures the intended rights and disclaimers.


9-14: Confirm the Official MPL-2.0 Text and Formatting.
The full MPL-2.0 text, including Exhibits A and B, is present. Ensure every section heading, clause number, and notice matches the authoritative license verbatim to avoid any legal discrepancies.

packages/core-generators/LICENSE (2)

1-7: Verify the Generated Code Exception’s Visibility and Accuracy.
This clause is critical for empowering users with ownership of generated code. Confirm its placement and precise language with your legal team to ensure it cannot be inadvertently overridden.


9-14: Validate the Integrity of the MPL-2.0 Text and Exhibits.
The standard MPL-2.0 provisions and Exhibits A/B must be included exactly as published. Please cross-check against the official source to guarantee complete fidelity.

packages/utils/LICENSE (2)

1-7: Confirm Legal Clarity of the Generated Code Exception.
The exception clearly disclaims rights in generated code. Please have this reviewed by legal to ensure it aligns with organizational policy and downstream user expectations.


9-14: Ensure Exact Match to Official MPL-2.0 and Exhibits.
The MPL-2.0 sections and Exhibits A/B must be reproduced verbatim for legal validity. Double-check spacing, numbering, and wording against the MPL steward’s version.

LICENSE (2)

1-7: Verify the Generated Code Exception at the Repository Root.
Having this exception in the root LICENSE ensures every consumer sees it. Confirm the phrasing covers all generator outputs and that it takes precedence over the standard MPL grant.


9-14: Cross-check Root LICENSE Against Official MPL-2.0.
The core license text and Exhibits A/B must be identical to the steward’s release. Validate section order, numbering, and wording to avoid unintended license gaps.

@kingston kingston merged commit 9caaa0a into main May 31, 2025
11 checks passed
@kingston kingston deleted the kingston/eng-718-switch-licensing-to-mpl-20-for-platform-and-mit-for branch May 31, 2025 18:06
@github-actions github-actions bot mentioned this pull request May 31, 2025
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