frintjs / frintjs/frint

Package graduation

Open
#378 0 comments 2 reactions 0 assignees View on GitHub
proposal
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.