Skip to content

Commit 88b701c

Browse files
committed
Bump to 5.0.0 🎉
1 parent af82d40 commit 88b701c

File tree

6 files changed

+89
-81
lines changed

6 files changed

+89
-81
lines changed

.docs/README.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ We're not against firmware but we're better than it.
3232

3333
You're reading the README for Node-Serialport's master branch. You probably want to see the README for our most recent release. See our [changelog](changelog.md) for what's new, and our [upgrade guide](UPGRADE_GUIDE.md) for a walk-through on differences between major versions.
3434

35-
- [`[email protected]-beta9` docs](https://github.com/EmergingTechnologyAdvisors/node-serialport/blob/5.0.0-beta9/README.md) the latest `5.x` release.
35+
- [`[email protected]` docs](https://github.com/EmergingTechnologyAdvisors/node-serialport/blob/5.0.0/README.md) the latest `5.x` release. 🎉
3636
- [`[email protected]` docs](https://github.com/EmergingTechnologyAdvisors/node-serialport/blob/4.0.7/README.md) the latest `4.x` release.
3737
- [`[email protected]` docs](https://github.com/EmergingTechnologyAdvisors/node-serialport/blob/3.1.2/README.md) the last `3.x` release.
3838

PUBLISHING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ This can be checked in the .travis.yml file and appveyor.yml file. Within these
2020
9. Kick off the build matrix for either the master or beta branch on [serialport-test-pilot](https://travis-ci.org/j5js/serialport-test-pilot). It will install serialport from npm on a wide range of systems.
2121

2222
Differences for beta release
23-
* Tag like: `git tag 5.0.0-beta6 -a` and include the change log in the tag's annotation.
23+
* Tag like: `git tag 6.0.0-beta6 -a` and include the change log in the tag's annotation.
2424
* Publish with `npm publish --tag beta`
2525

2626
## Config Travis, AppVeyor and Github to generate all of the binaries.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ We're not against firmware but we're better than it.
4141

4242
You're reading the README for Node-Serialport's master branch. You probably want to see the README for our most recent release. See our [changelog](changelog.md) for what's new, and our [upgrade guide](UPGRADE_GUIDE.md) for a walk-through on differences between major versions.
4343

44-
- [`[email protected]-beta9` docs](https://github.com/EmergingTechnologyAdvisors/node-serialport/blob/5.0.0-beta9/README.md) the latest `5.x` release.
44+
- [`[email protected]` docs](https://github.com/EmergingTechnologyAdvisors/node-serialport/blob/5.0.0/README.md) the latest `5.x` release. 🎉
4545
- [`[email protected]` docs](https://github.com/EmergingTechnologyAdvisors/node-serialport/blob/4.0.7/README.md) the latest `4.x` release.
4646
- [`[email protected]` docs](https://github.com/EmergingTechnologyAdvisors/node-serialport/blob/3.1.2/README.md) the last `3.x` release.
4747

UPGRADE_GUIDE.md

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,38 @@
11
Upgrading from 4.x to 5.x
22
-------------
3-
5.x is a major rewrite to make node serialport a NodeJS stream. While the api surface is similar there have been a number of changes to ensure more consistent error handling and operation of a serial port.
3+
Node SerialPort 5.0.0 is a major rewrite that improves stability, compatibility and performance. While the api surface is similar there have been a number of changes to ensure consistent error handling and operation of a serial port.
44

5+
### Platforms
6+
- Drop NodeJS 0.10, 0.12, 5, and 7 support
7+
- Add node 8 support (we now only support LTS node versions)
8+
9+
### The SerialPort Object
10+
- Node SerialPoprt is now a [duplex stream](https://nodejs.org/api/stream.html) and can be paused and resumed on all platforms.
11+
- `isOpen` is now a property
12+
- `SerialPort.list` now has more consistent output across all platforms. This means the data in the objects may be different than 4x. Notably the path on OSX now returns the `tty` instead of the `cu` path and the `0x` has been removed from values on linux and osx.
13+
- `port.path` is now read only
14+
- removed lowercase options all options are now only accepted camelCase
15+
- Changed parsers to be transform streams. There are replacements for the built in parsers but custom parsers will have to be modified.
16+
17+
### Open options
18+
- `bufferSize` is now `highWaterMark` and defaults to 64k.
19+
- `parser` is removed in favor of using the new transform streams parsers
20+
21+
### Opening and closing
522
- Removed the `disconnect` event. The `close` event now fires with a disconnect error object in the event of a disconnection.
6-
- `drain` now waits for the current javascript write to complete before calling the system level drain.
723
- `port.isOpen` is now a property not a function
24+
25+
### Reading and writing.
26+
- `port.on('data')` still works but `port.read()` and the `readable` event is now the preferred way to get data.
27+
- `port.read()` is now the best way to read data
28+
- `port.drain()` now waits for the current javascript write to complete before calling the system level drain.
29+
30+
### Other
31+
- We now conform to NodeJS error message formats. Most messages have changed.
32+
- The event loop is no longer held open if there are no active reads or writes
833
- `SerialPort.list` has slightly different output with more information, decoded strings and `0x` prefixes removed from some properties.
934
- `SerialPort.list` now returns a promise if no call back is provided
1035

11-
The exact changes will go here see #1046
12-
1336
Upgrading from 3.x to 4.x
1437
-------------
1538
4.x brings a lot of changes please see the [changelog](./changelog.md) for the full list of changes. We'll review the api and behavior changes here.

changelog.md

Lines changed: 57 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,78 @@
1-
Version 5.0.0-beta9
1+
Version 5.0.0 🎉
22
-------------
3-
This closes all known bugs!
3+
Nearly [a year in the making](https://github.com/EmergingTechnologyAdvisors/node-serialport/compare/4.0.7...5.0.0-beta9) Node SerialPort 5.0.0 is a major rewrite that improves stability, compatibility and performance. The api surface is similar to version 4 there have been a number of changes to ensure consistent error handling and operation of a serial port. Notably we are now a [`Stream`](https://nodejs.org/api/stream.html)! We can also introduce a bindings layer. A small low level api to provide access to underlying hardware. External bindings written in other languages or targeting other platforms can now be used.
44

5-
- [all] `SerialPort.list` now has more consistent output across all platforms.
6-
- [all] Add promise support to serialport-repl
7-
- [all] Add write recording capabilities to the mock bindings
8-
- [all] calls to `.drain` now queue behind port open and in progress writes reported by and with lots of testing help from @tuna-f1sh
9-
- [all] Change the default high water mark to 64k to match `fs.ReadStream`
10-
- [all] fix(package): update bindings to version 1.3.0
11-
- [all] SerialPort can now be compressed with `uglify-es` thanks to @rwaldron
12-
- [docs] fixed a typo thanks to @amilajack
13-
- [linux] `SerialPort.list` is now faster and less resource intensive thanks to @akaJes!
14-
- [osx] `SerialPort.list` now returns the `tty` instead of the `cu` thanks to @@kishinmanglani
15-
- [unix] fix a bug when poller errors would be unhandled thanks to @thiago-sylvain for reporting
5+
Some major cpu performance gains on unix platforms can be found and we're less buggy and better performing on Windows too.
166

17-
Version 5.0.0-beta8
18-
-------------
19-
If we're lucky this will be the last of the betas. The remaining potentially blocking issues have to do with improving `SerialPort.list` which would change their output. The two issues are #1220 and #1084. I need help on those two issues, if I'm not able to close them soon, I'll release anyway, and they'll be fixed for 6x. This release is large enough. -@reconbot
7+
With this release we are now only supporting LTS nodejs platforms and we are dropping NodeJS 0.10, 0.12, 5 and 7 support. We loved directly supporting so many platforms but it was getting in the way making a solid library.
208

21-
- [linux] Add the `ttyAP` subsystem to serialport list thanks to @fly19890211 for reporting it
22-
- [all] Have drain wait for pending JS write operations before calling system drain thanks to @digitalhack for reporting it
23-
- [unix] Move setting up the baudrate to the end of the open() to better support custom baudrates
9+
See our [upgrade guide](./UPGRADE_GUIDE.md) for detail on what to change to upgrade your app to use `[email protected]`. It's not much!
2410

25-
Version 5.0.0-beta7
26-
-------------
27-
- [all] Removed the `disconnect` event. The `close` event now fires with a disconnect error object in the event of a disconnection.
28-
- [all] Exposed mocking serialport on `serialport/test`
11+
Thank you to the 25 people who committed code and documentation and every person who submitted bug reports and tested changes!
2912

30-
Version 5.0.0-beta6
31-
-------------
32-
- [all] The `disconnect` event now more reliable. Will be emitted as an error if there are no listeners.
33-
- [all] `SerialPort.list` now returns a usable promise if a callback is not provided @MikeKovarik
13+
Notable Changes
14+
- [all] Streams rewrite, node serialport is now a node stream! 🎉
15+
- [all] Drop NodeJS 0.10, 0.12, 5, and 7 support
16+
- [all] Add node 8 support (we now only support LTS node versions)
17+
- [all] Introduce a binding layer to provide a common low level interface to work with different platforms.
3418
- [unix] New read/write subsystem. Write CPU dropped from 100% to 0-2%. @reconbot (Thanks to @indutny for getting me unstuck many times!)
35-
36-
Version 5.0.0-beta5
37-
-------------
19+
- [windows] Rewrite reading so it's pausable thanks to @munyirik
20+
- [docs] An overhaul how we document the api leveraging JSDOC
3821
- [docs] An overhaul of the format and language in our docs thanks to @LappleApple
39-
- [all] Remove the c++ write queue
40-
- [all] Add node 8 support and drop node 7 support
41-
42-
Version 5.0.0-beta4
43-
-------------
44-
- [all] add regex stream parser and tests
45-
- [all] upgrade to non deprecated buffer methods
46-
- [docs] Add socketio example
47-
- [windows] Fix unhandled promise rejection when calling read on Windows
4822

49-
Version 5.0.0-beta3
50-
-------------
51-
- [all] Streams rewrite, node serialport is now a node stream! 🎉
52-
- [all] Introduce a binding layer to provide a common low level interface to work with different platforms.
23+
Features
24+
- [all] `isOpen` is now a property #899
25+
- [all] `SerialPort.list` now has more consistent output across all platforms.
26+
- [all] `SerialPort.list` returns a promise if a callback is not provided thanks to @MikeKovarik for bug fixes
27+
- [all] A promise aware `serialport-repl` script for debugging and testing.
5328
- [all] add `#get` to retrieve modem status flags thanks to @jgillick!
29+
- [all] Add a `MockBinding` object for testing serialports in your project. Used internally too!
5430
- [all] Add electron precompiled binaries thanks to @Mike-Dax
31+
- [all] Add regex stream parser and tests @jessicaquynh
32+
- [all] Allow reopening after an open error #910
33+
- [all] calls to `.drain` now queue behind port open and in progress writes reported by and with lots of testing help from @tuna-f1sh
34+
- [all] Change parsers to be transform streams #922
35+
- [all] Change the default `highWaterMark` to 64k to match `fs.ReadStream`
5536
- [all] Conform to NodeJS error message formats
56-
- [all] Drop NodeJS 0.10 and 0.12 support
57-
- [all] Fix baud rate parsing in `serialport-terminal` thanks to @radio-miskovice for reporting it!
58-
- [all] Fix memory leak during opening a port thanks to @indutny
37+
- [all] Exposed mocking serialport via `require('serialport/test')`
38+
- [all] Have drain wait for pending JS write operations before calling system drain thanks to @digitalhack for reporting it
39+
- [all] port.path is now read only #898
5940
- [all] Refactor internals to make use of es6 and promises
41+
- [all] Remove lowercase options #898
42+
- [all] Remove the c++ write queue
6043
- [all] Remove unnecessary dependencies and polyfills thanks to @mscdex
6144
- [all] Remove v8 deprecation warnings thanks to @indutny again
45+
- [all] Removed the `disconnect` event. The `close` event now fires with a disconnect error object in the event of a disconnection.
46+
- [all] SerialPort can now be compressed with `uglify-es` thanks to @rwaldron
47+
- [all] update bindings to version 1.3.0
6248
- [all] Upgrade debug and node-pre-gyp
63-
- [all] Upgrade nan to fix compile issues on some platforms thanks to @thom-nic
49+
- [all] Upgrade to non deprecated buffer methods
6450
- [docs] Add more installation notes on sudo, windows 10, electron and node 7
51+
- [docs] Add socketio example @jessicaquynh
52+
- [docs] Electron build docs #965 via @chalkers
6553
- [docs] Mark new features in 5.0.0 with the fact they started in 5.0.0
66-
- [windows] Fix file handle leak during opens when errors occur thanks to @enami
54+
- [docs] Update parser docs to be correct #970 via @jacobq
55+
- [linux] `SerialPort.list` is now faster and less resource intensive thanks to @akaJes!
56+
- [linux] Add the `ttyAP` subsystem to serialport list thanks to @fly19890211 for reporting it
57+
- [osx] `SerialPort.list` now returns the `tty` instead of the `cu` thanks to @kishinmanglani
58+
- [unix] Flush now gives errors and flushes tx and rx #900
59+
- [unix] Move setting up the baudrate to the end of the `open()` to better support custom baudrates
6760
- [windows] Refactoring of `.list` for Windows so it's significantly smaller thanks to @Zensey
68-
- [windows] Rewrite reading so it's pausable thanks to @munyirik
61+
62+
Fixes
63+
- [all] Fix baud rate parsing in `serialport-terminal` thanks to @radio-miskovice for reporting it!
64+
- [all] Fix memory leak during opening a port thanks to @indutny
65+
- [all] fixed a crash when pausing while reading thanks to @bminer and @baffo32 and others to debug and fix this
66+
- [all] Upgrade nan to fix compile issues on some platforms thanks to @thom-nic
67+
- [docs] fixed a typo thanks to @amilajack
68+
- [docs] Spelling fixes via @Awk34
69+
- [unix] fix a bug when poller errors would be unhandled thanks to @thiago-sylvain for reporting
70+
- [windows] Fix file handle leak during opens when errors occur thanks to @enami
71+
- [windows] Fix flush behavior using PurgeComm fixing #962 via @samisaham
72+
- [windows] Fix unhandled promise rejection when calling read on Windows
73+
- [windows] Remove read and write timeouts solving #781 via @giseburt
74+
75+
We also had help testing, debugging, and designing from; @alaq @arve0 @techninja @noopkat @HipsterBrown and more!
6976

7077
Version 4.0.7
7178
-------------
@@ -86,18 +93,6 @@ Version 4.0.4
8693
-------------
8794
- Add precompiled binaries for node 7
8895

89-
Version 5.0.0-beta2
90-
-------------
91-
- [all] fixed a crash when pausing while reading thanks to @bminer and @baffo32 and others to debug and fix this
92-
- [all] ReadLineParser has been renamed to ReadlineParser to match worldwide convention
93-
- [windows] Fix flush behavior using PurgeComm fixing #962 via @samisaham
94-
- [windows] Remove read and write timeouts solving #781 via @giseburt
95-
- [docs] Electron build docs #965 via @chalkers
96-
- [docs] Spelling fixes via @Awk34
97-
- [docs] Update parser docs to be correct #970 via @jacobq
98-
- [notes] buffer-indexof is now completely compliant with latest node 6 buffer.indexOf because it's nice to have and we now use it on older nodes
99-
- [notes] dropped node 5 support, should still work but you shouldn't use it
100-
10196
Version 4.0.3
10297
-------------
10398
- Switch to the lie promise library as it's smaller and mimics nodejs's promise closer
@@ -107,16 +102,6 @@ Version 4.0.2
107102
-------------
108103
- [unix] Fix a bug when we'd crash when pausing during a read
109104

110-
Version 5.0.0-beta1
111-
-------------
112-
- `isOpen` is now a property #899
113-
- Allow reopening after an open error #910
114-
- Change parsers to be transform streams #922
115-
- port.path is now read only #898
116-
- Remove lowercased options #898
117-
- Switch to Lie as a promise library (smaller)
118-
- [unix] Flush now gives errors and flushes tx and rx #900
119-
120105
Version 4.0.1
121106
-------------
122107
- [linux] Do not replace the native Promise when it is available thanks to @zewish for the fix
@@ -395,7 +380,7 @@ Version 0.2.1
395380
- Refactored the parsing code upon data receipt, now allows for dynamic specification of how incoming data is handled.
396381
- Revised creation interface to use named parameters as an object versions positional parameters.
397382

398-
Version: 0.2
383+
Version 0.2.0
399384
------------
400385
- Upgraded to node v. 0.4.X compatibility
401386

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "serialport",
3-
"version": "5.0.0-beta9",
3+
"version": "5.0.0",
44
"description": "Node.js package to access serial ports. Linux, OSX and Windows. Welcome your robotic JavaScript overlords. Better yet, program them!",
55
"author": {
66
"name": "Chris Williams",
@@ -10,7 +10,7 @@
1010
"binary": {
1111
"module_name": "serialport",
1212
"module_path": "build/{configuration}/",
13-
"host": "https://github.com/EmergingTechnologyAdvisors/node-serialport/releases/download/5.0.0-beta9"
13+
"host": "https://github.com/EmergingTechnologyAdvisors/node-serialport/releases/download/5.0.0"
1414
},
1515
"main": "lib",
1616
"repository": {

0 commit comments

Comments
 (0)