Skip to content

Commit

Permalink
Merge branch 'master' into pr-2409
Browse files Browse the repository at this point in the history
  • Loading branch information
benlesh authored May 9, 2017
2 parents 688ea18 + bb0738f commit 73f2b64
Show file tree
Hide file tree
Showing 67 changed files with 1,416 additions and 271 deletions.
1 change: 1 addition & 0 deletions .npmignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ spec
.git
yarn.lock
coverage
typings/
45 changes: 45 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,48 @@
<a name="5.3.1"></a>
## [5.3.1](https://github.com/ReactiveX/RxJS/compare/5.3.0...v5.3.1) (2017-05-02)


### Bug Fixes

* **AsyncAction:** rescheduling an action with the same delay before it has executed will now schedule appropriately. ([#2580](https://github.com/ReactiveX/RxJS/issues/2580)) ([281760e](https://github.com/ReactiveX/RxJS/commit/281760e))
* **closure:** make root.ts work with closure ([#2546](https://github.com/ReactiveX/RxJS/issues/2546)) ([0ecf55d](https://github.com/ReactiveX/RxJS/commit/0ecf55d))
* **tests:** add missing babel-polyfill to package.json ([b277ce9](https://github.com/ReactiveX/RxJS/commit/b277ce9)), closes [#2261](https://github.com/ReactiveX/RxJS/issues/2261)
* **withLatestFrom:** change from hot to cold observable in marble test ([0c65446](https://github.com/ReactiveX/RxJS/commit/0c65446)), closes [#2526](https://github.com/ReactiveX/RxJS/issues/2526)



<a name="5.3.0"></a>
# [5.3.0](https://github.com/ReactiveX/RxJS/compare/5.2.0...v5.3.0) (2017-04-03)


### Bug Fixes

* **catch:** return type is now the union of input types ([#2478](https://github.com/ReactiveX/RxJS/issues/2478)) ([840def0](https://github.com/ReactiveX/RxJS/commit/840def0))
* **forEach:** fix a temporal dead zone issue in forEach. ([#2474](https://github.com/ReactiveX/RxJS/issues/2474)) ([e9e9801](https://github.com/ReactiveX/RxJS/commit/e9e9801))
* **multicast:** Ensure ConnectableObservables returned by multicast are state-isolated. ([aaa9e6b](https://github.com/ReactiveX/RxJS/commit/aaa9e6b))
* **reduce:** proper TypeScript signature overload ordering ([#2382](https://github.com/ReactiveX/RxJS/issues/2382)) ([f6a4951](https://github.com/ReactiveX/RxJS/commit/f6a4951)), closes [#2338](https://github.com/ReactiveX/RxJS/issues/2338)
* **SafeSubscriber:** SafeSubscriber shouldn't mutate incoming Observers. ([a1778e0](https://github.com/ReactiveX/RxJS/commit/a1778e0))
* **timeout:** Cancels scheduled timeout, if no longer needed ([3e9d529](https://github.com/ReactiveX/RxJS/commit/3e9d529)), closes [#2134](https://github.com/ReactiveX/RxJS/issues/2134) [#2244](https://github.com/ReactiveX/RxJS/issues/2244) [#2355](https://github.com/ReactiveX/RxJS/issues/2355) [#2347](https://github.com/ReactiveX/RxJS/issues/2347) [#2353](https://github.com/ReactiveX/RxJS/issues/2353) [#2254](https://github.com/ReactiveX/RxJS/issues/2254) [#2372](https://github.com/ReactiveX/RxJS/issues/2372) [#1301](https://github.com/ReactiveX/RxJS/issues/1301)
* **zipAll:** complete when the source is empty ([712fece](https://github.com/ReactiveX/RxJS/commit/712fece))


### Features

* **delayWhen:** add index to the selector function ([5d6291e](https://github.com/ReactiveX/RxJS/commit/5d6291e))
* **symbol exports:** symbols now also exported without `$$` prefix to work with Babel UMD exporting ([#2435](https://github.com/ReactiveX/RxJS/issues/2435)) ([747bef6](https://github.com/ReactiveX/RxJS/commit/747bef6)), closes [#2415](https://github.com/ReactiveX/RxJS/issues/2415)


### Performance Improvements

* **bufferCount:** optimize bufferCount operator ([#2359](https://github.com/ReactiveX/RxJS/issues/2359)) ([28d0883](https://github.com/ReactiveX/RxJS/commit/28d0883))


### April Fools

* **smooth:** `smooth()` was never really a thing. Sorry, folks. :D



<a name="5.2.0"></a>
# [5.2.0](https://github.com/ReactiveX/RxJS/compare/5.1.1...v5.2.0) (2017-02-21)

Expand Down
52 changes: 24 additions & 28 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@ Contents
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->


- [Submitting a Pull Request (PR)](#submitting-a-pull-request-pr)
- [After your pull request is merged](#after-your-pull-request-is-merged)
- [Coding Style Guidelines](#coding-style-guidelines)
- [Unit Tests](#unit-tests)
- [CI Tests](#ci-tests)
- [Performance Tests](#performance-tests)
- [Macro](#macro)
- [Micro](#micro)
- [Submitting a Pull Request (PR)](#submitting-a-pull-request-pr)
- [After your pull request is merged](#after-your-pull-request-is-merged)
- [Coding Style Guidelines](#coding-style-guidelines)
- [Unit Tests](#unit-tests)
- [CI Tests](#ci-tests)
- [Performance Tests](#performance-tests)
- [Macro](#macro)
- [Micro](#micro)
- [Commit Message Guidelines](#commit-message-guidelines)
- [Commit Message Format](#commit-message-format)
- [Revert](#revert)
Expand All @@ -29,19 +29,15 @@ Contents
<!-- END doctoc generated TOC please keep comment here to allow auto update -->

---
- [Pull Requests](#pull-requests)
- [Coding Style](#coding)
- [Commit Messages](#commit)
- [Creating Operators](doc/operator-creation.md)
- [Unit Tests](#unit-tests)
- Related documents
- [Creating Operators](doc/operator-creation.md)
- [Writing Marble Tests](doc/writing-marble-tests.md)
- [Performance Tests](#performance-tests)
- [Macro](#macro)
- [Micro](#micro)

---

(This document is a work and progress and is subject to change)

### Submitting a Pull Request (PR)
## Submitting a Pull Request (PR)
Before you submit your Pull Request (PR) consider the following guidelines:

* Search [GitHub](https://github.com/ReactiveX/RxJS/pulls) for an open or closed PR
Expand All @@ -52,12 +48,12 @@ Before you submit your Pull Request (PR) consider the following guidelines:
git checkout -b my-fix-branch master
```

* Create your patch, following [code style guidelines](#code), and **including appropriate test cases**.
* Create your patch, following [code style guidelines](#coding-style-guidelines), and **including appropriate test cases**.
* Run the full test suite and ensure that all tests pass.
* Run the micro and macro performance tests against your feature branch and compare against master
to ensure performance wasn't changed for the worse.
* Commit your changes using a descriptive commit message that follows our
[commit message conventions](#commit). Adherence to these conventions
[commit message guidelines](#commit-message-guidelines). Adherence to these conventions
is necessary because release notes are automatically generated from these messages.
```shell
Expand Down Expand Up @@ -86,7 +82,7 @@ Before you submit your Pull Request (PR) consider the following guidelines:
That's it! Thank you for your contribution!
#### After your pull request is merged
### After your pull request is merged
After your pull request is merged, you can safely delete your branch and pull the changes
from the main (upstream) repository:
Expand Down Expand Up @@ -115,7 +111,7 @@ from the main (upstream) repository:
git pull --ff upstream master
```
### Coding Style Guidelines
## Coding Style Guidelines
- Please use proper types and generics throughout your code.
- 2 space indentation only
Expand All @@ -124,7 +120,7 @@ from the main (upstream) repository:
(TBD): For now try to follow the style that exists elsewhere in the source, and use your best judgment.
### Unit Tests
## Unit Tests
Unit tests are located under the [spec directory](/spec). Unit tests over synchronous operators and operations
can be written in a standard [jasmine](http://jasmine.github.io/) style. Unit tests written against any
Expand All @@ -146,14 +142,14 @@ then it must cover the following cases:
- Success with the context, if any allowed in the operator signature
- If an error is thrown
#### CI Tests
### CI Tests
- Using [Travis](https://travis-ci.org/) on your forked version of RxJS will allow running CI tests on that fork before submitting a PR to master
- Simply create a `Travis` account and add your fork as a new project
- [Sauce Labs](https://saucelabs.com/) setup will allow performing automated browser tests on the fork. Since `saucelabs` doesn't perform browser tests on a PR, this will help verify test results before PR's are checked into master.
- In your `Travis` repo configuration, set the environment variables SAUCE_USERNAME and SAUCE_ACCESS_KEY to your `saucelabs` account ([reference](https://cloud.githubusercontent.com/assets/1210596/12679038/b9ba4eb6-c656-11e5-8c9b-b063c9a3f9dc.png))
- As master runs both of these tests per each check in, it'd be welcome to setup those test before creating your PR

### Performance Tests
## Performance Tests

One of the primary goals of this library is (and will continue to be) great performance. As such, we've employed a variety of performance
testing techniques.
Expand All @@ -168,7 +164,7 @@ testing techniques.
please add tests for those scenarios
#### Macro
### Macro
[Macro performance tests](perf/macro) are best written for scenarios where many object instance allocations (or deallocations) are occurring. Operators
that create a lot of child subscriptions, or operators that emit new objects like Observables and Subjects are definitely worth creating
Expand All @@ -187,7 +183,7 @@ protractor protractor.conf.js
```
#### Micro
### Micro
[Micro performance tests](perf/micro) really only serve to test operations per second. They're quick and easy to develop, and provide a reasonable look into the
relative performance of our operators versus prior versions. All operators should have corresponding micro performance tests.
Expand Down Expand Up @@ -226,7 +222,7 @@ format that includes a **type**, a **scope** and a **subject**:

The **header** is mandatory and the **scope** of the header is optional.

Any line of the commit message cannot be longer 100 characters! This allows the message to be easier
Any line of the commit message cannot be longer than 100 characters! This allows the message to be easier
to read on GitHub as well as in various git tools.

### Revert
Expand Down Expand Up @@ -265,4 +261,4 @@ The body should include the motivation for the change and contrast this with pre
The footer should contain any information about **Breaking Changes** and is also the place to
reference GitHub issues that this commit **Closes**.
**Breaking Changes** should start with the word `BREAKING CHANGE:` with a space or two newlines. The rest of the commit message is then used for this.
**Breaking Changes** should start with the word `BREAKING CHANGE:` with a space or two newlines. The rest of the commit message is then used for this.
3 changes: 1 addition & 2 deletions MIGRATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,6 @@ enabling "composite" subscription behavior.
|`shareValue`|No longer implemented|
|`singleInstance`|`share`|
|`skipLastWithTime`|No longer implemented|
|`skipLast`|No longer implemented|
|`skipUntilWithTime`|No longer implemented|
|`slice(start, end)`|`skip(start).take(end - start)`|
|`some`|`first(fn, () => true, false)`|
Expand Down Expand Up @@ -287,7 +286,7 @@ RxJS v4 defaulted to a scheduler called `Rx.Scheduler.asap` which schedules on t
The names of the Schedulers in RxJS 4 were based off of the Rx.NET implementation. Consequently, some of the names
didn't make sense in a JavaScript context (for example: `currentThread` when there's only one thread anyhow).

|RxJS 4|RxJS 5||
|RxJS 4|RxJS 5| |
|------|------|---|
|`Rx.Scheduler.default`|`Rx.Scheduler.asap`|schedules on the micro task queue|
|`Rx.Scheduler.currentThread`|`Rx.Scheduler.queue`|schedules on a queue in the current event frame (trampoline scheduler)|
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

# RxJS 5

Reactive Extensions Library for JavaScript. This is a rewrite of [Reactive-Extensions/RxJS](https://github.com/Reactive-Extensions/RxJS) and is intended to supersede it once this is ready. This rewrite is meant to have better performance, better modularity, better debuggable call stacks, while staying mostly backwards compatible, with some breaking changes that reduce the API surface.
Reactive Extensions Library for JavaScript. This is a rewrite of [Reactive-Extensions/RxJS](https://github.com/Reactive-Extensions/RxJS) and is the latest production-ready version of RxJS. This rewrite is meant to have better performance, better modularity, better debuggable call stacks, while staying mostly backwards compatible, with some breaking changes that reduce the API surface.

[Apache 2.0 License](LICENSE.txt)

Expand Down
3 changes: 3 additions & 0 deletions doc/decision-tree-widget/tree.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,9 @@ children:
- label: based on custom logic
children:
- label: skipWhile
- label: from the end of the Observable
children:
- label: skipLast
- label: until another Observable emits a value
children:
- label: skipUntil
Expand Down
2 changes: 2 additions & 0 deletions doc/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ RxJS is a library for reactive programming using Observables, to make it easier

- - -

### Find the right Operator

<div class="decision-tree-widget"></div>

**Hint: open your DevTools to experiment with RxJS.**
2 changes: 1 addition & 1 deletion doc/installation.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
## ES6 via npm

```none
npm install rxjs-es
npm install rxjs
```

To import the entire core set of functionality:
Expand Down
2 changes: 1 addition & 1 deletion doc/observable.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Observables are lazy Push collections of multiple values. They fill the missing

| | Single | Multiple |
| --- | --- | --- |
| **Pull** | [`Function`](https://developer.mozilla.org/en-US/docs/Glossary/Function) | [Iterator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols) |
| **Pull** | [`Function`](https://developer.mozilla.org/en-US/docs/Glossary/Function) | [`Iterator`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols) |
| **Push** | [`Promise`](https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise) | [`Observable`](../class/es6/Observable.js~Observable.html) |

**Example.** The following is an Observable that pushes the values `1`, `2`, `3` immediately (synchronously) when subscribed, and the value `4` after one second has passed since the subscribe call, then completes:
Expand Down
1 change: 1 addition & 0 deletions doc/operators.md
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,7 @@ There are operators for different purposes, and they may be categorized as: crea
- [`sampleTime`](../class/es6/Observable.js~Observable.html#instance-method-sampleTime)
- [`single`](../class/es6/Observable.js~Observable.html#instance-method-single)
- [`skip`](../class/es6/Observable.js~Observable.html#instance-method-skip)
- [`skipLast`](../class/es6/Observable.js~Observable.html#instance-method-skipLast)
- [`skipUntil`](../class/es6/Observable.js~Observable.html#instance-method-skipUntil)
- [`skipWhile`](../class/es6/Observable.js~Observable.html#instance-method-skipWhile)
- [`take`](../class/es6/Observable.js~Observable.html#instance-method-take)
Expand Down
2 changes: 2 additions & 0 deletions doc/styles/main.css
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ body.light-theme .navigation, body.dark-theme .navigation {
height: calc(100% - 40px);
background-color: #333;
padding: 10px;
-webkit-overflow-scrolling: touch;
}

body.light-theme .navigation {
Expand Down Expand Up @@ -208,6 +209,7 @@ a:hover {
overflow-y: scroll;
height: calc(100vh - 40px);
box-sizing: border-box;
-webkit-overflow-scrolling: touch;
}

.content .detail {
Expand Down
32 changes: 16 additions & 16 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@reactivex/rxjs",
"version": "5.2.0",
"version": "5.3.1",
"description": "Reactive Extensions for modern JavaScript",
"main": "index.js",
"config": {
Expand Down Expand Up @@ -75,9 +75,9 @@
"copy_src_cjs": "mkdirp ./dist/cjs/src && shx cp -r ./src/* ./dist/cjs/src",
"copy_src_es6": "mkdirp ./dist/es6/src && shx cp -r ./src/* ./dist/es6/src",
"commit": "git-cz",
"compile_dist_cjs": "tsc ./dist/cjs/src/Rx.ts ./dist/cjs/src/add/observable/of.ts -m commonjs --lib es5,es2015.iterable,es2015.collection,es2015.promise,dom --sourceMap --outDir ./dist/cjs --target ES5 -d --diagnostics --pretty --noImplicitAny --noImplicitReturns --noImplicitThis --suppressImplicitAnyIndexErrors --moduleResolution node",
"compile_module_es6": "tsc ./dist/es6/src/Rx.ts ./dist/es6/src/add/observable/of.ts -m es2015 --sourceMap --outDir ./dist/es6 --target ES5 -d --diagnostics --pretty --noImplicitAny --noImplicitReturns --noImplicitThis --suppressImplicitAnyIndexErrors --moduleResolution node --noEmitHelpers --lib es5,es2015.iterable,es2015.collection,es2015.promise,dom ",
"compile_dist_es6_for_docs": "tsc ./dist/es6/src/Rx.ts ./dist/es6/src/add/observable/of.ts ./dist/es6/src/MiscJSDoc.ts -m es2015 --sourceMap --outDir ./dist/es6 --target ES6 -d --diagnostics --pretty --noImplicitAny --noImplicitReturns --noImplicitThis --suppressImplicitAnyIndexErrors --moduleResolution node",
"compile_dist_cjs": "tsc ./dist/cjs/src/Rx.ts ./dist/cjs/src/add/observable/of.ts -m commonjs --lib es5,es2015.iterable,es2015.collection,es2015.promise,dom --sourceMap --outDir ./dist/cjs --target ES5 -d --diagnostics --pretty --noImplicitAny --noImplicitReturns --noImplicitThis --suppressImplicitAnyIndexErrors --moduleResolution node",
"compile_module_es6": "tsc ./dist/es6/src/Rx.ts ./dist/es6/src/add/observable/of.ts -m es2015 --sourceMap --outDir ./dist/es6 --target ES5 -d --diagnostics --pretty --noImplicitAny --noImplicitReturns --noImplicitThis --suppressImplicitAnyIndexErrors --moduleResolution node --noEmitHelpers --lib es5,es2015.iterable,es2015.collection,es2015.promise,dom ",
"compile_dist_es6_for_docs": "tsc ./dist/es6/src/Rx.ts ./dist/es6/src/add/observable/of.ts ./dist/es6/src/MiscJSDoc.ts -m es2015 --sourceMap --outDir ./dist/es6 --target ES6 -d --diagnostics --pretty --noImplicitAny --noImplicitReturns --noImplicitThis --suppressImplicitAnyIndexErrors --moduleResolution node",
"cover": "shx rm -rf dist/cjs && tsc src/Rx.ts src/add/observable/of.ts -m commonjs --lib es5,es2015.iterable,es2015.collection,es2015.promise,dom --outDir dist/cjs --sourceMap --target ES5 -d && nyc --reporter=lcov --reporter=html --exclude=spec/support/**/* --exclude=spec-js/**/* --exclude=node_modules mocha --opts spec/support/default.opts spec-js",
"decision_tree_widget": "cd doc/decision-tree-widget && npm run build && cd ../..",
"doctoc": "doctoc CONTRIBUTING.md",
Expand All @@ -91,7 +91,7 @@
"prepublish": "shx rm -rf ./typings && typings install && npm run build_all",
"publish_docs": "./publish_docs.sh",
"test_mocha": "mocha --opts spec/support/default.opts spec-js",
"debug_mocha": "node-debug _mocha --opts spec/support/debug.opts spec-js",
"debug_mocha": "node --inspect --debug-brk ./node_modules/.bin/_mocha --opts spec/support/debug.opts spec-js",
"test_browser": "npm-run-all build_spec_browser && opn spec/support/mocha-browser-runner.html",
"test": "npm-run-all clean_spec build_spec test_mocha clean_spec",
"tests2png": "npm run build_spec && mkdirp tmp/docs/img && mkdirp spec-js/support && shx cp spec/support/*.opts spec-js/support/ && mocha --opts spec/support/tests2png.opts spec-js",
Expand Down Expand Up @@ -146,6 +146,7 @@
},
"homepage": "https://github.com/ReactiveX/RxJS",
"devDependencies": {
"babel-polyfill": "^6.23.0",
"benchmark": "^2.1.0",
"benchpress": "2.0.0-beta.1",
"chai": "^3.5.0",
Expand All @@ -158,24 +159,24 @@
"escape-string-regexp": "^1.0.5 ",
"esdoc": "^0.4.7",
"eslint": "^3.8.0",
"fs-extra": "^0.30.0",
"fs-extra": "^2.1.2",
"glob": "^7.0.3",
"gm": "^1.22.0",
"google-closure-compiler-js": "^20160916.0.0",
"google-closure-compiler-js": "^20170218.0.0",
"gzip-size": "^3.0.0",
"http-server": "^0.9.0",
"husky": "^0.12.0",
"lint-staged": "^3.2.5",
"husky": "^0.13.3",
"lint-staged": "3.2.5",
"lodash": "^4.15.0",
"madge": "^1.4.3",
"markdown-doctest": "^0.8.1",
"markdown-doctest": "^0.9.1",
"minimist": "^1.2.0",
"mkdirp": "^0.5.1",
"mocha": "^3.0.2",
"mocha-in-sauce": "0.0.1",
"npm-run-all": "^3.1.0",
"npm-run-all": "^4.0.2",
"npm-scripts-info": "^0.3.4",
"nyc": "^8.3.0",
"nyc": "^10.2.0",
"opn-cli": "^3.1.0",
"platform": "^1.3.1",
"promise": "^7.1.1",
Expand All @@ -184,17 +185,16 @@
"rollup-plugin-inject": "^2.0.0",
"rollup-plugin-node-resolve": "^2.0.0",
"rx": "latest",
"shx": "^0.1.4",
"sinon": "^2.0.0-pre",
"sinon-chai": "^2.8.0",
"shx": "^0.2.2",
"sinon": "^2.1.0",
"sinon-chai": "^2.9.0",
"source-map-support": "^0.4.0",
"tslib": "^1.5.0",
"tslint": "^4.4.2",
"typescript": "~2.0.6",
"typings": "^2.0.0",
"validate-commit-msg": "^2.3.1",
"watch": "^1.0.1",
"watchify": "3.7.0",
"webpack": "^1.13.1",
"xmlhttprequest": "1.8.0"
},
Expand Down
Loading

0 comments on commit 73f2b64

Please sign in to comment.