# Warpd UI Kit

An enterprise-class UI design language and React-based implementation for Nexign interfaces.

## Features

- An enterprise-class UI design language for web applications.
- A set of high-quality React components out of the box.
- Written in TypeScript with complete define types.

## Environment Support

* Modern browsers and Internet Explorer 9+ (with [polyfills](https://ant.design/docs/react/getting-started#Compatibility))
* Server-side Rendering
* [Electron](http://electron.atom.io/)


## Install

```bash
npm install warpd --save
```

## Usage

```jsx
import { DatePicker } from 'warpd';
ReactDOM.render(<DatePicker />, mountNode);
```

### TypeScript
See [Use in TypeScript](https://ant.design/docs/react/use-in-typescript)


## Internationalization
See [i18n](http://ant.design/docs/react/i18n).


## Development
```bash
$ npm install
$ npm start
```

Open your browser and visit http://127.0.0.1:8001


## Git flow

### Installing git-flow
```
brew install git-flow-avh
```

### Initialize
Start using git-flow by initializing it inside an existing git repository:
```
git flow init
```
You'll have to answer a few questions regarding the naming conventions for your branches.
It's recommended to use the default values.


### Start a new feature
Development of new features starting from the 'develop' branch.
Start developing a new feature with
```
git flow feature start JIRATASKNAME-123
```
This action creates a new feature branch based on 'develop' and switches to it.


### Publish a feature
Publish a feature to the remote server so it can be used by other users.
Please always publish your feature for ability to make pull request later.
```
git flow feature publish JIRATASKNAME-123
```
Once you publish a feature you don't need to do it every time when you need update on remote branch.
Just use
```
git push origin feature/JIRATASKNAME-123
```

### Finish up a feature
At first please update your branch with develop branch
```
git pull origin develop --rebase
```
Then resolve conflicts and create pull request.
We don't finish feature, but create pull request instead.
```
git create-pull-request develop
```
(Protip: to create pull request directly from command line you will need to install additional tools listed below)

**Please note that for bugfixes and hotfixes the flow remains the same.**



## Stash: pull requests from the command line

### Updating Ruby
```
brew install ruby
```
```
brew unlink ruby && brew link ruby
```

### Installing atlassian-stash
```
gem install atlassian-stash
```

(Protip: you might need to `sudo`)

Once the gem is installed, the command `stash` will be in your `$PATH`

## Configuration and usage
Run `stash configure`. This will prompt for details about your Bitbucket Server instance. If no password is provided, then you will be prompted for a password when executing commands to Bitbucket Server.

The global configuration file lives at `$HOME/.stashconfig.yml` and any options in a similarly named `.stashconfig.yml` file in the root of a git repository will take precedence.

### Passwords
There are currently two ways to store your password in the configuration file. You may store it as plain text with the key `password`, for example:

```
password: s3cre7
```

Or you may store a command string with the `passwordeval` key which allows you to use any encrypted method you like in order to store your password. For example, if using gpg:

```
passwordeval: gpg --no-tty --quiet --decrypt ~/.secret.gpg
```

The `stash configure` utility will not prompt you for this. If you wish to use `passwordeval`, omit a password during the configuration and add it to `~/.stashconfig.yml` afterwards.


### Creating a pull request
Use the `pull-request` command to create a pull request in Bitbucket Server. For example:

```
stash pull-request topicBranch master @michael
Create a pull request from branch 'topicBranch' into 'master' with 'michael' added as a reviewer
```

See the usage for command details

```
stash help pull-request
```

### Opening the Bitbucket Server web UI
Use the `browse` command to open the Bitbucket Server UI for your repository in the browser.

```
stash browse -b develop
Open the browser at the Bitbucket Server repository page for the branch 'develop'
```

For more options, see the help

```
stash help browse
```

## Configuration options

Running `stash configure` will prepopulate `~/.stashconfig.yml` with a variety of options. Complete options are:

```
#!yaml
username: seb # username to connect to Bitbucket Server server.
password: s3cr3t # password for user. If ommitted, you will be prompted at the terminal when making a request to Bitbucket Server
stash_url: https://bitbucket.server.com # fully qualified Bitbucket Server url
remote: upstream # Pull requests will be created in the Bitbucket Server repository specified by this remote
open: true # opens newly created pull requests in the browser
ssl_no_verify: true # do not check ssl certificates for the configured Bitbucket Server server
```

## Troubleshooting
Q: I installed the gem, but the `stash` command doesn't work.  
A: Do you have another command called `stash` or do you have an alias? Have a look where the command maps to

```
which -a stash
```

Then check the value of your $PATH
