Skip to content

Releases: jonathanhliu21/COM-Server

Release 0.2b0

24 Feb 06:19
471b4b0
Compare
Choose a tag to compare
Release 0.2b0 Pre-release
Pre-release

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__ for Connection
  • Added new ConnectionRoutes class for adding resources which gives users more flexibility over their Flask app object than the old RestApiHandler (check docs for more details), addressing #104
  • Added start_app, start_conns, add_resources, and disconnect_conns as helper functions to ConnectionRoutes, which allow it to start the connections and run the server.
  • ConnectionRoutes explicitly responds with 500 Internal Server Error rather than relying on exceptions from the Connection 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 of docopt and serves V1 API
  • Deleted CLI docs because help option is now better
  • Updated all Getting Started and homepages to use ConnectionRoutes

Release 0.1.4

02 Jan 18:48
cc9c715
Compare
Choose a tag to compare

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

31 Dec 22:52
Compare
Choose a tag to compare

Previous version: 0.1.2

Changes from previous version

  • Fixed broken links, addressing #92 and #93

Release 0.1.2

31 Dec 21:30
Compare
Choose a tag to compare

Previous version: 0.1.1

IMPORTANT: BREAKING changes from previous version:

  • Added versioning in built-in API, addressing #90

Changes from previous version:

  • Fixed return type annotation in api_server.py, addressing #88
  • Fixed dependency list in setup.py

Release 0.1.1

25 Dec 19:10
f8e2ae2
Compare
Choose a tag to compare

Previous version: 0.1

Changes from previous version:

  • Added q-sz option indicating the maximum receive queue size, addressing #81
  • Any endpoint will now respond with 503 Service Unavailable if another endpoint is in use by another process at the time the request is made, addressing #80

Release 0.1

23 Dec 20:53
f8ea59b
Compare
Choose a tag to compare

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() and Connection.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

21 Dec 18:42
Compare
Choose a tag to compare
0.1 Beta Release 1 Pre-release
Pre-release

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 the Connection object, addressing #60
  • Added option to remove 0.01 second delay at end of IO thread, addressing #68
  • exception in BaseConnection and Connection 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

17 Dec 20:52
Compare
Choose a tag to compare

Final release for version 0.0.x.

0.1 Beta Release 0

17 Dec 21:32
621fc2d
Compare
Choose a tag to compare
0.1 Beta Release 0 Pre-release
Pre-release

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, use self.conn in the methods.

Changes from previous version:

  • Added the SendQueue and ReceiveQueue 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 the SendQueue
  • Added constants for the common baud rates:
    • NORMAL_BAUD_RATE: 9600 bits/sec
    • FAST_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

26 Nov 05:24
Compare
Choose a tag to compare

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.