Hi list, I'm pleased to announce the release of python-brisa version 0.10.0. This version contains a lot of improvements and optimizations. Thanks to all developers who helped us for this release. Website: http://brisa.garage.maemo.org/ Development: http://garage.maemo.org/projects/brisa/ Download: https://garage.maemo.org/frs/?group_id=138 Mailing list: https://garage.maemo.org/mailman/listinfo/brisa-discuss/ What is python-brisa? ================ Python-brisa is a UPnP framework written in Python provided under MIT License. It contains facilities for building UPnP devices, services and control points. Features: * Integration with Qt, Gtk, Glib2 and Ecore * Simple but powerful API for writing devices, services and control points * Complete UPnP device architecture implementation (SSDP, SOAP, MSearch, Eventing (GENA)) * Network transport and API facilities (UDP, TCP, HTTP, XML, IP and network interfaces) * DIDL/DLNA * Facilities for logging, configurations, threading, application management Multiplatform ========== Being a pure python solution, python-brisa is supposed to run on every platform that enables python. It's been tested with both Python 2.5 and Python 2.6 versions. We would really appreciate community feedback, bug reports and feature requests concerning attempts to run it on other platforms. In this release, we have to highlight our step further on multiplatform compliance: a WSGI (Web Server Gateway Interface). The python-brisa framework requires a webserver and we have provided this feature through WSGI. We have implemented adapters for Cherrypy, Circuits and Python-Paste WSGI servers, but this is easily extended to any other WSGI servers. Requirements =========== - Python 2.5.x, Python 2.5.x-dev (or 2.6) - http://www.python.org One of the following: - Python-Cherrypy (>= 3.1.1) - http://www.cherrypy.org - Circuits - http://trac.softcircuit.com.au/circuits/ - Python-paste http://pythonpaste.org/ Contact ======= Our developers are usually at our official channel on freenode. * IRC Channel: #brisa @ irc.freenode.net * Mailing List: https://garage.maemo.org/mailman/listinfo/brisa-discuss/ Feel free to provide feedbacks, ask questions and so on. Tasks of the release =============== * Implemented WSGI server adapters for cherrypy, circuits.web and paste * Webserver is now WSGI with pluggable server adapters * Implemented ServiceBuilder that builds the service object from a scpd.xml * Implemented two ways of creating a service: with a scpd.xml file or by specifying service parameters through code - and the framework generates the scpd.xml * Reactor infrastructure added * Webserver is not a singleton anymore * Arrangement for device abstracts the user from a lot of things, such as the webserver * Implemented Gtk2Reactor, Glib2Reactor, EcoreReactor, SelectReactor (default) * Plugin architecture refactored * Log messages are a bit more cleaner now. Most log messages were for debug purposes, so, changed most of them to DEBUG. INFO level now should be only used for informing the user high-level events, such as "New device", "Device is gone", "Publishing device", and so on. * Control point objects are now reusable. They can now be stopped, and started again. * Closure procedure is now chained. Some classes (such as ssdp msearch) now have these 3 methods: start(), stop(), destroy(). start() - starts the class, stop() - stops the class, but it can be start()'ed again later and destroy() - stops the class DEFINITELY, clean references to help with garbage collection, makes the class unusable. For a clearer view, take a look at upnp/control_point/control_point.py. You will notice that these three methods are chained. * Device webserver publishing is now chained and transparent to the user. Added some options to BRisa for customizing device/service build (these options have default values for making everything work, automatic as possible) * Packages created: - core: framework core stuff - core.reactors: reactors implementations - upnp.control_point: API for writing control points - upnp.device: API for writing devices - upnp.services: general services implemented by us (ConnectionManager, ContentDirectory) - upnp.services.xmls: XML folder for the services of the item above * Removed lots of threads: most are now integrated with the main loop (fd's and sleeps) * Implemented UPnP eventing API on the device side * Removed deprecated modules: utils.sqlite, threading * Packages moves (from -> to): - utils.network -> core.network - utils.network_listeners -> core.network_listeners - utils.network_senders -> core.network_senders - utils.system -> core.system - utils.failure -> core.failure - threading.threaded_call -> core.threaded_call - log -> core.log - config -> core.config - control_point -> upnp.control_point - xml_descriptions -> upnp.services.xmls - services.web_server -> core.webserver Bugs fixed in this release =================== * Fixed looping call bug when the parameter "now" is False * Fixed arguments parsing bug (was not parsing arguments properly) * Fixed examples XML files Features implemented from last release plans ================================== * Improve the thread interrupt with a higher level mechanism (probably pipes) * Provide framework's own exception classes * Implement more basic devices as examples * Add more basic examples of framework usage * Complete unit test suite for the framework * Add scripts for automatic packaging for gentoo, rpm Next release plans =============== * Create an universal control point application * Create a media center application * Implement more basic devices as examples * Implement Media Server 2.0 and 3.0 devices * Implement Media Renderer 2.0 device -- Leandro Melo de Sales Pervasive and Embedded Computing Laboratory PhD candidate in Computer Science at Federal University of Campina Grande Assistent Professor in Computer Science at Federal University of Alagoas _______________________________________________ maemo-users mailing list maemo-users@xxxxxxxxx https://lists.maemo.org/mailman/listinfo/maemo-users