Skip to content

Latest commit

 

History

History
161 lines (149 loc) · 10.5 KB

CHANGES.rst

File metadata and controls

161 lines (149 loc) · 10.5 KB
orphan:

Change Log

  • :release:`3.2.3 <2024-04-04>`
  • :support:`281` Dropped support for Python 2.7, 3.5, 3.6
  • :support:`327` Added support for Python 3.11, 3.12
  • 🐛`-`` namespacing is now done with importlib instead of pkgutil.extend_path()
  • 🐛`-`` the code has been autoformatted and refactored with ruff via pre-commit
  • 🐛`-`` unused parse_body(), dictform(), is_ssl_handshake() and quoted_slash have been removed from circuits.web.utils
  • :release:`3.2.2 <2021-10-19>``
  • :support:`298` Added support for Python 3.10
  • :feature:`132` The initial request containing the session has been added to the websocket dispatcher events in circuits.web.websockets
  • :feature:`96` circuits.tools.graph() has been split into smaller functions (for creating dot, ascii, png separately)
  • 🐛`197` Exceptions during initialization of Poller is now handlded via an error Event
  • 🐛`197` Exceptions during socket.accept() are now re-raised in the main thread
  • 🐛`261` A workaroung for websocket clients has been added, which prevents that the first websocket is not lost
  • 🐛`307` Various format string syntaxes have been relaxed so that they don't cause exceptions on non string input
  • 🐛`-`` typos in docstrings/comments have been fixed
  • 🐛`293` (security) HTML escaping of error responses, 3XX redirects and Powered-by texts has been fixed
  • 🐛`251` (security) A HTTP header injection vulnerability in circuits.web.websockets.client has been fixed
  • 🐛`289` (security) potential XSS attacks via crafted files in directory listing is now prevented via HTML escaping in the circuits.web.dispatchers.static component.
  • 🐛`291` HTTP Connection header values are now correctly evaluated case insensitive in websocket components
  • 🐛`292` HTTP Connection header values are now correctly evaluated case insensitive in web.client components
  • 🐛`-`` Fixed Python 3 compatibility for circuits.web.tools.validate_etag() with ``MD5` hashes
  • 🐛`238` Reverted changes fixed by upstream http-parser library
  • 🐛`285` circuits.web.parsers.http has been upgraded to latest upstream http-parser version
  • 🐛`285` requests with chunked transfer encoding are not dispatched if the message body is not yet received completely
  • 🐛`253` circuits.io.serial: add readline argument to only fire read events for full lines
  • 🐛`252` circuits.io.serial: missing encoding parameter has been added
  • :release:`3.2.1 <2020-10-30>`
  • :support:`-` Added support for Python 3.6, 3.7, 3.8, 3.9-dev
  • :support:`152` Dropped the support for Python 2.6 and 3.x < 3.4
  • 🐛`176` Generator expressions don't raise StopIteration anymore
  • :feature:`-` The exception handling has been improoved
  • :feature:`273` Added a bufsize argument to the __init__ of BaseServer
  • 🐛`270` fix TLS support for websockets (unhandled SSLWantReadError)
  • 🐛`263` Improove error handling during TLS handshake
  • 🐛`269` Fix error handling when TLS handshake fails
  • 🐛`266` Fix python2 str(circuits.core.values.Value())
  • 🐛`264` Improoved robustness of IRC messages
  • 🐛`257` Fix WSGI component for Python 2.7 and Python 3
  • 🐛`254` Fix CRLF injection in IRC protocol
  • :feature:`245` IRC: enhance stripping of colors
  • :feature:`249` Add irc.utils.irc_color_to_ansi()
  • 🐛`241` Adjust circuits.tools.graph() to API change in networkx
  • :feature:`240` Added auto_add to circuits.io.notify
  • :feature:`231` Add support for STOMP protocol
  • 🐛`238` Fix parsing HTTP request without headers
  • 🐛`235` the prefix in the Debugger might be a callable now
  • :feature:`233` circuits.core.values.Value is now __str__ compatible with Python 2
  • :feature:`212` Improves the API for session management and adds expire support
  • :feature:`224` Add new HTTP status code 308 moved permanently (RFC 7538)
  • :feature:`214` Implement STARTTLS for sockets as event
  • :feature:`-` Add support to set additional socket options
  • 🐛`198` Made pushing onto the event queue via fire threadsafe.
  • :feature:`202` Removed EventType metaclass
  • 🐛`-` Fixed manager.join()
  • 🐛`202` Removed the (unused) internal cache from EventType.
  • :feature:`168` Add interface for selecting the websocket subprotocol
  • 🐛`54` Fix a memory leak due to on_done handlers
  • 🐛`-` Fix python3 compatibility when parsing HTTP request body
  • 🐛`-` Fix error handling if error contains traceback instance
  • 🐛`187` Fix parsing and decoding of application/x-www-urlencoded payloads
  • 🐛`185` Fix Denial of Service socket/memory leak for not connected clients
  • 🐛`184` Fix websocket data parsing if content is larger than BUFSIZE
  • 🐛`170` Fix crash from deleting undefined variables
  • 🐛`173` Fix the type difference between _current_thread and _flushing_thread
  • 🐛`123` Fixes bug in the complete event
  • 🐛`165` Fix Host HTTP header parsing when circuits.web.Server is bound to a UNIX Socket
  • :release:`3.2 <2016-06-02>`
  • 🐛`119` Fixed bug in circuits.web.url.parse_url() that caused a display issue with port bindings on ports 80 and 443.
  • :release:`3.1 <2014-11-01>`
  • 🐛`-` Bridge waits for event processing on the other side before proxy handler ends. Now it is possible to collect values from remote handlers in %_success event.
  • 🐛`-` Rename the FallbackErrorHandler to FallbackExceptionHandler and the event it listens to to exception
  • 🐛`-` Fixes optional parameters handling (client / server).
  • 🐛`-` Node: add peer node: return channel name.
  • 🐛`-` Node: add event firewall (client / server).
  • 🐛`-` Node: fixes the event value issue.
  • 🐛`-` Node: fixes event response flood.
  • 🐛`-` Node: Add node examples.
  • 🐛`-` Fixed import of FallBackExceptionHandler
  • 🐛`-` Fixed exception handing in circuits.web
  • 🐛`-` Fixed issue in brige with ommiting all but the first events sent at once
  • 🐛`-` Bridge: Do not propagate no results via bridge
  • 🐛`-` Bridge: Send exceptions via brige before change the exceptions weren't propagated via bridge because traceback object is not pickable, now traceback object is replaced by corresponding traceback list
  • 🐛`113` Fixed bug with forced shutdown of subprocesses in Windows.
  • 🐛`115` Fixed FallbackErrorHandler API Change
  • :release:`3.0.1 <2014-11-01>`
  • :support:`117` Fixed inconsistent top-level examples.
  • :support:`96` Link to ChangeLog from README
  • :release:`3.0 <2014-08-31>`
  • 🐛`111 major` Fixed broken Digest Auth Test for circuits.web
  • :feature:`112` Improved Signal Handling
  • 🐛`109 major` Fixed Event.create() factory and metaclass.
  • :feature:`108` Improved server support for the IRC Protocol.
  • 🐛`107 major` Added __le__ and __ge__ methods to circuits.web.wrappers.HTTPStatus
  • 🐛`106 major` Added __format__ method to circuits.web.wrappers.HTTPStatus.
  • 🐛`104 major` Prevent other websockets sessions from closing.
  • :feature:`103` Added the firing of a disconnect event for the WebSocketsDispatcher.
  • 🐛`102 major` Fixed minor bug with WebSocketsDispatcher causing superflusous connect() events from being fired.
  • 🐛`100 major` Fixed returned Content-Type in JSON-RPC Dispatcher.
  • :feature:`99` Added Digest Auth support to the circuits.web CLI Tool
  • :feature:`98` Dockerized circuits. See: https://docker.io/
  • 🐛`97 major` Fixed tests.net.test_tcp.test_lookup_failure test for Windows
  • :support:`95` Updated Developer Documentation with corrections and a new workflow.
  • :feature:`94` Modified the :class:`circuits.web.Logger` to use the response_success event.
  • :support:`86` Telnet Tutorial
  • 🐛`47 major` Dispatcher does not fully respect optional arguments. web
  • :support:`61` circuits.web documentation enhancements docs
  • :support:`85` Migrate away from ShiningPanda
  • :support:`87` A rendered example of circuits.tools.graph(). docs
  • :support:`88` Document the implicit registration of components attached as class attributes docs
  • 🐛`89 major` Class attribtues that reference methods cause duplicate event handlers core
  • :support:`92` Update circuitsframework.com content docs
  • :support:`71` Document the value_changed event docs
  • :support:`78` Migrate Change Log maintenance and build to Releases
  • 🐛`91 major` Call/Wait and specific instances of events
  • 🐛`59 major` circuits.web DoS in serve_file (remote denial of service) web
  • 🐛`66 major` web examples jsonserializer broken web
  • :support:`73` Fix duplication in auto generated API Docs. docs
  • :support:`72` Update Event Filtering section of Users Manual docs
  • 🐛`76 major` Missing unit test for DNS lookup failures net
  • :support:`70` Convention around method names of event handlers
  • :support:`75` Document and show examples of using circuits.tools docs
  • 🐛`81 major` "index" method not serving / web
  • 🐛`77 major` Uncaught exceptions Event collides with sockets and others core
  • :support:`69` Merge #circuits-dev FreeNode Channel into #circuits
  • :support:`65` Update tutorial to match circuits 3.0 API(s) and Semantics docs
  • :support:`60` meantion @handler decorator in tutorial docs
  • 🐛`67 major` web example jsontool is broken on python3 web
  • :support:`63` typos in documentation docs
  • 🐛`53 major` WebSocketClient treating WebSocket data in same TCP segment as HTTP response as part the HTTP response. web
  • 🐛`62 major` Fix packaging and bump circuits 1.5.1 for @dsuch (Dariusz Suchojad) for Zato
  • 🐛`56 major` circuits.web HEAD request send response body web
  • 🐛`45 major` Fixed use of cmp() and __cmp__() for Python 3 compatibility.
  • 🐛`48 major` Allow event to be passed to the decorated function (the request handler) for circuits.web
  • 🐛`46 major` Set Content-Type header on response for errors. (circuits.web)
  • 🐛`38 major` Guard against invalid headers. (circuits.web)
  • 🐛`37 major` Fixed a typo in :class:`~circuits.io.file.File`

Older Change Logs

For older Change Logs of previous versions of circuits please see the respective PyPi page(s):