lasfito / mad

Experimental monorepo for the Mobile Application Delivery team

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MAD - Mobile Application Delivery


npm npm npm

This is a monorepo collecting many of the packages used in the Mobile Application Delivery team.

πŸ“¦ Apps and packages:

App / Package Description
Chronicles A storybook-like app for collecting many of the packages in the repo.
Components React Native component library implementing EDS.
Skia Draw Wrappers and utility components for implementing a drawing library in React Native.
Maintenance API Typescript wrapper for the Equinor Maintenance API
TSConfig Global TSConfig used in our packages.
ESLint MAD Linting rules used throughout MAD development.

πŸ‘¨β€πŸ’» Development

⏱️ Getting started

This turborepo uses pnpm as a package manager. Start by cloning the repository and run

npm install -g pnpm

Install dependencies, run

pnpm install

You can build only the packages you work on, but if you want to build everything to start with, run

pnpm build:all

πŸ‘·β€β™€οΈ Working on a package

Packages in the repository usually have some common scripts to make development easier. These are labeled by the following keywords : build, test, dev, and lint.

The dev commands wrap package specific needs into a single command for development. Take for example the MAD Components package. Since any change in its code requires a build for the MAD Chronicles app to refresh, we define the dev script in the components package to build with the watch flag. A developer working on the component library does not need to bother with these details, so running

pnpm dev:chronicles
pnpm dev:components

is all that is required.

This is how development on the packages is set up. With some exceptions, you can run any of these scripts with

pnpm {keyword}:{package-alias}

Head into the project root package.json for a full list of all commands.

πŸ™ Contributing to the repository

Branching

We use Trunk-based development in this repository. Branching is done in and out of the main branch for each update.

Pull requests

Pull requests into main should as a rule of thumb ALWAYS contain a changeset (see: Changesets). You create these by running

pnpm changeset

and follow the promts. This way, changelogs and version bumps are automatically handeled. Also note that we use semantic pull request titles. These are verified automatically during PR linting.

πŸ”— Useful Links

πŸš€ Turborepo

Learn more about the power of Turborepo:

πŸ› οΈ Repository tools

Check out the docs for some of the tools we use throughout the repository:

About

Experimental monorepo for the Mobile Application Delivery team

License:MIT License


Languages

Language:TypeScript 99.6%Language:JavaScript 0.4%