Releases: serialport/node-serialport
v6.0.3
v6.0.0
Commits 6.0.0 (2017-10-09)
Features
- open: Throw on incorrect baudrate option (#1347) (a3b8d35)
- parsers: Add cctalk parsers (#1342) (bcb492f)
- test: tone down codecov comments (#1289) (749ffac)
- windows: Add ERROR_INVALID_PARAMETER to supported bindings errors (#1354) (4ff9c67)
Bug Fixes
- docs: Add a note about windows support (76b7191), closes #1299
- docs: add missing parsers to properties list (3faadac)
- docs: correct default highWaterMark to 65536 bytes (e83ec4e)
- docs: Fixed typo in upgrade guide (#1321) (bf251a9)
- linux: The productID should be a number not a description string (#1279) (bf46f68)
- package: update debug to version 3.0.0 (#1292) (4987750)
- tests: fixup for #1279 (#1285) (56074f6)
- windows: Add option to disable RTS (#1277) (5b8d163)
- windows: Asynchronous callbacks for reading and writing (#1328) (69de595), closes #1221
- windows: Parse more types of pnpIds (#1288) (0b554d7), closes #1220
Chores
BREAKING CHANGES
- binaries: We switched to
prebuild
a breaking change because it's substantially changes our install processes. It's also possible the install flags to ensure downloading or building from source has changed slightly. That's not our api per say, but it's enough. - windows: We previously hard coded to have RTS on for windows at all times it now default to off.
v6.0.0-beta3
v6.0.0-beta2
This is a bug fix release that includes one of the best bug fixes we could ask for. @dustmop has rewritten our windows read/write subsystem! This should bring reads and writes down from 100% cpu to 1-2% cpu. Give it a try!
Bug Fixes
- docs: Add a note about windows support 76b7191, closes #1299
- docs: correct default highWaterMark to 65536 bytes e83ec4e
- package: update debug to version 3.0.0 #1292 4987750
- docs: Fixed typo in upgrade guide #1321 bf251a9
- windows: Asynchronous callbacks for reading and writing #1328 69de595, closes #1221
6.0.0-beta1 (2017-08-07)
Bug Fixes
- linux: The productID should be a number not a description string (#1279) (bf46f68)
- tests: fixup for #1279 (#1285) (56074f6)
- windows: Add option to disable RTS (#1277) (5b8d163)
- windows: Parse more types of pnpIds (#1288) (0b554d7), closes #1220
Chores
Features
BREAKING CHANGES
- binaries: I'm considering the switch to
prebuild
a breaking change because it's substantially changes our install processes. It's also possible the install flags to ensure downloading or building from source has changed slightly. That's not our api per say, but it's enough. - windows: We previously hard coded to have RTS on for windows at all times it now default to off.
v5.1.0-beta5: Lets try prebuild
- Build once on each platform - upload to github
v5.0.0 🎉
Nearly a year in the making 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
! We also introduced 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.
Some major cpu performance gains on unix platforms can be found and we're less buggy and better performing on Windows too.
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.
See our upgrade guide for detail on what to change to upgrade your app to use [email protected]
. It's not much!
Thank you to the 25 people who committed code and documentation and every person who submitted bug reports and tested changes!
Notable Changes
- [all] Streams rewrite, node serialport is now a node stream! 🎉
- [all] Drop NodeJS 0.10, 0.12, 5, and 7 support
- [all] Add node 8 support (we now only support LTS node versions)
- [all] Introduce a binding layer to provide a common low level interface to work with different platforms.
- [unix] New read/write subsystem. Write CPU dropped from 100% to 0-2%. @reconbot (Thanks to @indutny for getting me unstuck many times!)
- [windows] Rewrite reading so it's pausable thanks to @munyirik
- [docs] An overhaul how we document the api leveraging JSDOC
- [docs] An overhaul of the format and language in our docs thanks to @LappleApple
Features
- [all]
isOpen
is now a property #899 - [all]
SerialPort.list
now has more consistent output across all platforms. - [all]
SerialPort.list
returns a promise if a callback is not provided thanks to @MikeKovarik for bug fixes - [all] A promise aware
serialport-repl
script for debugging and testing. - [all] add
#get
to retrieve modem status flags thanks to @jgillick! - [all] Add a
MockBinding
object for testing serialports in your project. Used internally too! - [all] Add electron precompiled binaries thanks to @Mike-Dax
- [all] Add regex stream parser and tests @jessicaquynh
- [all] Allow reopening after an open error #910
- [all] calls to
.drain
now queue behind port open and in progress writes reported by and with lots of testing help from @tuna-f1sh - [all] Change parsers to be transform streams #922
- [all] Change the default
highWaterMark
to 64k to matchfs.ReadStream
- [all] Conform to NodeJS error message formats
- [all] Exposed mocking serialport via
require('serialport/test')
- [all] Have drain wait for pending JS write operations before calling system drain thanks to @digitalhack for reporting it
- [all] port.path is now read only #898
- [all] Refactor internals to make use of es6 and promises
- [all] Remove lowercase options #898
- [all] Remove the c++ write queue
- [all] Remove unnecessary dependencies and polyfills thanks to @mscdex
- [all] Remove v8 deprecation warnings thanks to @indutny again
- [all] Removed the
disconnect
event. Theclose
event now fires with a disconnect error object in the event of a disconnection. - [all] SerialPort can now be compressed with
uglify-es
thanks to @rwaldron - [all] update bindings to version 1.3.0
- [all] Upgrade debug and node-pre-gyp
- [all] Upgrade to non deprecated buffer methods
- [docs] Add more installation notes on sudo, windows 10, electron and node 7
- [docs] Add socketio example @jessicaquynh
- [docs] Electron build docs #965 via @chalkers
- [docs] Mark new features in 5.0.0 with the fact they started in 5.0.0
- [docs] Update parser docs to be correct #970 via @jacobq
- [linux]
SerialPort.list
is now faster and less resource intensive thanks to @akaJes! - [linux] Add the
ttyAP
subsystem to serialport list thanks to @fly19890211 for reporting it - [osx]
SerialPort.list
now returns thetty
instead of thecu
thanks to @kishinmanglani - [unix] Flush now gives errors and flushes tx and rx #900
- [unix] Move setting up the baudrate to the end of the
open()
to better support custom baudrates - [windows] Refactoring of
.list
for Windows so it's significantly smaller thanks to @Zensey
Fixes
- [all] Fix baud rate parsing in
serialport-terminal
thanks to @radio-miskovice for reporting it! - [all] Fix memory leak during opening a port thanks to @indutny
- [all] fixed a crash when pausing while reading thanks to @bminer and @baffo32 and others to debug and fix this
- [all] Upgrade nan to fix compile issues on some platforms thanks to @thom-nic
- [docs] fixed a typo thanks to @amilajack
- [docs] Spelling fixes via @Awk34
- [unix] fix a bug when poller errors would be unhandled thanks to @thiago-sylvain for reporting
- [windows] Fix file handle leak during opens when errors occur thanks to @enami
- [windows] Fix flush behavior using PurgeComm fixing #962 via @samisaham
- [windows] Fix unhandled promise rejection when calling read on Windows
- [windows] Remove read and write timeouts solving #781 via @giseburt
We also had help testing, debugging, and designing from; @alaq @arve0 @techninja @noopkat @HipsterBrown and more!
v5.0.0-beta9
Version 5.0.0-beta9 This closes all known bugs! - [all] `SerialPort.list` now has more consistent output across all platforms. - [all] Add promise support to serialport-repl - [all] Add write recording capabilities to the mock bindings - [all] calls to `.drain` now queue behind port open and in progress writes reported by and with lots of testing help from @tuna-f1sh - [all] Change the default high water mark to 64k to match `fs.ReadStream` - [all] fix(package): update bindings to version 1.3.0 - [all] SerialPort can now be compressed with `uglify-es` thanks to @rwaldron - [docs] fixed a typo thanks to @amilajack - [linux] `SerialPort.list` is now faster and less resource intensive thanks to @akaJes! - [osx] `SerialPort.list` now returns the `tty` instead of the `cu` thanks to @@kishinmanglani - [unix] fix a bug when poller errors would be unhandled thanks to @thiago-sylvain for reporting
Version 5.0.0-beta8
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
- [linux] Add the
ttyAP
subsystem to serialport list thanks to @fly19890211 for reporting it - [all] Have drain wait for pending JS write operations before calling system drain thanks to @digitalhack for reporting it
- [unix] Move setting up the baudrate to the end of the open() to better support custom baudrates
v5.0.0-beta7
- [all] Removed the
disconnect
event. Theclose
event now fires with a disconnect error object in the event of a disconnection. - [all] Exposed mocking serialport on
serialport/test