MetaMask / MetaMask/metamask-design-system

Update licensing across the monorepo packages and module template

Open
#130 0 comments 0 reactions 0 assignees View on GitHub
team-design-system
Dominant language
TypeScript
Stars
37
Forks
14
Avg merge
1d 9h
Merged PRs (30d)
60

Description

### **Description**

This issue tracks updating the licensing across the `metamask-design-system` monorepo and improving the `create-package` script to reflect the updated licensing requirements for open-source projects.

#### Context
- Legal has recommended using the following dual licensing model for open-source projects:
- **"MIT OR Apache 2.0"**
- An example of this licensing setup can be found in the [`auto-changelog`](https://github.com/MetaMask/auto-changelog/blob/ef3e86e15b0de7061856a53fd18c4f38e898f5e8/package.json#L9) project, including:
- The dual-license entry in `package.json`.
- The inclusion of two license files in the repository root: `LICENSE-MIT` and `LICENSE-APACHE`.

#### Requirements
1. Update the `create-package` script's module template to use this new licensing model.
2. Update all existing license information in the monorepo to conform to the new licensing model.

### **Technical Details**

- **Step 1: Update `create-package` Script**
- Modify the `create-package` script to:
- Add `"license": "MIT OR Apache-2.0"` to the generated `package.json` files.
- Include two license files in the package:
- `LICENSE-MIT`
- `LICENSE-APACHE`
- Ensure these changes propagate correctly for any newly created packages.

- **Step 2: Update Existing Packages**
- Update all `package.json` files across the monorepo to include `"license": "MIT OR Apache-2.0"`.
- Add the `LICENSE-MIT` and `LICENSE-APACHE` files to the root of the monorepo.
- Remove any existing licenses or references that conflict with this new dual-licensing model.

- **Step 3: Documentation**
- Update relevant README files to explain the dual-licensing model, following the example in the `auto-changelog` project.
- Add a note in the `create-package` documentation to highlight the new licensing model for future maintainers.

### **Acceptance Criteria**

- The `create-package` script generates packages with:
- `"license": "MIT OR Apache-2.0"` in `package.json`.
- Both `LICENSE-MIT` and `LICENSE-APACHE` files included.
- All existing packages in the `metamask-design-system` monorepo are updated with the new dual-license model.
- Licensing files in the monorepo root are consistent with the `auto-changelog` example.
- Documentation is updated to reflect the licensing changes.

### **References**

- [Example from `auto-changelog`](https://github.com/MetaMask/auto-changelog/blob/ef3e86e15b0de7061856a53fd18c4f38e898f5e8/package.json#L9)
- [Slack Discussion](https://consensys.slack.com/archives/C0354T27M5M/p1730761556953979?thread_ts=1730761408.699889&cid=C0354T27M5M)
- [MIT License](https://opensource.org/licenses/MIT)
- [Apache 2.0 License](https://opensource.org/licenses/Apache-2.0)

Contributor guide

Open the contributing guide

Research direction

Locate the create-package script and its module template, then inspect the monorepo's package.json and README files for existing licensing references. Compare the repository setup with the linked auto-changelog example; done means generated and existing packages use the dual-license metadata, both root license files are present, conflicting references are removed, and documentation is updated.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
documentation, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.