Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v1.0.0 proposal #311

Merged
merged 225 commits into from
Jan 24, 2018
Merged

v1.0.0 proposal #311

merged 225 commits into from
Jan 24, 2018

Conversation

belochub
Copy link
Member

@belochub belochub commented Jan 22, 2018

Version 1.0.0 (2018-01-22, @belochub)

This is a new and shiny first major release for metarhia-jstp.
Changes include API refactoring and improvements, implementations of
CLI, sessions, and application versions, native addon build optimizations,
lots of bug fixes, test coverage increase, and other, less notable changes.

This release also denotes the bump of the protocol version to v1.0.
The only difference from the previous version of the protocol is that
"old" heartbeat messages ({}) are now deprecated and ping/pong
messages must be used for this purpose instead.

Notable changes:
  • src,build: improve the native module subsystem (Alexey Orlenko) #36 [semver-minor]
  • build: compile in ISO C++11 mode (Alexey Orlenko) #37 [semver-minor]
  • build: improve error handling (Alexey Orlenko) #40 [semver-minor]
  • lib: refactor record-serialization.js (Alexey Orlenko) #41 [semver-minor]
  • parser: fix a possible memory leak (Alexey Orlenko) #44 [semver-minor]
  • protocol: change the format of handshake packets (Alexey Orlenko) #54 [semver-major]
  • parser: make parser single-pass (Mykola Bilochub) #61
  • parser: remove special case for '\0' literal (Mykola Bilochub) #68 [semver-major]
  • parser: fix bug causing node to crash (Mykola Bilochub) #75
  • client: drop redundant callback argument (Alexey Orlenko) #104 [semver-major]
  • client: handle errors in connectAndInspect (Alexey Orlenko) #105 [semver-major]
  • socket,ws: use socket.destroy() properly (Alexey Orlenko) #84 [semver-major]
  • cli: add basic implementation (Mykola Bilochub) #107 [semver-minor]
  • connection: fix error handling in optional cbs (Alexey Orlenko) #147 [semver-major]
  • test: add JSON5 specs test suite (Alexey Orlenko) #158
  • lib: change event signature (Denys Otrishko) #187 [semver-major]
  • lib: add address method to Server (Denys Otrishko) #190 [semver-minor]
  • parser: implement NaN and Infinity parsing (Mykola Bilochub) #201
  • parser: improve string parsing performance (Mykola Bilochub) #220
  • lib: optimize connection events (Denys Otrishko) #222 [semver-major]
  • lib: refactor server and client API (Denys Otrishko) #209 [semver-major]
  • lib,src: rename term packet usages to message (Denys Otrishko) #270 [semver-major]
  • lib: emit events about connection messages (Denys Otrishko) #252 [semver-minor]
  • lib: implement API versioning (Denys Otrishko) #231 [semver-minor]
  • lib: allow to set event handlers in application (Denys Otrishko) #286 [semver-minor]
  • lib: allow to broadcast events from server (Denys Otrishko) #287 [semver-minor]
  • connection: make callback method private (Alexey Orlenko) #306 [semver-major]
  • lib: implement sessions (Mykola Bilochub) #289 [semver-major]
  • connection: use ping-pong instead of heartbeat (Dmytro Nechai) #303 [semver-major]
All changes:
  • src,build: improve the native module subsystem (Alexey Orlenko) #36 [semver-minor]
  • build: compile in ISO C++11 mode (Alexey Orlenko) #37 [semver-minor]
  • build: improve error handling (Alexey Orlenko) #40 [semver-minor]
  • lib: refactor record-serialization.js (Alexey Orlenko) #41 [semver-minor]
  • doc: document versioning policy (Alexey Orlenko) #42
  • doc: fix mistyped repository name (Alexey Orlenko) #45
  • parser: fix a possible memory leak (Alexey Orlenko) #44
  • test: add Node.js 7.5 to .travis.yml (Alexey Orlenko) #47
  • test: fix typos in connection.test.js (Alexey Orlenko) #51
  • doc: fix a typo in protocol.md (Alexey Orlenko) #55
  • connection: handle optional callbacks properly (Alexey Orlenko) #52
  • protocol: change the format of handshake packets (Alexey Orlenko) #54 [semver-major]
  • server: clean internal structures on close (Alexey Orlenko) #59
  • src,build: add missing header (Mykola Bilochub) #64
  • src: add curly braces in switch statements (Mykola Bilochub) #62
  • build: fail CI if native addon build fails (Alexey Orlenko) #65
  • parser: make parser single-pass (Mykola Bilochub) #61
  • src: fix single-line comment spacing (Mykola Bilochub) #67
  • parser: improve string parsing (Mykola Bilochub) #66
  • parser: remove special case for '\0' literal (Mykola Bilochub) #68 [semver-major]
  • src: fix inconsistency in empty string creation (Mykola Bilochub) #70
  • doc: document protocol versioning policy (Alexey Orlenko) #56
  • lib: fix behavior with util.inspect (Alexey Orlenko) #72
  • deps,build: update webpack to 2.x (Alexey Orlenko) #73
  • build,test: avoid unnecessary recompiling (Alexey Orlenko) #74
  • doc: update badges in README.md and doc/index.md (Alexey Orlenko) #71
  • parser: fix bug causing node to crash (Mykola Bilochub) #75
  • tools: automate the release preparation (Alexey Orlenko) #77
  • server: handle connection errors before handshake (Alexey Orlenko) #78
  • connection: close connection on transport error (Alexey Orlenko) #78
  • doc: fix linter warning in CHANGELOG.md (Alexey Orlenko) #80
  • tools: remove crlf.js from dot-ignore files (Alexey Orlenko) #83
  • npm: don't include doc/ and mkdocs.yml to package (Alexey Orlenko) #82
  • doc: add session WG meeting (Mykola Bilochub) #81
  • lint: update remark (Alexey Orlenko) #87
  • test: add Node.js 6.10 and 7.6 to .travis.yml (Alexey Orlenko) #86
  • tools: move build-native.js to tools (Alexey Orlenko) #89
  • lib: make failed addon loading more informative (Alexey Orlenko) #90
  • w3c-ws: emit missing error event (Alexey Orlenko) #93
  • w3c-ws: fix invalid property access (Alexey Orlenko) #94
  • test: add Node.js 7.7 to .travis.yml (Alexey Orlenko) #95
  • connection: change style of a forward declaration (Alexey Orlenko) #96
  • lib: change multiline function signatures style (Alexey Orlenko) #97
  • tools: generate authors list automatically (Alexey Orlenko) #88
  • meta: update AUTHORS and .mailmap (Alexey Orlenko) #88
  • meta: fix misleading language in LICENSE (Alexey Orlenko) #88
  • connection: check that method arguments exist (Alexey Orlenko) #100
  • src: fix incorrect indentation in CodePointToUtf8 (Alexey Orlenko) #103
  • client: drop redundant callback argument (Alexey Orlenko) #104 [semver-major]
  • client: handle errors in connectAndInspect (Alexey Orlenko) #105 [semver-major]
  • socket,ws: use socket.destroy() properly (Alexey Orlenko) #84 [semver-major]
  • test: add Node.js 7.8 to .travis.yml (Alexey Orlenko) #119
  • lint: add arrow-parens rule to eslint (Denys Otrishko) #122
  • meta: update AUTHORS (Alexey Orlenko) #123
  • cli: add basic implementation (Mykola Bilochub) #107 [semver-minor]
  • cli: refactor code and fix bugs (Denys Otrishko) #107 [semver-minor]
  • cli: add 'exit' command (Denys Otrishko) #107 [semver-minor]
  • cli: add server events support (Mykola Bilochub) #107 [semver-minor]
  • cli: display async results properly (Denys Otrishko) #107 [semver-minor]
  • cli: fix stylistic mistakes (Denys Otrishko) #107 [semver-minor]
  • cli: modify _split behaviour (Mykola Bilochub) #107 [semver-minor]
  • cli: move cli.js to tools and make it executable (Alexey Orlenko) #107 [semver-minor]
  • cli: fix prompt display bug (Denys Otrishko) #107 [semver-minor]
  • cli: fix 'disconnect' error handling bug (Denys Otrishko) #107 [semver-minor]
  • test: add Node.js 7.9 and 7.10 to .travis.yml (Alexey Orlenko) #124
  • tcp: fix URL parsing in client creation (Mykola Bilochub) #128
  • cli: fix jstp import statement (Denys Otrishko) #130
  • lint: add import/no-unresolved ESLint rule (Alexey Orlenko) #133
  • cli: modify split behaviour (Denys Otrishko) #132
  • cli: implement autocompletion for cli commands (Denys Otrishko) #132
  • cli: refine error messages (Denys Otrishko) #135
  • cli: avoid crashing on incorrect user input (Mykola Bilochub) #137
  • ws: fix emitting error when callback is provided (Mykola Bilochub) #136
  • cli: support different transports for connection (Mykola Bilochub) #138
  • cli: fix cli autocompletion (Denys Otrishko) #140
  • parser: fix '[' being parsed as an empty array (Mykola Bilochub) #144
  • parser: fix exceptions being ignored (Mykola Bilochub) #143
  • cli: simplify cli autocompletion (Denys Otrishko) #150
  • test: migrate serde tests to tap (Dmytro Nechai) #153
  • meta: update AUTHORS (Alexey Orlenko) #156
  • test: fix naming issues in serde test cases (Dmytro Nechai) #161
  • connection: fix error handling in optional cbs (Alexey Orlenko) #147 [semver-major]
  • test: add JSON5 specs test suite (Alexey Orlenko) #158
  • doc: modernize README.md and add CoC (Alexey Orlenko) #166
  • cli: add method autocompletion (Denys Otrishko) #141
  • doc: add notes for the 2017-04-11 meeting (Alexey Orlenko) #165
  • npm: don't publish tests in the npm package (Alexey Orlenko) #159
  • test: refactor serde tests a bit (Dmytro Nechai) #169
  • test: migrate message parser tests to tap (Dmytro Nechai) #168
  • test: fix using incorrect field in serde tests (Mykola Bilochub) #172
  • parser: fix not throwing error in some cases (Mykola Bilochub) #171
  • lib, test: remove JSOS (Dmytro Nechai) #170
  • cli: fix crush on event reception (Mykola Bilochub) #173
  • cli: fix crash on socket errors (Mykola Bilochub) #174
  • doc: update links to JSTP repos (Alexey Orlenko) #177
  • test: migrate remoteError tests to tap (Dmytro Nechai) #167
  • parser: rework error handling (Mykola Bilochub) #178
  • parser: disallow unterminated multiline comments (Mykola Bilochub) #179
  • dist: add nyc output files to dotignore files (Alexey Orlenko) #180
  • cli: refactor cli.js (Denys Otrishko) #127
  • build: run native addon build in parallel (Mykola Bilochub) #185
  • test: migrate common.js tests to tap (Dmytro Nechai) #176
  • tcp: fix listening on port 0 (Alexey Orlenko) #189
  • test: refactor tests (Dmytro Nechai) #182
  • tcp: fixup "fix listening on port 0" (Alexey Orlenko) #191
  • cli: fix event handling (Denys Otrishko) #196
  • lib: change event signature (Denys Otrishko) #187 [semver-major]
  • deps: update deps and add package-lock.json (Alexey Orlenko) #186
  • lib: add address method to Server (Denys Otrishko) #190 [semver-minor]
  • dist: ignore clang autocompletion files (Alexey Orlenko) #194
  • test: add Node.js 8 to .travis.yml (Alexey Orlenko) #195
  • test: autodetect available browsers in karma (Denys Otrishko) #193
  • tcp: fix TLS server creation (Alexey Orlenko) #197
  • test: migrate handshake and server tests (Dmytro Nechai) #183
  • doc: update links to repos (Timur Shemsedinov) #203
  • test: migrate call and callback tests (Dmytro Nechai) #200
  • test: migrate event and remote-proxy tests (Dmytro Nechai) #199
  • test: migrate inspect and remote-proxy tests (Dmytro Nechai) #198
  • doc: fix extra spaces inside links in README.md (Alexey Orlenko) #205
  • parser: implement NaN and Infinity parsing (Mykola Bilochub) #201
  • parser: disallow empty hex, octal, binary literals (Mykola Bilochub) #207
  • parser: fix parsing of big integer values (Mykola Bilochub) #208
  • cli: fix exception on unestablished connection (Denys Otrishko) #210
  • cli: refactor disconnect command processor (Mykola Bilochub) #212
  • test: run lint first (Dmytro Nechai) #215
  • dist: update tap (Dmytro Nechai) #214
  • dist: add coverage task (Dmytro Nechai) #214
  • test: remove mocha and karma (Dmytro Nechai) #213
  • dist: rename test commands (Dmytro Nechai) #213
  • parser: parse noctal number literals (Mykola Bilochub) #221
  • parser: improve string parsing performance (Mykola Bilochub) #220
  • parser: allow numeric literals as object keys (Mykola Bilochub) #223
  • test: use lodash.isEqual instead of tap.strictSame (Dmytro Nechai) #206
  • lib: optimize connection events (Denys Otrishko) #222 [semver-major]
  • parser,tools: parse Unicode identifiers (Mykola Bilochub) #218
  • build: choose the Unicode tables via env variable (Alexey Orlenko) #218
  • lib: refactor server and client API (Denys Otrishko) #209 [semver-major]
  • doc: update examples according to the new API (Denys Otrishko) #209 [semver-major]
  • lib: make safeRequire() return tuple (Dmytro Nechai) #226
  • deps: update deps and regenerate package-lock.json (Alexey Orlenko) #225
  • deps: update tap (Dmytro Nechai) #227
  • doc: fix indentation in README.md (Denys Otrishko) #232
  • dist: fix language statistics on GitHub (Mykola Bilochub) #233
  • cli: update cli according to api changes (Denys Otrishko) #230
  • src: remove native serializer (Dmytro Nechai) #228
  • src,tools: update Unicode version (Mykola Bilochub) #234
  • test: refactor fixtures for serde tests (Dmytro Nechai) #236
  • parser: parse Unicode escape sequences in keys (Mykola Bilochub) #219
  • doc: remove unused variable from README example (Mykola Bilochub) #240
  • lib,test,tools: fix linter errors with ESLint 4 (Alexey Orlenko) #242
  • deps: update ESLint and eslint-plugin-import (Alexey Orlenko) #242
  • parser: allow uppercase letters in number literals (Mykola Bilochub) #239
  • doc: remove examples/data-formats (Alexey Orlenko) #238
  • parser: deprecate legacy octal integer literals (Mykola Bilochub) #247
  • lib: rewrite i-face introspection without promises (Timur Shemsedinov) #245
  • test: add tests for JSON5 stringify (Dmytro Nechai) #237
  • test: add tests for number parsing (Dmytro Nechai) #241
  • deps: update the dependencies and recreate lock (Alexey Orlenko) #249
  • test: add Node.js 6.11 and 8.1 to .travis.yml (Alexey Orlenko) #248
  • cli: support connections via Unix domain sockets (Mykola Bilochub) #251
  • lib: make the code style more consistent (Timur Shemsedinov) #244
  • lib: refactor return style (Timur Shemsedinov) #256
  • test: add handshake timeout test (Dmytro Nechai) #255
  • lib,src: rename record serialization to serde (Dmytro Nechai) #229
  • lint: add comma-dangle rule to eslint (Dmytro Nechai) #257
  • tools: disable history for readline.Interface (Mykola Bilochub) #259
  • test: fix race condition in connection-handshake (Dmytro Nechai) #260
  • src: fix building on the old gcc versions (Mykola Bilochub) #264
  • test: enable tests for js parser implementation (Alexey Orlenko) #258
  • build: fix building with Node.js 6 on macOS (Alexey Orlenko) #265
  • test: rewrite the Travis config (Alexey Orlenko) #263
  • lib: fix W3C WebSocket event forwarding (Dmytro Nechai) #266
  • test: add .appveyor.yml (Alexey Orlenko) #261
  • test: use tap's built-in todo test facilities (Alexey Orlenko) #267
  • test: add tests for websocket transport (Dmytro Nechai) #268
  • dist: add code coverage folders to .eslintignore (Dmytro Nechai) #272
  • test: add wss tests (Dmytro Nechai) #271
  • lib,src: rename term packet usages to message (Denys Otrishko) #270 [semver-major]
  • deps: update devDependencies (Alexey Orlenko) #275
  • deps: add missing uuid dependency (Alexey Orlenko) #280
  • doc: fix a mistake in README.md (Alexey Orlenko) #278
  • test: fix a typo (Dmytro Nechai) #276
  • bench: add simple benchmark (Dmytro Nechai) #253
  • lib: emit events about connection messages (Denys Otrishko) #252 [semver-minor]
  • lint: use handle-callback-err rule (Alexey Orlenko) #279
  • lib: implement API versioning (Denys Otrishko) #231 [semver-minor]
  • lib: add handling of EAGAIN error on connection (Mykola Bilochub) #281
  • lib: fix server's connect event (Mykola Bilochub) #284
  • lib: disable update of messageId on callback send (Mykola Bilochub) #285
  • test: add transport tests (Dmytro Nechai) #273
  • lib: refactor server's getClients method (Denys Otrishko) #288
  • lib: allow to set event handlers in application (Denys Otrishko) #286 [semver-minor]
  • lib: allow to broadcast events from server (Denys Otrishko) #287 [semver-minor]
  • server: fix handshake timeout logic (Alexey Orlenko) #290
  • connection: refactor heartbeatCallback to a lambda (Alexey Orlenko) #291
  • lib: fix multiple calls of callback in connect (Mykola Bilochub) #293
  • doc: start working on new documentation (Alexey Orlenko) #277
  • test: rewrite ws, wss and W3C ws tests (Dmytro Nechai) #295
  • test: don't use tap's todo test annotation (Dmytro Nechai) #299
  • test: fix serialization todo test case (Dmytro Nechai) #299
  • deps: update dependencies (Alexey Orlenko) #297
  • bench: add distributed benchmark (Dmytro Nechai) #292
  • doc: fix linter errors in markdown files (Alexey Orlenko) #301
  • lint: revive markdown linting (Alexey Orlenko) #301
  • lint,deps: move ESLint config to separate package (Alexey Orlenko) #302
  • lib: refactor remoteProxy using classes (Dmytro Nechai) #269
  • doc: add connection API documentation (Dmytro Nechai) #300
  • lib: remove unnecessary spread operator (Dmytro Nechai) #304
  • deps: update dependencies (Dmytro Nechai) #305
  • test: update Travis config to use the current Node (Alexey Orlenko) #307
  • connection: make callback method private (Alexey Orlenko) #306 [semver-major]
  • server: add a way to update API (Dmytro Nechai) #309
  • application: make 1.0.0 the default version (Dmytro Nechai) #310
  • server: add a way for updating API on connections (Dmytro Nechai) #310
  • lib: implement sessions (Mykola Bilochub) #289 [semver-major]
  • test: add test for resending on connection drop (Dmytro Nechai) #289 [semver-major]
  • lib: fix connection restore (Dmytro Nechai) #289 [semver-major]
  • connection: use ping-pong instead of heartbeat (Dmytro Nechai) #303 [semver-major]
  • deps: update dependencies (Alexey Orlenko) #308

belochub and others added 30 commits January 22, 2018 17:37
* Split `jsrs-impl.cc` into separate modules.
* Make some refactoring.
* Rename the native addon to `jstp` since there already is a function
  that is not a part of JSRS.
* Fix `binding.gyp`: make `cflags` not ignored on macOS (as it appeared
  they used to be) and do not use `-O3` in Debug configuration.
* Use a macro to throw V8 exceptions to avoid boilerplate code.

PR-URL: #36
* Use `cflags_cc` instead of `cflags`.

* By default `node-gyp` uses `-std=gnu++0x`. This commit modifies
  `cflags_cc` to use `-std=c++11`.

PR-URL: #37
* Handle the situation when a compiler cannot be spawned and `exit`
  event is not fired.

* Make `0` a named constant.

PR-URL: #40
Get rid of nested try-catch statements. Decouple `safeRequire` function
that can be used later.

PR-URL: #41
This commit documents the pre-1.0 versioning policy as a Markdown file.

Refs: #38
PR-URL: #42
PR-URL: #45

Fix incorrect repo name in implementations table that can be found in
`README.md` and `doc/index.md`.
s/Sessision/Session

PR-URL: #51
s/Successfull/Successful

PR-URL: #55
For some public methods of Connection that perform network actions
callbacks are optional. This commit fixes the behavior of default
actions when a callback function is not passed so that (1) the system
logic is always run and (2) a Connection doesn't complain about
callback packets for unknown source packets.

PR-URL: #52
* Introduce the concept of authentication strategies.
* Implement `login` and `anonymous` strategies.
* Make handshake packets include the strategy as an action field.
* Update tests.
* Update docs.

Refs: #35 (comment)
PR-URL: #54
Fix compilation error caused by missing `<cstddef>` header
needed for `std::size_t` type.

PR-URL: #64
* Eliminate `jstp::parser::internal::PrepareString` function thus
  avoiding extra memory copying.
* Fix deleting comment blocks located inside of strings.
* Fix key parsing not throwing error when it included spaces
  but was not enclosed in quotes.

Fixes: #60
PR-URL: #61
* Eliminate unnecessary assignments.
* Encode control characters in place to avoid copying and memory
  allocations.
* Fix possible memory leak.

PR-URL: #66
Remove special case for '\0' in control character parsing.

PR-URL: #68
In order to communicate with developers of alternative implementations
and be reasonable about compatibility, we need to assign versions to
the protocol too. This commit documents the protocol versioning policy.

PR-URL: #56
If one tried to print the result of `require('metarhia-jstp')` in
general or the `Connection` class itself to console, it resulted in
invocation of internal logic of the `Connection` and crashing with
an exception.

A similar issue had been fixed in
f7c393b and
76e4323 but was introduced again in
4a7941a.

PR-URL: #72
This commit updates webpack to the next major version.

* Update the `devDependency` field in `package.json`.
* Use the new loaders config syntax.
* Drop obsolete plugins.
* Remove the options that are now enabled by default.
* Together with the previous change, remove the options that have been
  enabled by default in webpack 1.x too.

PR-URL: #73
`node-gyp rebuild` used to be invoked before each `npm test`. It slowed
down tests and forced CI to recompile the sources twice before doing
anything. Now `node-gyp build` is run before tests if the `build`
directory is present (otherwise it still runs `node-gyp rebuild` so
that you can do `rm -r build && npm test` if you want to).

Changes to npm scripts:

  * `npm run build-node` now runs `node-gyp build` instead of
    `node-gyp rebuild`.
  * New script `npm run rebuild-node` forces `node-gyp rebuild`.

PR-URL: #74
Travis CI and bitHound badges in `README.md` are now included directly.
NPM downloads stats badges are left with <shields.io> since there are no
official badges from NPM itself and these were generated by
<shields.io>, not included from an external service. Yet their style is
changed to match the first two ones.  NPM version badge is now included
from <badge.fury.io>.  Badges in `doc/index.md` are now synchronized
with badges in `README.md` since they weren't updated last time when
they were changed in `README.md`.

Refs: metarhia/Metarhia#3
PR-URL: #71
This tool automates the release process we currently have with one neat
addition: now we'll have changelogs too, which the tool automatically
generates.

It doesn't cover the whole release process, only the most chore parts
of it: selecting the right commits and generating a changelog for them.

PR-URL: #77
This commit fixes a critical issue that allowed to crash the server
with an unhandled error event sending an invalid packet that causes
parser error before a handshake.

Fixes: #76
PR-URL: #78
nechaido and others added 11 commits January 22, 2018 17:39
PR-URL: #305
Reviewed-By: Alexey Orlenko <eaglexrlnk@gmail.com>
Reviewed-By: Mykola Bilochub <nbelochub@gmail.com>
Remove end-of-life Node.js 7 and add the current Node.js 9.

PR-URL: #307
Reviewed-By: Mykola Bilochub <nbelochub@gmail.com>
Reviewed-By: Dmytro Nechai <nechaido@gmail.com>
There's no reason to call it directly outside of the connection's
internal machinery except to break things.

PR-URL: #306
Reviewed-By: Mykola Bilochub <nbelochub@gmail.com>
Reviewed-By: Dmytro Nechai <nechaido@gmail.com>
PR-URL:#309
Reviewed-By: Alexey Orlenko <eaglexrlnk@gmail.com>
Reviewed-By: Mykola Bilochub <nbelochub@gmail.com>
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
PR-URL: #310
Reviewed-By: Mykola Bilochub <nbelochub@gmail.com>
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
PR-URL: #310
Reviewed-By: Mykola Bilochub <nbelochub@gmail.com>
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
PR-URL: #289
Reviewed-By: Dmytro Nechai <nechaido@gmail.com>
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
PR-URL: #289
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
Reviewed-By: Mykola Bilochub <nbelochub@gmail.com>
PR-URL: #289
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
Reviewed-By: Mykola Bilochub <nbelochub@gmail.com>
* Send Ping-Pong instead of Heartbeat messages.
* Use setInterval() instead of timers.enroll().
* Rewrite tests.

Fixes: #217
PR-URL: #303
Reviewed-By: Alexey Orlenko <eaglexrlnk@gmail.com>
Reviewed-By: Mykola Bilochub <nbelochub@gmail.com>
PR-URL: #308
Reviewed-By: Mykola Bilochub <nbelochub@gmail.com>
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
Reviewed-By: Dmytro Nechai <nechaido@gmail.com>
@belochub belochub added this to the 1.0.0 milestone Jan 22, 2018
@belochub belochub self-assigned this Jan 22, 2018
@aqrln
Copy link
Member

aqrln commented Jan 22, 2018

#231, #286 and #287 should have been labeled semver-minor (now they are).

Some patch commits to be considered being notable changes: #44, #61, #75, #158, #201 and #220.

@belochub
Copy link
Member Author

@aqrln, I've updated changelog and PR, PTAL.

Copy link
Member

@tshemsedinov tshemsedinov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh 🎆 🎉 🎂

Copy link
Member

@lundibundi lundibundi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎉

This is a new and shiny first major release for `metarhia-jstp`.
Changes include API refactoring and improvements, implementations of
CLI, sessions, and application versions, native addon build optimizations,
lots of bug fixes, test coverage increase, and other, less notable changes.

This release also denotes the bump of the protocol version to v1.0.
The only difference from the previous version of the protocol is that
"old" heartbeat messages (`{}`) are now deprecated and `ping`/`pong`
messages must be used for this purpose instead.

Notable changes:

 * src,build: improve the native module subsystem (Alexey Orlenko)
 * build: compile in ISO C++11 mode (Alexey Orlenko)
 * build: improve error handling (Alexey Orlenko)
 * lib: refactor record-serialization.js (Alexey Orlenko)
 * parser: fix a possible memory leak (Alexey Orlenko)
 * protocol: change the format of handshake packets (Alexey Orlenko)
 * parser: make parser single-pass (Mykola Bilochub)
 * parser: remove special case for '\0' literal (Mykola Bilochub)
 * parser: fix bug causing node to crash (Mykola Bilochub)
 * client: drop redundant callback argument (Alexey Orlenko)
 * client: handle errors in connectAndInspect (Alexey Orlenko)
 * socket,ws: use socket.destroy() properly (Alexey Orlenko)
 * cli: add basic implementation (Mykola Bilochub)
 * connection: fix error handling in optional cbs (Alexey Orlenko)
 * test: add JSON5 specs test suite (Alexey Orlenko)
 * lib: change event signature (Denys Otrishko)
 * lib: add address method to Server (Denys Otrishko)
 * parser: implement NaN and Infinity parsing (Mykola Bilochub)
 * parser: improve string parsing performance (Mykola Bilochub)
 * lib: optimize connection events (Denys Otrishko)
 * lib: refactor server and client API (Denys Otrishko)
 * lib,src: rename term packet usages to message (Denys Otrishko)
 * lib: emit events about connection messages (Denys Otrishko)
 * lib: implement API versioning (Denys Otrishko)
 * lib: allow to set event handlers in application (Denys Otrishko)
 * lib: allow to broadcast events from server (Denys Otrishko)
 * connection: make callback method private (Alexey Orlenko)
 * lib: implement sessions (Mykola Bilochub)
 * connection: use ping-pong instead of heartbeat (Dmytro Nechai)

PR-URL: #311
Reviewed-By: Dmytro Nechai <nechaido@gmail.com>
Reviewed-By: Alexey Orlenko <eaglexrlnk@gmail.com>
Reviewed-By: Timur Shemsedinov <timur.shemsedinov@gmail.com>
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
@belochub
Copy link
Member Author

Previous CI build has already completed successfully, I've just updated the commit message, so there is no need to wait for this to build, I'll just go ahead and merge this PR.

@belochub belochub merged commit 3f40986 into v1.x Jan 24, 2018
@belochub belochub deleted the v1.0.0-proposal branch January 24, 2018 11:44
belochub added a commit that referenced this pull request Jan 26, 2018
This is a new and shiny first major release for `metarhia-jstp`.
Changes include API refactoring and improvements, implementations of
CLI, sessions, and application versions, native addon build optimizations,
lots of bug fixes, test coverage increase, and other, less notable changes.

This release also denotes the bump of the protocol version to v1.0.
The only difference from the previous version of the protocol is that
"old" heartbeat messages (`{}`) are now deprecated and `ping`/`pong`
messages must be used for this purpose instead.

Notable changes:

 * src,build: improve the native module subsystem (Alexey Orlenko)
 * build: compile in ISO C++11 mode (Alexey Orlenko)
 * build: improve error handling (Alexey Orlenko)
 * lib: refactor record-serialization.js (Alexey Orlenko)
 * parser: fix a possible memory leak (Alexey Orlenko)
 * protocol: change the format of handshake packets (Alexey Orlenko)
 * parser: make parser single-pass (Mykola Bilochub)
 * parser: remove special case for '\0' literal (Mykola Bilochub)
 * parser: fix bug causing node to crash (Mykola Bilochub)
 * client: drop redundant callback argument (Alexey Orlenko)
 * client: handle errors in connectAndInspect (Alexey Orlenko)
 * socket,ws: use socket.destroy() properly (Alexey Orlenko)
 * cli: add basic implementation (Mykola Bilochub)
 * connection: fix error handling in optional cbs (Alexey Orlenko)
 * test: add JSON5 specs test suite (Alexey Orlenko)
 * lib: change event signature (Denys Otrishko)
 * lib: add address method to Server (Denys Otrishko)
 * parser: implement NaN and Infinity parsing (Mykola Bilochub)
 * parser: improve string parsing performance (Mykola Bilochub)
 * lib: optimize connection events (Denys Otrishko)
 * lib: refactor server and client API (Denys Otrishko)
 * lib,src: rename term packet usages to message (Denys Otrishko)
 * lib: emit events about connection messages (Denys Otrishko)
 * lib: implement API versioning (Denys Otrishko)
 * lib: allow to set event handlers in application (Denys Otrishko)
 * lib: allow to broadcast events from server (Denys Otrishko)
 * connection: make callback method private (Alexey Orlenko)
 * lib: implement sessions (Mykola Bilochub)
 * connection: use ping-pong instead of heartbeat (Dmytro Nechai)

PR-URL: #311
Reviewed-By: Dmytro Nechai <nechaido@gmail.com>
Reviewed-By: Alexey Orlenko <eaglexrlnk@gmail.com>
Reviewed-By: Timur Shemsedinov <timur.shemsedinov@gmail.com>
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants