view CHANGELOG @ 3028:ab2696e34d29

Python 3 port: /!\ this is a huge commit /!\ starting from this commit, SàT is needs Python 3.6+ /!\ SàT maybe be instable or some feature may not work anymore, this will improve with time This patch port backend, bridge and frontends to Python 3. Roughly this has been done this way: - 2to3 tools has been applied (with python 3.7) - all references to python2 have been replaced with python3 (notably shebangs) - fixed files not handled by 2to3 (notably the shell script) - several manual fixes - fixed issues reported by Python 3 that where not handled in Python 2 - replaced "async" with "async_" when needed (it's a reserved word from Python 3.7) - replaced zope's "implements" with @implementer decorator - temporary hack to handle data pickled in database, as str or bytes may be returned, to be checked later - fixed hash comparison for password - removed some code which is not needed anymore with Python 3 - deactivated some code which needs to be checked (notably certificate validation) - tested with jp, fixed reported issues until some basic commands worked - ported Primitivus (after porting dependencies like urwid satext) - more manual fixes
author Goffi <goffi@goffi.org>
date Tue, 13 Aug 2019 19:08:41 +0200
parents c7138e913213
children 1761e4823527
line wrap: on
line source

All theses changelogs are not exhaustive, please check the Mercurial repository for more details.

v 0.8.0 «La Cecília» (NOT RELEASED YET):
	- Python 3 port

v 0.7.0 «La Commune» (24/07/19):
    This version is a huge gap with previous one, changelog only show a part of novelties.
    This is also the first "general audience" version.
    - XEP-0070 implementation (HTTP Auth via XMPP)
    - XEP-0106 implementation (JID Escaping)
    - XEP-0184 implementation (Delivery Receipts)
    - XEP-0198 implementation (Stream Management)
    - XEP-0199 implementation (XMPP Ping)
    - XEP-0231 implementation (Bits of Binary)
    - XEP-0264 implementation (Thumbnails)
    - XEP-0280 implementation (Message Carbons)
    - XEP-0313 implementation of messages part (one2one + MUC)
    - XEP-0315 implementation (Data Forms XML Element)
    - XEP-0329 implementation (File Information Sharing)
    - XEP-0352 implementation (Client State Indication)
    - XEP-0384 implementation (OMEMO encryption), one2one
    - new bridges are available: pb (Perspective Broker), and embedded (use backend as a module)
    - D-Bus bridge: changed namespace from org.goffi.SAT to org.salutatoi.SAT
    - components (SàT can now act as a component)
    - templates engine
    - invitations (create temporary account to invite somebody without XMPP account)
    - events
    - tickets
    - tickets importer for Bugzilla
    - merge-requests
    - merge-requests handler for Mercurial
    - new node schema experimental feature: allows to attach a dataform to a node and to filter items based on it
    - forums
    - XML log plugin can now logs stream as soon as it starts
    - many improvements in Jingle and file transfer, updated to last spec version
    - file sharing (direct sharing between devices)
    - file sharing component (to store file on a server)
    - better SàT version handling (in particular Mercurial revision)
    - language detection plugin
    - media remote control through MPRIS standard
    - generic encryption methods handling in core
    - server certificate validation
    - added missing disco extensions while generating capabilities hash
	- reworked setup.py to make it cleaner
	- added VERSION file
    - jp:
        - new debug commands, to monitor stream, call bridge method or send fake signals
        - new info/session command, to get data on current session
        - new blog/get command, to retrieve locally XMPP blog
        - new message/mam command, to check MAM archives (this command may be renamed or merged in an other one in the future)
        - new pubsub commands, for low level pubsub manipulations
        - include pubsub/search command for "grepping" pubsub nodes
        - new invitation commands
        - new event commands
        - new uri commands, to parse/build XMPP URI
        - new input commands, to use a file to generate series of actions
        - new ticket commands
        - new merge-request commands
        - new ad-hoc/list and ad-hoc/run commands
        - new forums commands
        - new avatar commands
        - new ping command
        - new encryption commands, to handle encryption sessions
        - e2e encryption algorithm can now be requested in jp message/send
        - better handling of arguments for pubsub related commands
        - MAM and RSM arguments for pubsub related commands
        - improved outputs
        - new template output, jp can now act as a static site generator
        - a REPL shell is now available with "jp shell" command
        - specified several exit codes
    - Primitivus:
        - new "g" shortcut to move on bottom of chat history
        - show occupants count
        - better notifications
        - separation bar to see new messages since chat widget has been focused for the last time
        - affiliations are show in MUC rooms
        - message language is displayed if available
        - filter messages by language
        - merge join/left infos messages of a contact when they happen in a row (without new message between them)
    - Cagou:
        - new desktop/mobile (Android for now) frontend
        - handle widget splitting à la Blender
        - chat mode
        - contacts mode
        - file sharing mode
        - settings mode
        - remote control mode
        - Android adaptation + build
    - Templates:
        - new sat_templates module
        - blog
        - chat
        - event
        - file sharing
        - forums
        - invitations
        - login/session
        - merge-requests
        - photos albums
        - tickets
    - Libervia:
        - Libervia pages: a web framework to easily create web pages using SàT/XMPP under the hood. Will be the cornerstone of future of Libervia
        - this framework has been used to make following features: blog, chat, events, file sharing, forums, invitations, merge-requests, photo albums and tickets 
        - dynamic version of Libervia (made with Pyjamas) is still available, but under minimal maintenance, it will be re-implemented using other tools in 0.8
        - static blog has been deprecated (still available in "/blog_legacy" for now) in favor of Libervia pages' blog
        - many internal changes and improvements to handle Libervia page
    - usual internal improvements + refactoring + bug fixes
    - many other stuff, check Mercurial logs

v 0.6.1 (12/07/2016):
    - minimum Twisted version is now 15.2.0
    - removed pyfeed and xe dependencies
    - added mutagen to recommended in README4PACKAGERS
    - use of /usr/bin/env instead of /usr/bin/python in shebang
    - core:
        - connection and initialisation improvements
        - leave the handling of delay elements to XEP-0203
    - memory:
        - fixes handling of jids_list parameter type
        - fixed exception when setting an empty password
        - disco: better handling of response failures
    - tools:
        - improved repository version detection
        - moved data methods from common to common.data_format
        - added common.regex module
    - new plugins:
        - blog_import: generic plugin to import blogs to SàT
        - blog_import_dotclear: import dotclear blog
        - blog_import_dokuwiki: import dokuwiki blog
        - extra_pep: display messages from extra PEP services
        - syntax_wiki_dotclear: convert dotclear wiki syntax from and to XHTML
        - directory_subscription: temporary plugin moved from XEP-0055 implementation
    - already existing plugins:
        - account:
            - auto add some roster contacts at profile creation
            - parameter "admin_email" is now "email_admin_lists"
            - email sending improvements (new authentication options)
            - email the admins when a profile is created from an existing XMPP account
        - ip: changed URL of GET_IP_PAGE for the new one on salut-a-toi.org
        - XEP-0045: fixes commands feedback
        - XEP-0060: MAM (XEP-0313) integration
        - XEP-0166, XEP-0260: better handling of proxy error
        - XEP-0277:
            - improve comments handling
            - uses new "extra pep" plugin
            - Atom feed retrieval is left to Libervia
            - fixes XHTML content encapsulation and handling of new lines
        - XEP-0313: cleaning and improvements
        - text_syntaxes: various improvements
    - tmp/wokkel:
        - updated behaviour and namespace to new urn:xmpp:mam:1
        - several MAM and RSM improvements
    - frontends:
        - printing the history and notifications are left to quick_frontend
        - restore printing the day change while displaying history
        - fixes main item update and auto addition of a scheme to HTML links
        - added ui_show_cb in actionManager (frontend can handle the XMLUI display)
    - jp:
        - new start method used by all commands
        - new --output option to change the format of command output:
            - possible outputs for now are "default", "json" and "json_raw" 
        - new commands:
            - blog: import, edit, preview
            - roster: get, stats, purge
        - command "message" moved to "message send"
        - command "profile list" uses the new --output option
        - added constants for exit codes
    - primitivus:
        - detect direct pasting in the message bar
        - add bracketed paste mode
    - libervia:
        - browser and server sides:
           - replaced isRegistered call by a more generic getSessionMetadata
           - new option "allow_registration" to enable/disable new accounts registration
        - browser side:
            - improved the popup message banner
            - replaced old favicon and display favicon counter
            - fixed handling of connection with external JID
            - improved some regexps
            - replace "re" module usage with pure javascript
        - server:
            - added mechanism for URL redirections
            - renamed "ssl_certificate" to "tls_certificate"
            - new options "tls_private_key", "tls_chain options", "base_url_ext"
            - blog:
                - several improvements
                - implement tags/categories
                - removed max_items as we use RSM
                - fixed atom feed, add link and categories (tags) elements

v 0.6.0 (02/12/2015):
    - modification of the social contract according to the General Assembly of August, 19th 2014
    - improved launching/stopping scripts:
        - use SIGTERM instead of SIGINT with the “stop” command
        - now manage "status" command and additional arguments
    - updated setup.py and INSTALL files:
        - add PyOpenSSL to the dependency list
        - added jsdebug option to use debug mode with pyjsbuild
        - replaced the deprecated distribute_setup.py by ez_setup.py
        - fixed INSTALL instructions
    - updated README and README4PACKAGERS for third party modules
    - added some tests for sat.tmp.wokkel and Libervia JID* classes
    - core:
        - new bridge signals: actionNew, progressStarted, progressFinished, progressError 
        - new bridge methods:
            - disco: getFeatures
            - profile: profileStartSession, profileIsSessionStarted, profileSetDefault
            - memory: getEntitiesData, asyncGetParamsValuesFromCategory, getMainResource 
            - progression (e.g for file transfer): progressGetAll, progressGetAllMetadata
            - actionsGet to retrieve the deferred actions ordered by actionNew
        - xmpp: added auxiliary methods sendError and IQ, improved roster management
        - plugins: more robust loading, detect name conflicts, added unload method
        - repository data are checked and added to SàT "dev" versions
        - add several new constants for MUC, profiles, plugins
    - memory:
        - new parameters: "Chat history limit", "Show offline contacts" and "Show empty groups"
        - add "int" parameter type with "constraint" attributes
        - removed resource from the default JabberID
    - tools:
        - new tools.sat_defer, implementation of RTDeferredSessions and DelayedDeferred
        - xmlui:
            - added JidInput and JidsList widgets
            - allow to select a tab when adding it
            - keeps data form result headers sorted
    - new plugins:
        - XEP-0059: Result Set Management
        - XEP-0166: Jingle \o/
        - XEP-0203: Delay Delivery
        - XEP-0234: Jingle File Transfer
        - XEP-0260: Jingle SOCKS5 Bytestreams
        - XEP-0261: Jingle In-Band Bytestreams
        - XEP-0297: Stanza Forwarding
        - XEP-0300: Cryptographic Hash Functions
        - XEP-0313: Message Archive Management
        - XEP-0334: Message Processing Hints
        - XEP-0363: HTTP File Upload
        - file, upload: file transfer management
        - ip: external IP discovery
        - pipe: Jingle pipe transfer
        - nat-port: NAT port mapping
        - watched: alert when a watched entity goes online
        - welcome: display welcome message
    - already existing plugins:
        - XEP-0045: several improvements
        - XEP-0047: improvements, increased timeout to 2 minutes
        - XEP-0050: better disco info, pre-fill the target server
        - XEP-0054: improvements, especially concerning the hash
        - XEP-0055: add "simple" and "advanced" modes to Jabber Search
        - XEP-0060:
            - try to find a default PubSub service
            - retractItem manage "notify" attribute
            - added addManagedNode and removeManagedNode
            - new signal psEvent will be used to notify the frontends
        - XEP-0065: chunk size optimization, session cleaning and timeout
        - XEP-0085: various fixes, including a bad use of threads
        - XEP-0096: use file plugin to choose the best available method
        - XEP-0115: better disco error handling
        - XEP-0163: replaced personalEvent with psEvent, improved addPEPEvent
        - XEP-0277:
            - improved bridge methods, better parsing of atom, better error handling
            - auto-create nodes on default pubsub service if available, else PEP
            - use checkFeatures and other new methods from XEP-0060
            - added subscribeToMany and getFromMany methods
            - manage retract feature
        - account: add method asyncConnectWithXMPPCredentials
        - groupblog: many improvements as in XEP-0060 and XEP-0277
        - sec_otr, text commands: some improvements
    - removed plugin: deprecated tmp_demo_directory
    - tmp (used as a buffer module until the changes are integrated to wokkel):
        - added support for RSM (XEP-0059) and MAM (XEP-0313)
        - pubsub: added retract "notify" attribute management
    - frontends:
        - deprecated wix frontend and Libervia's unibox
        - frontends can also use listeners and triggers mechanisms
        - improved management: menus, widgets, rosters, chat and blog
        - merge sat_frontends.constants to sat_frontends.quick_frontend.constants
        - new method getFullJid which is the frontend's equivalent to getMainResource
        - contact list: display the counts of waiting messages per contact
        - MUC: display activities' symbols, resources for private messages
    - jp:
        - added commands "profile connect" and "modify", "param get" and "set", "file upload"
        - added attributes --verbose, --password and --xmpp-password
        - profile session can now be started without connection
    - primitivus:
        - now manages multi-profiles \o/
        - new command "search" to search the local history
        - xmlui: manage message in FileDialog and several improvements
    - libervia:
        - Libervia is now based on QuickFrontend \o/
        - browser and server sides:
            - allow to connect with an external JID
            - implemented blog tags
        - server side:
            - set a timeout to reset the waiting connection requests after 2 minutes
            - special handling of Connection/JabberID and Connection/autoconnect
            - add a link to the FAQ in the HTTP/HTTPS warning dialog
            - static blog: themes based on Jinja2 template engine
            - enable HTTP gzip compression
        - browser side:
            - removed unibox, RichMessageEditor and RecipientManager
            - features checks for microblogging and group blogging
            - new methods displayWidget, setStatusOnline, showDialog
            - added signal caching before profile is plugged
            - do a hard reload on disconnected signal
            - news classes for JID iterables
            - display MUC occupants presences
            - show version number in the about dialog
            - improve login and register panels visibility
            - use favico.js to display the total number of waiting messages
            - json: replaced the Window.alert by a log warning when signal is lost
            - contact list: ContactPanels is used instead of OccupantsList in MUC
            - OTR: use listeners, fixed missing resource issue and icons updates
            - widget's drag and drop:
                - border widgets are now visible on drag start
                - allow to drop a widget in the "+" button to add a new tab
    - and a lot of improvements and fixes that are not listed here :-)

v 0.5.1 (18/09/2014):
    - fixed some typos (Matteo Cypriani)
    - updated the setup file, INSTALL and README* (Matteo Cypriani)
    - already existing plugins:
        - XEP_0033: fixed message sending
    - wix: avoid setting a bad icon (Olly Betts)
    - libervia's browser side:
      - fixed bug at profile disconnection
      - fixed signal callback with no argument
      - disable OTR if the browser doesn't offer CSPRNG

v 0.5 (09/09/2014):
    - removed deprecated Sortilege frontend
    - better PEP-8 compliance and code cleaning
    - debug mode tries to use ipdb instead of pdb
    - improved initialisation sequence
    - refactorisation of the discovery feature
    - refactorization of the constants with inheritance
    - added profile password and passwords hashing/encryption
    - new logging system with colors, formatting, filtering and output management
    - the backend is now a twisted plugin (as libervia)
    - added a .service file for D-Bus auto-launch feature
    - improved launching/stopping scripts:
        - do not kill all instances anymore
        - add a "status" command
        - launch as daemon by default
        - new option "fg" for launching in foreground
    - updated setup.py and INSTALL files:
        - adapt to the new improvements
        - added "clean" and "purge" options
        - update distribute_setup.py to ez_setup.py
        - replace PIL dependencies with it's fork pillow
    - use XDG recommended paths as the defaults
    - look for DNS SRV records to find the XMPP server and port
    - tests: bug fixes, improvements and addition
    - bridge:
        - fixes some D-Bus frontend generator issues
        - set the timeout to 120 seconds for async calls
        - added methods getReady, discoInfos and discoItems
    - core:
        - wider use of asynchronous methods, removal of some synchronous ones
        - improved retrieval of the client with better error management
        - plugins now accepts recommendations in addition to dependencies
        - sendMessage handles the extra data key "send_only"
        - sendMessageTrigger now manage pre and post treatments
        - xmpp:
            - fixes sending of presence stanzas (were sent twice)
            - warns about roster's contact unilateral subscriptions
            - fixes presence status, handle message's subjects
            - refactorisation of the messages reception and sending
        - memory:
            - moved Params class in its own module
            - param definition handles multi-selection for list widgets
            - Parameters "Server" and "Port" renamed to "Force server" and "Force Port"
            - added module crypto for password hashing and block encryption/decryption
            - improvements and bug fixes (entities cache, last resource, importing/filtering parameters)
    - tools:
        - config improvements
        - moved sat.tools.jid to sat_frontends.tools.jid
        - XMLUI:
            - added read-only attribute
            - handle data forms and button callbacks
            - read value element/attribute of input widgets
            - new and improved widgets (boolean, list, texbox, JID)
            - manage dialogs for message, note, confirm and file upload
    - new plugins:
        - XEP-0048: MUC bookmarks
        - XEP-0049: private xml storage
        - XEP-0092: software version
        - OTR: Off The Record (end-to-end) encryption
        - register account: refactorisation of the method to register an XMPP account
        - static blog:
            - user can set his blog's banner, title, meta keywords and description
            - add a menu of type MENU_JID_CONTEXT to open a contact's public blog
    - already existing plugins:
        - XEP_0033, XEP-0085: bug fixes
        - XEP-0045:
            - added "Configure room" menu
            - added /kick, /ban and /affiliate commands
            - added user information to /whois text command
        - XEP-0050: manage notes and forms returned by completed command
        - XEP-0054: crop uploaded avatar to get a square
        - XEP-0060: handle retrieving items by node identifiers
        - XEP-0065: fixed initialisation sequence
        - xep-0115: caps optimisation
        - XEP-0249: added command /invite
        - groupblog: added a convenient bridge method getGroupBlogsWithComments
        - radiocol: add MP3 support, preload signal also contains the uploader nickname
        - account:
            - prosody gid is used to spawn prosodyctl process
            - user can change his password, purge his microblogs, delete his account
            - do not send the password with the confirmation email for account creation
        - text command:
            - refactoring and fixes
            - plugin can register their own commands
            - do not send the message on invalid command
            - added /me command, commands are now sorted in /help
    - stdui (standard XMLUI forms and callbacks):
        - contact list: unify the roster management UIs
        - profile manager: manage profile authentication and password prompts
    - frontends:
        - async failures are more detailed
        - signals are managed in a more generic way
        - force JID's node and domain to lower-case
        - use the new "info" type for system message
        - manage menu types MENU_ROOM and MENU_SINGLE
        - display messages from contacts not in roster
        - display presence with the highest priority
        - reset your own presence on connection/disconnection
        - display chat states for MUC participants
        - XMLUI: add setter methods, bug fixes
    - jp:
        - updated main loop to gobject 3
        - option '-c' is used to define the SàT profile password
        - added commands for bookmarks, info disco/version, load/save parameters template
    - primitivus:
        - improved vertical container
        - fixes contact group update, freedesktop notifications
        - history edit bar doesn't propagate up/down key events anymore
        - use of new keys modules from Urwid SàText and inhibate SIG_INT
        - fixes the messages display order when opening a conversation
        - prevent a notification flood when displaying the history
        - add the /history command
        - focus fixes
        - added keys to focus main parts
    - libervia:
        - reorganize all the source files hierarchy, fixes module import
        - refactor HTTP request result values, handle "NoReply" error
        - new account password must contain at least 6 chars
        - display favicons
        - server side:
            - added support for SSL and its related parameters
            - adapt setup.py to follow the changes in the backend
            - improvements (options management, failure handling...)
            - added option empty_password_allowed_warning_dangerous_list
            - twisted plugin:
                - fix unicodes issues in the options
                - bug fix passing twistd arguments to Libervia
            - static blog:
                - added URL query parameter 'max_items'
                - retrieve blog's banner, title, meta keywords and description
                - display blog comments when you click on a main item header or title
        - browser side:
            - force profile name to lower case at new account creation
            - display new lines and clickable URLs for headline message
            - notifications enhancements, manage the "info" message type
            - refactorisation of the JID class with modifiable attributes
            - refactorisation of the file uploaders and the menus
            - manage menus of level > 2 which can be flattened
            - handle menus of type ROOM, SINGLE and ROSTER_JID
            - PromptDialog can display several input fields
            - added a dialog to update/delete the account
            - added classes LightTextEditor, HTMLTextEditor
            - announcements from the host are displayed in a popup
            - use a default avatar, display avatars in the contact panel
            - display chat states for MUC participants
            - first steps to manage somehow browser side's plugins
            - implementation of OTR based on otr.js
            - improvements from feedbacks, bug fixes
            - microblogs:
                - display new lines in microblogs
                - <shift> + <enter> makes a new line, <esc> finishes the edition
            - XMLUI:
                - implement the divider styles
                - manage multi-selection for list widgets
                - follow the changes in the backend (dialogs, read-only attribute...)
            - nativedom manages more node properties

v 0.4.1 (28/02/2014):
    - fixed README4PACKAGERS
    - fixed/improved setup.py
    - better INSTALL

v 0.4.0 (26/02/2014):
    - minimum wokkel version is now 0.7.1
    - minimum urwid version is now 1.1.0
    - added more test cases
    - fixed invalid bridge calls
    - fixed issues at account creation
    - better PEP-8 compliance (Emmanuel Gil Peyrot)
    - distribute fix (Thomas Preud'homme)
    - better error and asynchronous calls handling
    - callbacks system refactoring and unification
    - configuration constants can be overriden in sat.conf
    - fixed some issues with the file transfer
    - possibility to register frontend specific parameter
    - added a security_limit parameter for sensible requests over the bridge
    - XMLUI deep refactorisation offering a new mechanism to ease frontend developpment and maintenance
    - XMLUI new AdvancedListContainer
    - localisation system improvement with deferred translation and dynamic language switch
    - new dynamic menus mechanism
    - better exit message if bridge can't be initialised
    - i18n refactoring, deferred translations
    - core: set min and max priorities for triggers
    - core: sendMessage can skip the triggers
    - core: triggered plugin methods can add a deferred treatments after a message is sent or received
    - core: do not write .sat/param anymore (everything is in the SQLite database)
    - core: plugins parameters registrations do an update instead of overwriting the existing nodes
    - core: better session management
    - core: callbacks can be removed after the first call
    - core: automatic database upgrade mechanism
    - core: resource priority management
    - new plugin: XEP-0033 (Extended Stanza Addressing)
    - new plugin: XEP-0055 (XMPP Search Directory)
    - new plugin: XEP-0085 (Chat State Notifications)
    - new plugin: XEP-0050 (Ad-hoc Commands, also able to request and interface with other D-Bus bridges)
    - new plugin: XEP-0071 (XHTML-IM)
    - new plugin: command_export (export a shell command input/output to a contact)
    - new plugin: room_games (from the factorisation of tarot, radiocol and quizz)
    - new plugin: text_commands (IRC-like commands)
    - new plugin: text_syntaxes (rich texts syntaxes conversions, for now between XHTML, Markdown and raw text)
    - plugin XEP-0045: added MUC configuration with XMLUI
    - plugin XEP-0077, XEP-100: refactorisation with XMLUI
    - plugin XEP-0249: add a parameter "auto-join MUC on invitation"
    - plugins XEP-0060, XEP-0277, groupblog: manage comments, rich text, titles, update, deletion and Atom feed
    - plugin radiocol: better synchronisation with "jump to time" information
    - frontends: fixed presence/status update
    - primitivus, libervia: added a user input history
    - jp: added profiles management (Dal)
    - jp: refactorisation to use ArgParse instead of OptParse (Dal)
    - jp: objects refactoring, automatic subcommands import
    - jp: added Zsh command completion
    - jp: locales fix (Thomas Preud'homme)
    - primitivus, libervia: user input history
    - primitivus: updated for using Urwid >= 1.1.0
    - libervia: lot of (re)factorisation, import of frontends modules
    - libervia: the server is now launched as a twisted plugin (Emmanuel Gil Peyrot)
    - libervia: add notifications support (Emmanuel Gil Peyrot)
    - libervia: added setup.py
    - libervia: fixed static blog items order, cosmetic improvements
    - libervia: static blog atom feed (e.g: http://www.libervia.org/blog/<user>/atom.xml)
    - libervia: unibox is now optional and desactivated by default
    - libervia: microblogs items are selectable when the unibox is enabled
    - libervia: quick addressing syntax is now handled by the unibox
    - libervia: added a GUI to edit rich text messages, preview/wysiwyg and manage extended addressing
    - libervia: use HTML5 "contenteditable" for editing your status and raw text/WYSIWYG microblogs
    - libervia: file upload improvement, radiocol GUI improvement and join/leave synchronisation
    - libervia: auto-login with URL GET parameters (e.g: http://libervia.org/login=<user>&passwd=<password>)
    - libervia: display clickable URL and day change in the chat panels
    - libervia: clicking on a contact list item opens the associated dialog
    - libervia: widggets and tabs can be dragged and dropped, better open/close behavior
    - libervia: fixed window resizing issues, multi-lines messages issues
    - libervia: added a GUI to select rooms and invite contacts (prototype)
    - libervia: added a GUI to manage contact groups (prototype)

v 0.3.0 (09/01/2013):
    - full project moved to AGPL v3+
    - new Logo (Adrien Vigneron) + several other sprites
    - quiz game (draft, not finished)
    - configuration file
    - media separated from main repository
    - new Qt frontend: Bellaciao (draft, not usable yet)
    - dbus-xml constructor in bridge-constructor (for Qt)
    - Primitivus: freedesktop notifications
    - new plugin: XEP-0020 (feature negociation)
    - new plugin: XEP-0047 (in-band bytestream)
    - new plugin: XEP-0095 (stream initiation)
    - new experimental plugin: pipe transfer
    - jp: name to jid conversion
    - database integration (sqlite)
    - D-Bus bridge: generic exception management
    - core: data storage improved
    - radio collective (plugin + Libervia implementation)
    - new groupblog, using sat_pubsub
    - D-Bus bridge: better dynamically added method management (with introspection)
    - status update crash fix (Xavier Maillard)
    - misc bugfixes (Emmanuel Gil Peyrot)
    - social contract: english translation (Matthieu Rakotojaona)
    - many MUC improvments (MUC branch merged mainstream in Wokkel)
    - Primitivus: contacts panel improvments: color & icon + statuses
    - Primitivus: MUC room are now shown separately
    - Primitivus: new entities are added to contacts panel if they send message
    - new plugin: text commands (IRC like commands during conversation)
    - plugin XEP-0045: nick change, room leaving, subject change, automaticaly change nick on conflict
    - MUC privates messages management
    - core: added priority management in triggers + trigger can now forbid other triggers execution
    - Primitivus is now modal (à la vi)
    - new experimental plugin: parrot (repeat text between two entities)
    - deprecated plugin: couchsurfing
    - Primitivus: incoming files transfer management
    - added "Port" parameter in "Connection"
    - Libervia: new skin (Adrien Vigneron)
    - Libervia: new widgets system
    - Libervia: many microblogging (with groups) improvments
    - Libervia: XMLUI implementation
    - Libervia: parameters management through XMLUI (deactivated for security reasons)
    - avatar upload (with Libervia implementation)
    - Libervia: disconnection management
    - SàT account automatic registration refactored (moved to core + use Prosody)
    - misc debug/refactoring

v 0.2.0 (31/05/2011):
    - new debug command in sat launcher script
    - core: triggers
    - news plugins: maildir, imap and smtp, SàT can now communicate with a Mail User Agent throught them
    - bridge constructor, a generator which make bridge files from .ini. It can also generate doc in mediawiki format
    - new plugin: XML log to send XML raw data throught DBus
    - new plugin: XEP-0115 (entity capabilities)
    - new plugin: XEP-0060 (Pubsub) and XEP-163 (Personal Eventing Protocol)
    - DBus bridge: fixed introspection for dynamically aded methods and signals
    - new plugin: XEP-277 (Microblogging over XMPP)
    - fixed installation (Wokkel version is forced)
    - bridge: added asynchrone methods management
    - new plugin: group microbloging (groupblog)
    - new plugin: XEP-0249 (direct MUC invitation)
    - plugin Tarot: game can be automatically created, and fully played (but rules are not fully implemented yet)
    - email added in registerNewAccount
    - Social contract added (CONTRAT_SOCIAL) \o.
    - Subscription scheme fixed
    - new frontend: Libervia \o/ . Put in a separate package

v 0.1.1 (14/01/2011):
    - bug#1: fixed crash due to dbus.String

v 0.1.0 (12/01/2011):
    - urwid custom libs split as a new project: "urwid-satext"
    - files reorganisation
    - versioning now use a standard scheme (major.minor.increment+letter)
    - distutils/distribute installation script
    - misc bugs fixes
    - easy way to launch/stop sat (sat & sat stop)

v 0.0.3 (20/08/2010):
    - multi-profiles
    - i18n support
    - french translation
    - MUC support (basic for the moment)
    - Dynamic methods/signals in DBus bridge
    - Tarot game
    - CouchSurfing plugin
    - XML User Interface
    - Sortilège replaced by Primitivus
    - About boxes & versions numbers now follow SàT core version

v 0.0.2 (10/01/2010):
    - DBus bridge: dynamic exportation of methods (useful for plugins)
    - new doc: INSTALL and CHANGELOG
    - new method to save private data (useful for plugins)
    - disconnection
    - whitespace ping to avoid disconnection when idle
    - presence management refactored, subscription is now managed separatly
    - use of xml params
    - new way to specify default values in params
    - sat is now a twisted application, so it can be deamonized
    - Wokkel integration
    - added some features from Wokkel: disco, software version
    - new account creation (in-band registration): not fully implemented
    - IP for file transfer is now set by default (see README)
    - Gateways management (Wix only for now)
    - VCard support (readonly for now) with avatars/nicks support
    - Wix: easier jid setup
    - Wix: added Tray icon (using Crystal Clear: see README)
    - Wix: new contact list, using avatars and nicknames
    - Wix, Sortilège: better connection/disconnection management (buggy in sortilège)
    - Wix: main frame default size changed

v 0.0.1 (17/05/2009):
    ** FIRST PUBLIC RELEASE **