Skip to content

Latest commit

 

History

History
285 lines (215 loc) · 30.1 KB

CHANGES.md

File metadata and controls

285 lines (215 loc) · 30.1 KB

Microdot change log

Release 2.0.7 - 2024-11-10

  • Accept responses with just a status code #263 (commit #1 commit #2)
  • Fixed compressed file content-type assignment #251 (commit) (thanks Lukas Kremla!)
  • Better documentation for start_server#252 (commit)
  • Fix URLs in documentation #253 (commit) (thanks Stanislav Garanzha!)

Release 2.0.6 - 2024-06-18

  • Add event ID to the SSE implementation #213 (commit) (thanks Hamsanger!)
  • Configurable session cookie options #242 (commit)
  • Improved cookie support in the test client (commit)
  • Cookie path support in session extension and test client (commit)
  • Refactor Session class to make it more reusable (commit)
  • Use @functools.wraps on decorated functions (commit)
  • Removed outdated import from documentation #216 (commit) (thanks Carlo Colombo!)
  • Add roadmap details to readme (commit)

Release 2.0.5 - 2024-03-09

  • Correct handling of 0 as an integer argument (regression from #207) #212 (commit)

Release 2.0.4 - 2024-02-20

  • Do not use regexes for parsing simple URLs #207 (commit #1 commit #2)
  • Added documentation on using alternative uTemplate loaders (commit)
  • Added CircuitPython builds (commit)

Release 2.0.3 - 2024-01-07

  • Add a limit to WebSocket message size #193 (commit)
  • Pass keyword arguments to thread executor in the correct way #195 (commit)
  • Update uasyncio library used in tests to include new TLS support (commit)
  • Documentation improvements (commit)

Release 2.0.2 - 2023-12-28

  • Support binary data in the SSE extension (commit)
  • Upgrade micropython tests to use v1.22 + initial CircuitPython testing work (commit)
  • Improvements to migration guide (commit)
  • Remove spurious async in documentation example #187 (commit) (thanks Tak Tran!)

Release 2.0.1 - 2023-12-23

  • Addressed some inadvertent mistakes in the template extensions (commit)

Release 2.0.0 - 2023-12-22

  • Major redesign #186 (commit)
    • Code reorganization as a microdot package
    • Asyncio is now the core implementation
    • New support for Server-Sent Events (SSE)
    • Several extensions redesigned
    • Support for "partitioned" cookies
    • Cross-compiling and freezing guidance
    • A Migration Guide to help transition to version 2 from older releases

Release 1.3.4 - 2023-11-08

  • Handle change in wait_closed() behavior in Python 3.12 #177 (commit)
  • Added missing request argument in some documentation examples #163 (commit)
  • Fix minor documentation typos #161 (commit) (thanks Andy Piper!)

Release 1.3.3 - 2023-07-16

  • Handle query string arguments without value #149 (commit)
  • Support empty responses with ASGI adapter (commit)
  • Added CORS extension to Python package (commit)
  • Document access to WSGI and ASGI attributes #153 (commit)
  • Upgrade micropython tests to use v1.20 (commit)

Release 1.3.2 - 2023-06-13

  • In ASGI, return headers as strings and not binary #144 (commit)
  • Incorrect import in static_async.py example (commit)

Release 1.3.1 - 2023-05-21

  • Support negative numbers for int path components #137 (commit)
  • Use a more conservative default for socket timeout #130 (commit)
  • More robust check for socket timeout error code #106 (commit)
  • WebSocket error when handling PING packet #129 (commit)
  • Explicitly set UTF-8 encoding for HTML files in examples #132 (commit)

Release 1.3.0 - 2023-04-08

  • Cross-Origin Resource Sharing (CORS) extension #45 (commit)
  • Respond to HEAD and OPTIONS requests (commit)
  • Tolerate slightly invalid formats in query strings #126 (commit)
  • Support compressed files in send_file() #93 (commit)
  • Add max_age argument to send_file() (commit)
  • Add update() method to NoCaseDict class (commit)
  • Set exit code to 1 for failed MicroPython test runs (commit)

Release 1.2.4 - 2023-03-03

  • One more attempt to correct build issues (commit)

Release 1.2.3 - 2023-03-03

  • Corrected a problem with previous build.

Release 1.2.2 - 2023-03-03

  • Add a socket read timeout to abort incomplete requests #99 (commit)
  • More robust timeout handling #106 (commit)
  • Add @after_error_handler decorator #97 (commit)
  • Return headers as lowercase byte sequences as required by ASGI (commit)
  • Async example of static file serving (commit)
  • Fixing broken links to examples in documentation #101 (commit) (thanks Eric Welch!)
  • Add scrollbar to documentation's left sidebar (commit)
  • Documentation typo #90 (commit) (thanks William Wheeler!)
  • Add CPU timing to benchmark (commit)
  • Upgrade uasyncio release used in tests (commit)
  • Update unittest library for MicroPython (commit)
  • New build of micropython for unit tests (commit)
  • Remove 3.6, add 3.11 to builds (commit)

Release 1.2.1 - 2022-12-06

  • Error handling invokes parent exceptions #74 (commit) (thanks Diego Pomares!)
  • Addressed error when deleting a user session in async app #86 (commit)
  • Add asyncio file upload example (commit)
  • New Jinja and uTemplate examples with Bootstrap (commit)
  • Fix typos in documentation #77 (commit) (thanks Diego Pomares!)
  • Add missing exception argument to error handler example in documentation #73 (commit) (thanks Diego Pomares!)

Release 1.2.0 - 2022-09-25

  • Use a case insensitive dict for headers (commit #1 commit #2)
  • urlencode() helper function (commit #1 commit #2)
  • Added request.url attribute with the complete URL of the request (commit)
  • Do not log HTTPException occurrences (commit)
  • Cache user session for performance (commit)
  • File upload example (commit)
  • Minor documentation styling fixes (commit)

Release 1.1.1 - 2022-09-18

  • Make WebSocket internals consistent between TLS and non-TLS #61 (commit)

Release 1.1.0 - 2022-09-17

  • Websocket support #55 (commit)
  • SSL/TLS support (commit #1 commit #2)
  • Add abort() function (commit)
  • Charset handling in Content-Type headers #60 (commit)
  • Recover from errors writing the response (commit)
  • Reorganized examples into subdirectories (commit)
  • Update tests to use MicroPython 1.19 (commit)
  • Update MicroPython libraries used by tests (commit)
  • Fix links to hello and gpio examples in documentation #53 (commit) (thanks Sterling G. Baird!)

Release 1.0.0 - 2022-08-07

  • User sessions with signed JWTs (commit)
  • Mount sub-applications (commit)
  • Request-specific after_request handlers (commit)
  • Render templates with uTemplate (commit)
  • Render templates with Jinja (commit)
  • Test client (commit)
  • Async test client (commit)
  • Example that serves static files from a directory (commit)
  • Allow routes to only return a body and headers (commit)
  • Improved handling of 400 and 405 errors (commit)
  • Support responses with more than one cookie in WSGI and ASGI extensions (commit)
  • Cookie expiration can also be given as a string (commit)
  • Accept POST request with empty body (commit)
  • Add missing asgi module to package (commit)
  • Memory usage comparison and benchmark (commit)
  • Do not use _thread for multithreading (commit)
  • Getting Started documentation chapter (commit)
  • Concurrency section added to the documentation (commit)
  • Documentation for all official extensions (commit)
  • Remove legacy microdot-asyncio package files (commit)
  • Added MicroPython libraries required by user sessions (commit)
  • Reorganized vendored MicroPython libraries (commit)

Release 0.9.0 - 2022-06-04

  • Streaming responses #44 (commit)
  • Return 204 when view function returns None (commit)
  • ASGI support (CPython only) (commit)
  • WSGI support (CPython only) (commit)
  • Documentation updates (commit)
  • Add Python 3.10 to build (commit)
  • Run linter on examples (commit)

Release 0.8.2 - 2022-04-20

  • Remove debugging print statement #38 (commit) (thanks Mark Blakeney!)

Release 0.8.1 - 2022-03-18

  • Optimizations for request streams and bodies (commit)

Release 0.8.0 - 2022-02-18

  • Support streamed request payloads #26 (commit)
  • Use case insensitive comparisons for HTTP headers #33 (commit) (thanks Steve Li!)
  • More robust logic to read request body #31 (commit)
  • Simplified hello_async.py example (commit)

Release 0.7.2 - 2021-09-28

  • Document a security risk in the send_file function (commit) (thanks Ky Tran!)
  • Validate redirect URLs (commit) (thanks Ky Tran!)
  • Return a 400 error when request object could not be created (commit)

Release 0.7.1 - 2021-09-27

  • Breaking change: Limit the size of each request line to 2KB. A different maximum can be set in Request.max_readline. (commit) (thanks Ky Tran!)

Release 0.7.0 - 2021-09-27

  • Breaking change: Limit the size of the request body to 16KB. A different maximum can be set in Request.max_content_length. (commit)
  • Add documentation for request.client_addr #27 (commit) (thanks Mark Blakeney!)
  • Added documentation for reason argument in the Response object (commit)

Release 0.6.0 - 2021-08-11

  • Better handling of content types in form and json methods #24 (commit)
  • Accept a custom reason phrase for the HTTP response #25 (commit)
  • Make mime type check for form submissions more robust (commit)
  • Copy client headers to avoid write back #23 (commit) (thanks Mark Blakeney!)
  • Work around a bug in uasyncio's create_server() function (commit)
  • More unit tests (commit)
  • Installation instructions (commit)
  • Run tests with pytest (commit)
  • Deprecated the microdot-asyncio package (commit)

Release 0.5.0 - 2021-06-06

Release v0.4.0 - 2021-06-04

  • Add HTTP method-specific route decorators (commit)
  • Server shutdown #19 (commit)
  • Update microypthon binary for tests to 1.15 (commit)

Release v0.3.1 - 2021-02-06

  • Support large downloads in send_file #3 (commit)
  • Move socket import and add simple hello example #12 (commit) (thanks Damien George!)
  • Update python versions to build (commit)
  • Handle Chrome preconnect #8 (commit) (thanks Ricardo Mendonça Ferreira!)
  • Readme update (commit)
  • Switch to GitHub actions for builds (commit)

Release v0.3.0 - 2019-05-05

  • g, before_request and after_request (commit)
  • Threaded mode (commit)
  • Optional asyncio support (commit)
  • Debug mode (commit)
  • Print exceptions (commit)
  • Flake8 (commit)
  • Unit testing framework (commit)
  • More robust header checking in tests (commit)
  • Response unit tests (commit)
  • Request unit tests (commit)
  • More unit tests (commit)
  • Async request and response unit tests (commit)
  • More asyncio unit tests (commit)
  • Improve code structure (commit)
  • URL pattern matching unit tests (commit)
  • Rename microdot_async to microdot_asyncio (commit)

Release 0.2.0 - 2019-04-19

  • Error handlers (commit)
  • Fleshed out example GPIO application (commit)
  • More robust parsing of cookie header (commit)

Release 0.1.1 - 2019-04-17

  • Minor fixes for micropython (commit)
  • Initial commit (commit)