Mercurial > libervia-backend
view CHANGELOG @ 1955:633b5c21aefd
backend, frontend: messages refactoring (huge commit, not finished):
/!\ database schema has been modified, do a backup before updating
message have been refactored, here are the main changes:
- languages are now handled
- all messages have an uid (internal to SàT)
- message updating is anticipated
- subject is now first class
- new naming scheme is used newMessage => messageNew, getHistory => historyGet, sendMessage => messageSend
- minimal compatibility refactoring in quick_frontend/Primitivus, better refactoring should follow
- threads handling
- delayed messages are saved into history
- info messages may also be saved in history (e.g. to keep track of people joining/leaving a room)
- duplicate messages should be avoided
- historyGet return messages in right order, no need to sort again
- plugins have been updated to follow new features, some of them need to be reworked (e.g. OTR)
- XEP-0203 (Delayed Delivery) is now fully handled in core, the plugin just handle disco and creation of a delay element
- /!\ jp and Libervia are currently broken, as some features of Primitivus
It has been put in one huge commit to avoid breaking messaging between changes.
This is the main part of message refactoring, other commits will follow to take profit of the new features/behaviour.
author | Goffi <goffi@goffi.org> |
---|---|
date | Tue, 24 May 2016 22:11:04 +0200 |
parents | 8be7a69bf1a4 |
children | ee73f20f6cf5 |
line wrap: on
line source
All theses changelogs are not exhaustive, please check the mercurial repository for more details. 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 **