# Feinberg Package

Feinberg is a skeleton package or tachyon-based projects. It is named after
Gerald Feinberg who coined the term "tachyon" in his 1967 paper "Possibility of
Faster-Than-Light Particles".

# How to Use

## Setup

1. Copy this folder and rename the copy to your package name.
2. Find and replace all the REPLACE_ME strings.
3. Replace the description in package.json.
4. Replace this README.
5. Write your tests and code (or code and tests, if you prefer).

*NOTE*: The package `name` in package.json, the `moduleNameMapper` fields in package.json, and the paths in tsconfig.json ALL MUST MATCH.

## Adding as a dependency for another package

We support using lerna to do development inside of the monorepo without having
to publish new versions of the package. The way you can do this is to have lerna
include the new dependency with:
```
lerna add --scope=mobile-web new-dependency
```
This will add `new-dependency` to the `mobile-web` project, add `--dev` if you
want it to be a dev dependency.

## Building a new version

Any time you want to build a new version you can simply run `yarn build` in your
package.

Once you have done this you can use Lerna to manage updating packages in the
monorepo that rely on your package. All you have to do to get it to do this is
to do `lerna bootstrap`. This will cause lerna to import packages where they are
depended upon. If a package requires a version that does not exist in the repo
then lerna will have yarn fetch it from the internal registry.
