Before opening an issue, please search the issue tracker to make sure your issue hasn't already been reported.
We use the issue tracker to keep track of bugs and improvements to Raven.js itself, plugins, and the documentation. We encourage you to open issues to discuss improvements, architecture, implementation, etc. If a topic has been discussed before, we will ask you to join the previous discussion.
For support or usage questions like “how do I do X with Raven.js and “my code doesn't work”, please search and ask on the Sentry forum.
On both GitHub and the Sentry forum, it is a good idea to structure your code and question in a way that is easy to read and understand. For example, we encourage you to use syntax highlighting, indentation, and split text in paragraphs.
Additionally, it is helpful if you can let us know:
- The version of Raven.js affected
- The browser and OS affected
- Which Raven.js plugins are enabled, if any
- If you are using hosted Sentry or on-premises, and if the latter, which version (e.g. 8.7.0)
- If you are using the Raven CDN (http://ravenjs.com)
Lastly, it is strongly encouraged to provide a small project reproducing your issue. You can put your code on JSFiddle or, for bigger projects, on GitHub. Make sure all the necessary dependencies are declared in package.json so anyone can run npm install && npm start and reproduce your issue.
To run the test suite and run our code linter, node.js and npm are required. If you don't have node installed, get it here first.
Installing all other dependencies is as simple as:
$ npm install
And if you don't have Grunt already, feel free to install that globally:
$ npm install -g grunt-cli
The test suite is powered by Mocha and can both run from the command line or in the browser.
From the command line:
$ grunt test
From your browser:
$ grunt run:test
Then visit: http://localhost:8000/test/
The simplest way to compile your own version of Raven.js is with the supplied grunt command:
$ grunt build
By default, this will compile raven.js and all of the included plugins.
If you only want to compile the core raven.js:
$ grunt build.core
Files are compiled into build/
.
Please, send over suggestions and bug fixes in the form of pull requests on GitHub. Any nontrivial fixes/features should include tests.
Do not include any changes to the dist/
folder or bump version numbers yourself.
The documentation is written using reStructuredText, and compiled using Sphinx. If you don't have Sphinx installed, you can do it using following command (assuming you have Python already installed in your system):
$ pip install sphinx
Documentation can be then compiled by running:
$ make docs
Afterwards you can view it in your browser by running following command and than pointing your browser to http://127.0.0.1:8000/:
$ grunt run:docs
This is a checklist for core contributors when releasing a new version.
- Verify TypeScript language definition file is up to date
- Bump version numbers in both
package.json
andbower.json
. - Bump version across all docs under
docs/
- Put together CHANGELOG
-
$ grunt dist
This will compile a new version and update it in thedist/
folder. - Confirm that build was fine, etc.
- Commit new version, create a tag. Push to GitHub.
- Copy CHANGELOG entry into a new GH Release: https://github.com/getsentry/raven-js/releases
-
$ grunt publish
to recompile all plugins and all permutations and upload to S3. -
$ npm publish
to push to npm. - Confirm that the new version exists behind
cdn.ravenjs.com
- Bump version in the
gh-pages
branch specifically for http://ravenjs.com/. - Bump marketing pages on sentry.io, e.g. https://sentry.io/for/javascript/
- Bump sentry.io
<script>
tag of raven.js - Bump
package.json
in Sentry repo https://github.com/getsentry/sentry/blob/master/package.json - Bump version for Segment integration since they don't: https://github.com/segment-integrations/analytics.js-integration-sentry
- glhf