Skip to content

Latest commit

 

History

History
51 lines (37 loc) · 2.33 KB

CONTRIBUTING.md

File metadata and controls

51 lines (37 loc) · 2.33 KB

Contributing

Making changes in TypeScript

Make sure that you edit the source files in TypeScript (*.ts) files.

You can build TypeScript to JavaScript using the TypeScript compiler (and run it with npm script: npm run tsc).

Make sure that you commit changes to both ts and js files.

Testing

In a web browser

  1. Testing json-patch.js
  • Load test/SpecRunner.html in your web browser
  1. Testing json-patch-duplex.js
  • Load test/SpecRunnerDuplex.html in your web browser

Each of the test suite files contains Jasmine unit test suite and Benchmark.js performance test suite.

To run Benchmark.js performance tests, press "Run Tests" button.

In Node.js

  1. Go to directory where you have cloned the repo
  2. Install dev dependencies (Jasmine Node.js module) by running command npm install
  3. Run test npm run test
  • Testing json-patch.js only: npm run test-core
  • Testing json-patch-duplex.js only: npm run test-duplex

Releasing a new version

The release is done from master branch.

  1. Don't break too much. See how many projects depend on this.
  2. Make sure that the browser tests pass in Chrome, Firefox, Edge and IE
  3. Make sure that the NodeJS tests pass npm install && npm run test
  4. Call grunt uglify. This updates the minified files in the dist directory.
  5. Call git status to verify that the only pending changes in the repo are the result of the previous step
  6. Call grunt bump:patch, grunt bump:minor or grunt bump:major. This command:
  • increments the version number in the relevant files
  • commits changes to Git with the version number as the commit message
  • creates a Git tag wit the version
  1. Call git push to push the changes to origin master
  2. Call git push --tags to push the tag to origin master
  3. Call npm publish to push the new version to NPM. Read more
  4. Call npm view fast-json-patch dist-tags to verify that the new version was published in NPM.
  5. Explain the changes (at least an summary of the commit log) in GitHub Releases.
  6. Merge master branch to gh-pages branch to update the static website.