# Humpty 🍳

>  Makes sure your changelogs mention your breaking changes

[![Build Status](https://travis-ci.org/bengummer/humpty.svg?branch=master)](https://travis-ci.org/bengummer/humpty) [![npm](https://img.shields.io/npm/v/humpty.svg)]()

## Intro

It's really easy to make a breaking API change to your React component and forget to release it as a major version. Humpty stops this from happening by checking what's changed in your component API, and making sure it is mentioned in your changelogs.

## Usage

```sh
$ humpty --oldApi 72c5c9e0 --newApi c72257 --gitRepo ~/Repos/bengummer/humpty-mock-api

🚨 Found 1 breaking API change not mentioned in git commits (72c5c9..c72257):

Default export
  - Prop type changed: "age" was string, now number
```

## Supported APIs and changelogs

> 💡 This project has just started, a pluggable API/changelog system can be added to support APIs other than React. Raise an issue to discuss! Check out the [Trello board][trello-board] for the roadmap.

### Supported API detection

* React components
  * Prop removed
  * Prop type changed
  * Prop made mandatory
  * Prop made optional

Note: React components are currently only checked in the root `index.js` file - this will be made more flexible soon to read the `main` script from `package.json`.

### Supported changelogs

* React components
  * Commit messages containing `${propName} prop`

## Installation

If you're using humpty in CI you can install it globally

```sh
$ yarn global add humpty
```

Or add it as a devDependency and call it via an npm script

```json
{
  "name": "my-component",
  "scripts": {
    "humpty": "humpty ..."
  }
}
```

```sh
$ yarn add --dev humpty
$ yarn run humpty
```

## Detailed usage

**`--oldApi`**

Git branch or SHA where your current public API code is stored.

**`--newApi`**

Git branch or SHA where your new public API code is stored.

**`--gitRepo`**

Path to the git repo where your source lives.

**`--json`** (optional)

Output result as JSON instead of emoji + text

[trello-board]: https://trello.com/b/kO2SRotn/humpty
