Package graduation
- Dominant language
- JavaScript
- Stars
- 756
- Forks
- 33
- PR merge metrics
- No merged PRs in 30d
Description
## Background
When we started this project, it was a single package (`frint`) in a single repository.
Earlier this year, we focused on the core `frint` package to handle Apps and dependency injection only (since v1), and split other stuff into separate packages, going ahead with a monorepo structure.
Some packages do share the prefix of `frint-` but have nothing to do with FrintJS directly. For e.g., `frint-store` and `frint-data` can live completely on their own.
While monorepo allowed us to build everything together nicely, the last 20-30 releases saw some packages upgrading to another minor/major version even when they didn't have any changes within them.
## Graduate some packages to their own repos
I suggest, export some packages into their own repos. I can think of creating two repos at the moment:
* `frint-store` repo: will contain `frint-store`
* `frint-data` repo: will contain `frint-data` and upcoming `frint-data-validation` packages
## Process
* Push the `frintjs/frint` repo to `frintjs/repo-name` first
* Remove everything else from `frintjs/repo-name` that is not specific to that package
* This way, we can maintain our contributions data from multiple authors
Contributor guide
Research direction
Review the monorepo package layout and the `frint-store` and `frint-data` package entry points first; no specific files or tests are identified in the issue. Define the repository split, including `frint-data-validation`, and confirm that each new repository retains the relevant package history and removes unrelated content.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- tooling
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100