# Contributing to 'base64-text-decoder' ## Support / Questions For **support or usage questions** like "How do I do X with base64-text-decoder." and "My code doesn't work.", please search and ask on **StackOverflow** with a **'base64-text-decoder' tag** first. ## Bugs > The ideal GitHub issue (and even some feature requests) is not an issue, it's a PR with a failing test case. >
[@rauchg](https://twitter.com/rauchg/status/810589655532007424) **Before filing an issue please [search the issue tracker](https://github.com/jolzee/base64-text-decoder/issues); your issue may have already been discussed or fixed in `master`.** **If you want your issue to get priority, submit it as a PR instead** **Fill in the template** provided by the issue tracker, try to be as **clear** and **complete** as possible, providing a **[Short, Self Contained, Correct (Compilable), Example (SSCE)](http://sscce.org/)** (**link** to a **repository**) helps a lot . ## Feature / Enhancement Requests Feature or enhancement requests should be **submitted** in the [issue tracker](https://github.com/jolzee/base64-text-decoder/issues), with a **description** (follow the template) of the expected behavior & use case, where they’ll remain until **approval** by the **lead maintainer(s) and/or enough interest** from the **community**. You can **request** a feature by **writing a pull request**, but this is **no guarantee** it will be **merged**. ## 'help wanted' label There are issues marked with the **['help wanted'](https://github.com/jolzee/base64-text-decoder/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)** label.
This is a perfect start if you want to help out with the further development of base64-text-decoder. ## Pull Requests (PR) In general, the contribution workflow looks like this: 1. **Fork** the repo. 2. **Clone** the repo. `git clone https://github.com/your-username/base64-text-decoder.git`. 3. Create a **new branch** based off the master branch, provide a **descriptive name**
(ex. '**feat**-add-better-logging', '**bug**-removed-double-method', '**enh**-bumped-eslint') 4. Before running the code you’ll need to **install** the **dependencies** (`npm install` or `yarn`). 5. **Implement** your feature / bugfix (using the **watch scripts**), you should **only need to modify `/src`**. Don’t worry about regenerating the build folder `/dist`, it is **built** in the **prepublish** phase. 6. Make sure **all tests pass**, **coverage is 100%** and there are **no linting errors**. 7. Submit a **PR**, referencing what it addresses. 8. Please try to keep your **PR focused in scope and avoid including unrelated commits**, use **[Gitmoji](https://gitmoji.carloscuesta.me/)** in your commits. After you have submitted your PR, we'll try to **get back to you as soon as possible**.
We will **review** your PR and might **request changes**. ## Development / Watch mode You can **run the watch scripts** ```console npm run build:watch ``` and ```console npm run test:watch ``` to make development easier. ## Coding Guidelines Please **follow** the **conventions** already established in the code. Guidelines are enforced using **[ESLint](http://eslint.org/)**. You can **run the linting script** by using ```console $ npm run lint ``` ## Testing Include updated (or add new) tests in the `__tests__/` directory as part of your PR. You can **run the test script** by using ```console $ npm run test ``` or with coverage ```console $ npm run test:coverage ``` Aim for **100% [coverage](https://en.wikipedia.org/wiki/Code_coverage)**. ## Hooks We added **pre-commit** and **pre-push** **hooks** to make sure you **don't commit non-working code.**