MetaMask / MetaMask/metamask-design-system
Update licensing across the monorepo packages and module template
- 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
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