# Getting Started

This SDK provides core shared componets for Xalt's native and browser platform.

___
Contents:

- [Overview](#overview)

- [Usage](#usage)

- [Testing](#testing)

- [Check-in Policy](#check-in-policy)

- [Commits](#commits)

- [Publishing](#publishing)

- [Permissions](#permissions)
___

## Installation

Install `cv-react-core` using npm:
```bash
npm install --save cv-react-core
```
the package will install in the `package.json` under dependencies

## Overview

TODO: add location to overview of code features.


## Usage

To use the SDK, first include the objects you wish to pull into your project (this example pulls in the main Catavolt object and the Log. see the API for all components).
```Javascript
import { constants, utilities } from 'cv-react-core'; // pulls constants and utilities object
```

## Testing

Inside the project you can use Jest to test your changes locally. 

- Run 'npm run test' to execute the tests inside this project and get coverage results of your testing.

To test the package locally in another application you can do the following:

- Run 'npm run create-tarball'. This will generate a folder called package. You can then copy this package over to your project manually. You may also point your project to use the 'package' folder inside this project to resolve cv-react-core.

Note: Running 'npm start -- --reset-cache' is your friend when running into issue resolving new features.

## Check-in Policy

Please perform the following before check-in

- Run "npm run test" and verify all test pass
- Run "npm run flow" to verify any linting or typing issues

## Commits

Commits should follow the standard naming conventions outline by [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0-beta.3/)

Examples:
- feat: Add comments about feature release. This will bump the symantic versioning minor count.
- fix: Add comments about your fix. This will bump the symantic versioning build counter.
- docs: Add documentation comments. This should bump the symantic versioning build counter.

This will take affect in the "CHANGELOG.md" when you run the publishing steps.

## Publishing

To publish your changes run the following scripts:

- Run "npm run release-alpha"
- Run "npm run publish-npm"

Since we haven't officially release, all changes are going under an "alpha" tag at the moment.

## Permissions

If you do not have permission to publish please contact the project owner.