-
Notifications
You must be signed in to change notification settings - Fork 10
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
v1.0.0 proposal #311
Conversation
* 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
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 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
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>
PR-URL: #308 Reviewed-By: Mykola Bilochub <nbelochub@gmail.com> Reviewed-By: Denys Otrishko <shishugi@gmail.com> Reviewed-By: Dmytro Nechai <nechaido@gmail.com>
ae9e36e
to
ef47cfa
Compare
@aqrln, I've updated changelog and PR, PTAL. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh 🎆 🎉 🎂
There was a problem hiding this 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>
ef47cfa
to
3f40986
Compare
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. |
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>
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 andping
/pong
messages must be used for this purpose instead.
Notable changes:
All changes:
switch
statements (Mykola Bilochub) #62_split
behaviour (Mykola Bilochub) #107 [semver-minor]safeRequire()
return tuple (Dmytro Nechai) #226tap
(Dmytro Nechai) #227readline.Interface
(Mykola Bilochub) #259connect
event (Mykola Bilochub) #2841.0.0
the default version (Dmytro Nechai) #310