Releases: jonathanhliu21/COM-Server
Release 0.2b0
Previous version: 0.1.*
IMPORTANT: BREAKING changes from previous version:
- Deleted
Builtins
because of compatibility issues
Changes from previous version
- Added logging using Python's
logging
module and also added logging to file when disconnects happen, addressing #73 - CLI now runs production server instead of development server by default, and now recommending production server, addressing #97
- Updated
__repr__
forConnection
- Added new
ConnectionRoutes
class for adding resources which gives users more flexibility over their Flask app object than the oldRestApiHandler
(check docs for more details), addressing #104 - Added
start_app
,start_conns
,add_resources
, anddisconnect_conns
as helper functions toConnectionRoutes
, which allow it to start the connections and run the server. ConnectionRoutes
explicitly responds with500 Internal Server Error
rather than relying on exceptions from theConnection
class when the connection is disconnected.- Added the new V1 API which uses
ConnectionRoutes
and follows RESTful principles more than the V0 API, addressing #86 - Fixed type annotations such that it passes
mypy
static typing checks - Added
tox
, making CI with Github Actions easier - CLI now uses
click
instead ofdocopt
and serves V1 API - Deleted CLI docs because help option is now better
- Updated all
Getting Started
and homepages to useConnectionRoutes
Release 0.1.4
Previous version: 0.1.3
Changes from previous version
- Fixed parts of docs that were written during version 0 that were not true/very confusing and misleading
Release 0.1.3
Release 0.1.2
Release 0.1.1
Release 0.1
Previous version: 0.1b1
Changes from previous version:
- Added some more examples in the examples directory, addressing #74.
- Fixed #78 by adding thread lock to binary search method for checking availability, and also a lock to the
Connection.get_all_rcv()
andConnection.get_all_rcv_str()
methods to deep copy the receive queue instead of directly returning the receive queue. - Added more verbose output to the disconnect handler, including that port that it reconnected to.
0.1 Beta Release 1
Previous version: 0.1b0
IMPORTANT: BREAKING changes from previous version:
- Updated CLI - see CLI docs to view how the CLI now works. Previous commands may not work.
- Updated
reconnect()
method; reconnects using ports provided in__init__()
method rather than providing a port.
Changes from previous version:
- Fixed #63 by making 404 handling default behavior
- Made IO thread in
BaseConnection
abstract - Added new endpoint
/connection_state
, getting some properties of theConnection
object, addressing #60 - Added option to remove 0.01 second delay at end of IO thread, addressing #68
exception
inBaseConnection
andConnection
objects is now DEPRECATED- Added disconnect handling in server (reconnects automatically, responds with
500
when disconnected) - Cleaned up typing in source code
Release 0.0.7
Final release for version 0.0.x
.
0.1 Beta Release 0
IMPORTANT: BREAKING changes from previous version:
- Changed the way the
RestApiHandler.add_endpoint
decorator works:- Instead of having the decorator above a function which returns a nested class, the decorator will instead go directly above the class that extends
ConnectionResource
. To use the connection, useself.conn
in the methods.
- Instead of having the decorator above a function which returns a nested class, the decorator will instead go directly above the class that extends
Changes from previous version:
- Added the
SendQueue
andReceiveQueue
objects which allow the user to use the send queues and receive queues without accidentally breaking the program- Added tests for these objects
- Added the ability for the user to define a custom IO thread with a connection object, the
ReceiveQueue
, and theSendQueue
- Added constants for the common baud rates:
NORMAL_BAUD_RATE
: 9600 bits/secFAST_BAUD_RATE
: 115200 bits/sec
- Added the ability to initialize with multiple ports, addressing #39
- Added the ability to add cross origin resource sharing to the Flask object in the
RestApiHandler
- Added verbose mode where the program will print arguments received from request to
stdout
- Formatted code using black
- Added more tests that actually test that the data is being sent and received correctly, addressing #34
- Added a changelog to keep track of changes
Release 0.0.6
Documentation fixes from 0.0.5:
- Indicated that JSON communication with endpoints works with escape characters.
Note that I will not be adding releases for documentation fixes from now on, so it is better to look at the readthedocs page instead of downloading the documentation for this release and reading it from there, since the documentation in the release may be out of date.
This package has been tested on:
- Mac OS Big Sur
- Mac OS Catalina
- Ubuntu 20.04
- Raspberry Pi OS 10
- Windows 10
with an Arduino UNO, an Arduino Nano, and an Arduino Nano 33 BLE Sense.
Note that as this is the first official release, there still may be bugs and issues. See how to contribute pull requests and issues here.
If there are any bugs or issues in the code or documentation or just feedback/questions in general, please submit an issue here.
I am open to PRs that test on other operating systems and other boards other than Arduino UNOs and Nanos, such as the Arduino Mega, Teensy boards, and others.