# Contributing

Hey there! Glad you want to chime in. Here's what you need to know.

### Support Requests

We have a [dedicated support channel in Slack][4]. See [this issue][3] to get an invite. Support requests won't be handled through the repository.

If you have a question, make sure it wasn't [already answered][1]. If it wasn't, please refer to the Slack chat. To get an invite, use the badge in the [demo page][2].

> Our goal is to provide answers to the most frequently asked questions somewhere in the documentation.

### Bugs

Bug reports are tricky. Please provide as much context as possible, and if you want to start working on a fix, we'll be forever grateful! Please try and test around for a bit to make sure you're dealing with a bug and not an issue in your implementation.

If possible, provide a demo where the bug is isolated and turned into its smallest possible representation. That would help a lot!

Thanks for reporting bugs, we'd be lost without you.

### Feature Requests

We're still considering feature requests. Note that we might not implement the feature you want, or exactly how you want it. The goal here is to keep making `dragula` awesome while not making it too bloated.

We also dislike overly specific features and favor more abstract ones you the consumer can build other features upon.

# Development

Development flows are based on `npm run` scripts.

### Build

To compile a standalone browserify module, use the following command. A minified version will also be produced. The compiled bundles are placed inside `dist`. Since **these are autogenerated**, please don't include them in your pull requests.

```shell
npm run build
```

You can also run the build continuously, _to facilitate development_, with this command.

```shell
npm start
```

### Test

Run the command below to execute all tests in a DevTools window through Electron. Note that the DevTools will get reloaded whenever your test files change, making tests a breeze!

```shell
npm run test-watch
```

To run tests a single time, simply run the following command. This is used in CI testing.

```shell
npm test
```

[1]: https://github.com/bevacqua/dragula/issues?q=label%3Asupport
[2]: http://bevacqua.github.io/dragula/
[3]: https://github.com/bevacqua/dragula/issues/248
[4]: https://dragula.slack.com
