# Contributing and Reporting This is the issue tracker for Opal. If you have a more general question about using Opal (or related libraries) then use the [stackoverflow tag (#opalrb)][SO], the [#opal][freenode] irc channel on *FreeNode*, or the *Gitter* chatroom at [opal/opal][gitter] (also available as IRC at `irc.gitter.im`). [SO]: http://stackoverflow.com/questions/ask?tags=opalrb [freenode]: http://webchat.freenode.net/?channels=opal [gitter]: https://gitter.im/opal/opal What follows is a quick checklist you can before sending issues or pull-requests, for in-depth instructions on how to hack the internals of Opal and setup the development environment please see [`HACKING.md`][hacking]. [hacking]: https://github.com/opal/opal/blob/master/HACKING.md ## Submitting a New Issue 1. Before opening a new issue, search for previous discussions including closed ones. Add comments there if a similar issue is found. 2. Please report the version on which the issue is found (`opal -v`). 3. The best issues have steps to reproduce the error. Common ways to do that are: - A snippet of Ruby code - A CLI command with its output, e.g. `opal -ve 'p String != Symbol' # => false'` ## Submitting a Pull Request 1. Before sending pull requests make sure all tests run and pass (see `HACKING.md` in this repo). 2. Make sure to use a similar coding style to the rest of the code base. Some examples follow: - In Ruby and JavaScript code we use 2 spaces (no tabs) - In JavaScript we use `snake_case` for methods and variables 3. Make sure to have updated all the relevant documentation, both for API (using _yardoc_ syntax) and the Guides 4. Add a Changelog entry at the top of `CHANGELOG.md` ### A note on commits in PR You could be asked to squash your commits during a PR review. That doesn't mean there's a preference for a single commit for each PR, rather it's a request to have each commit focused on a specific group changes and avoid the sequence of changes, fixups and reverts that tell an interesting story but in the end make the use of `git blame` quite difficult. __That said, these are quite loose requirements in the spirit of keeping contributing enjoyable 🤓__