poezio/CHANGELOG

552 lines
23 KiB
Text
Raw Normal View History

2010-05-21 13:49:35 +00:00
This file describes the new features in each poezio release.
2020-05-24 15:08:58 +00:00
* Poezio 0.14 - dev
# Configuration changes:
- ADDED: `mam_sync`, `mam_sync_limit`.
- ADDED: `autocolor_tab_names`.
- CHANGED: `ca_cert_path` is commented out. Poezio will attempt to guess
common CA bundle paths. The option can be used to overwrite this behaviour.
- REMOVED: `force_remote_bookmarks`.
- REMOVED: options related to activity, mood, gaming, tune:
`enable_user_activity`, `enable_user_mood`, `enable_user_gaming`,
`enable_user_tune`, `display_activity_notifications`,
`display_mood_notifications`, `display_gaming_notifications`,
`display_tune_notifications`.
- REMOVED: `deterministic_muc_colors`.
# Changes
- DEPRECATION: /leave is deprecated. Use /part or /close instead.
- REMOVED: rich presence (activity, mood, gaming, tune) from poezio, alongside
with configuration options and commands: /activity, /mood,
and /gaming. These are moved to the new user_extras plugin.
- REMOVED: non-deterministic nick colors in MUC.
- REMOVED: XEP-0319 support removed for privacy and performance.
- REMOVED: Support for pypy3 with the removal of poopt.py
- ADDED: New /request_voice command for moderated rooms
- ADDED: /join: support using an XMPP URI (xmpp:...?join)
- ADDED: /destroy_room: new optional reason and altroom arguments
- ADDED: Newlines now considered as word separator in input manipulation (#3411)
- ADDED: Colored tab names or number using Consistent Color Generation behind
`autocolor_tab_names` (thanks jonas!)
- Stop highlighting on MUC history messages just because they're delayed
- Stop displaying the traceback in debug log when /xhtml fails
- Ensure launch.sh can be use outside the repository (Thanks kaliko)
- Detect `/set option = value` pattern and do as it `/set option value` was
called. (#3517)
- Newlines taken into account on completion (#3385)
- Allow resizing certificate confirmation window (#3371)
- Make theming more configurable around nicks
- Log MUC <destroy/> payload in the information buffer
- impromptu: wait for room subject before configuring and inviting
- Impromptu: rooms now have pronouceable short names
- impromptu: ensure a room is empty before joining
- impromptu: now uses mediated invites
- Fetch from MAM by default when use_log is False.
- xhtml: Add a new line after a blockquote
## Bug fixes
- Ensure bookmark is present before removing it in /close.
- Ensure bookmarks are saved correctly on method config change, and on /close.
- Ensure nick is added to bookmark when specified
- Do not crash on bookmark without a nickname (Thanks Ge0rG)
- Ensure the correct tab is bookmarked on /bookmark and /join
- /bookmark: treat empty nick as no nick to avoid failing on empty resource
- Fix closing a tab not in bookmarks
- Disco barejid instead of domains on sent carbons. Follow-up of 5e40437.
(Thanks Ge0rG)
- Only use JID internally when handling affiliations. Add nick if present.
(#3536)
- /last_activity: prevent traceback
- Fix bad error handling when checking bookmarks storage
- `/join / password` works again
- Report available presence in tabs correctly
- /display_correction: now reports the correct time for private messages (#3532)
- Fix composing indicators not showing (#3527)
- Fix pasting text in data forms and bookmarkstab (#3519)
- Fix /me logging (#3432)
- Retrieve nick colors from the correct section
- Do not scroll right by default in dataforms/bookmark text
- Hack around the time limit for topic messages
- Ensure MUC-PM logging filenames are generated as expected (Thanks Ge0rG, southerntofu)
- Fix poezio displaying many times the same participant in the user list.
- Fix default dataform field handling (#3554)
- Fix MUCListTab not joining selected MUCs (#3553)
- Fix /color completion (Thanks eijebong)
- /info: Don't display comma before status message if not available
## Plugins
- ADDED: untrackme plugin. based on remove_get_trackers.
- ADDED: user_extras plugin. /activity, /mood and /gaming moved from core.
- ADDED: sticker plugin.
- DEPRECATED: remove_get_trackers
- Reorder: Prevent GapTabs from being serialized and ignore when serialized as
they're recreated automatically.
- Code: prevent traceback when not enough arguments
- Link: Add support for aesgcm, gemini and gopher URIs
- Contact: iterate all data forms (Thanks Ge0rG)
- Fix plugins (embed, lastlog, otr, quote, time_marker) to use poezio.ui.types
- Disco: Added error handling
2022-04-08 17:46:12 +00:00
- IRC: Fix the plugin to work with the various refactors, and use
irc.jabberfr.org as a default gateway
## API
- BREAKING: E2EEPlugin.decrypt's `tab` parameter is now of type
Optional[ChatTab] instead of ChatTab.
- BREAKING: E2EEPlugin.supported_tab_types is now required
- BREAKING: decrypt method is now async
- E2EEPlugin decrypts encrypted messages even when they have no body.
- E2EEPlugin lets through already encrypted messages without giving them
to the user lib (poezio-omemo, for example).
- Correctly pass realjid to decrypt call for MUC messages
- /<encryption_name>_fingerprint command is added. Plugins can implement
`get_fingerprints` and `format_fingerprint` for it to return a (formatted)
value.
# Under the hood
- Moved development from 'master' to 'main' branch
- Lots of type hints added (decorators, multiuserchat, shlex, common, muctab,
etc.) fixing many bugs
- Lots of event handlers and calls are now async in poezio. Many callbacks removed.
- Lots of refactoring
- Performance improvements:
- Trim all messages by 24 bytes on 64-bit systems
- Reduce log parsing by a lot
- No more safeJID calls. (#3457)
- Rework some features to use slixmpp's API instead of custom poezio code
(i.e., muc's set_subject, set_role, set_affiliation, destroy_room,
cancel_config, set_room_config, and most events)
- Split commands from Core
- Require typing_extensions package for python
- Require setuptools package explicitly because of pkg_resources' import
(Thanks Thomas)
- Replace asyncio.ensure_future with asyncio.create_task
# Meta
- Improve README, badges, new text, more links
- Update install.txt with instructions for guix (Thanks Raghav)
- Remove references to dev.louiz.org. Everything is happening at
lab.louiz.org.
* Poezio 0.13.1
# Bug fixes
- Contacts wont be seen playing games or music when they actually stop doing
so.
- /leave now toggles off the autojoin flag instead of removing the bookmark.
- Only add auotjoin on new bookmarks for synchronise_open_rooms on /join
- /affiliation displays things in the info win instead of directly in the room,
and additionally displays which room it refers to.
- List the correct required versions for package maintainers.
- Fix the AppStream manifest to get Flathub to accept it.
- Add a warning when the terminal doesnt support 256color mode.
- Display our own nick properly in messages received from MAM.
- Only send an unavailable presence on closing a room if we are joined.
- Dont display the current date for history messages received today.
- Fix marquee and dice plugin to use newer Last Message Correction format.
- Bookmarks tab properly displays bookmarks method (local/remote) and allows
to switch between them again.
2020-05-31 15:35:14 +00:00
- Updated manpages and added manpages built from the doc in the setup process.
Packagers need to run setup.py build_man to have them built.
2020-05-24 15:08:58 +00:00
2020-05-24 20:30:37 +00:00
# Forgotten additions
- Add a clean theme for light terminals, thanks Armael!
2020-05-24 14:48:10 +00:00
* Poezio 0.13
# Thanks
- madhur for the MAM code and various other fixes (GSoC 2019)
- Ge0rG for fixes in the reconnect and carbons code
- fiaxh for the nice SVG logo
Zash, PS Le Stang, Karthikeyan Singaravelan, Jonas Schäfer, Célestin Matte,
Andrey Utkin, root.
# Meta changes
- Packages: poezio is now packaged for Gentoo and Debian buster
(poezio v0.12.1)
- Source: the repository is now hosted at https://lab.louiz.org/poezio/poezio
# Breaking changes
- BREAKING: requires python3.7 (previously python 3.5)
- DEPRECATION: `load_log` configuration was removed
- DEPRECATION: `bookmark_on_join` configuration option was renamed
`synchronise_open_rooms`, and now defaults to true. This makes /join
automatically create a bookmark, use /leave to remove it
# New features and plugins
- `/impromptu <jid> [jid ..]` command to create a new chat with these persons
- `/scrollback` to scroll back to a specific line/message in the current window
- `/invite <jid> [jid ..]` command in single user chat does like `/impromptu`
creating a new MUC
- `/affiliation` command now returns the list of privileged users on the
current MUC when no argument is supplied
- `default_muc_service` configuration for replacing the server's default MUC
- `unique_prefix_tab_names` display option to show the shorter tab name
prefixes in the tab list
- `/list` defaults to `default_muc_service` when no argument is specified
- XEP-0392 support
- New Plugin: OMEMO (experimental) - lives as an external plugin at
https://lab.louiz.org/poezio/poezio-omemo
- New Plugin: Contact - queries an entity for contact addresses (XEP-0157)
- New Plugin: Upload - adds a `/upload <filename>` command in chats for HTTP
upload
- New Plugin: remove_get_trackers - Remove GET trackers from URLs in sent
messages.
- New Plugin: QR
# Under the hood
- Plugin API: `E2EEPlugin` is a new experimental API for message encryption
(used by the OMEMO plugin)
- Plugin API: plugins can now declare a string list of dependencies
- Plugin API: plugins can now be setup using a well-known setuptools entrypoint
- Reworked Tab handling
- Split Message rendering
- Typing improvements
# Minor changes (bugfixes)
- Properly advertize gaming status
- Improve error reporting to users
- Add SVG support for avatars
- Plugin: Disco - allow node to be specified
- Don't always treat carbons from biboumi as MUC-PMs (#3705)
- Read newer Last Message Correction rules while still reading older ones
(#3462)
- Allow /block and /unblock in ConversationTab (#3346)
- Experimental: Fetch archives (MAM) on scroll up in MUC (#3052)
- Allow /add in ConversationTab (#3395)
- Prevent Chat State Notifications from being stored in the archive (#3518)
- Rework MUC-PM Carbons handling (#3294)
- /scrollback (#3481)
- Read <delay/> in <subject/> (#3451)
- Only use MUC <subject/> in specific cases (#3452)
- Allow /reconnect in all tabs (#3471)
- Allow /embed in chat tabs (#3449)
- Allow /upload in chat tabs
- Properly identify MUC-PMs for normal messages and chatstates (#3491)
- /server_cycle: stricly match specified domain (#3412)
- Breaking: -v/--version previously for internal purposes now returns version
as expected (#3429)
- Improve highlighting regex (#3433)
- Generate static resource at first launch (#3400)
2018-08-14 18:01:54 +00:00
2018-08-13 20:56:06 +00:00
* Poezio 0.12
2016-10-09 16:23:10 +00:00
- Require Python 3.5, to add support for Python 3.7, use proper async
functions, use typing, italics formatting, FIXME
- Added support for XEP-0392 (Consistent Color Generation)
- Added support for XEP-0153 (vCard-Based Avatars) and XEP-0084 (User
Avatar) in the roster tab
- Added support for XEP-0363 (HTTP File Upload) for easy file transfer,
in the upload plugin with /upload
- Added support for XEP-0066 (Out of Band Data) for Conversations
compatibility when sharing images, in the embed plugin with /embed
- Removed support for XEP-0296 (Best Practices for Resource Locking),
to use all features available no matter what our contacts current
clients support
- Check for usable Unicode support on start
- Generate a device id on first start, and use it for our resource
- Display the public key hash instead of the certificates
- Handle carbons properly for private messages in rooms
- /bookmarks can now be used to rename tabs as you want
- Remove unexpected command completion based on command prefix
- Add an irssi theme
- Add a code plugin, which requires pygments
- Fix resource duplication on reconnect
- Misc fixes and improvements
2017-01-30 23:17:32 +00:00
* Poezio 0.11
- Implementation of XEP-0380
- Docker images
- Improved documentation
- GPG plugin fixes
- Added manpages for the utility scripts
- Misc fixes
2016-10-09 16:19:19 +00:00
* Poezio 0.10
2015-07-31 19:35:02 +00:00
- A lot of cleanup and refactor in order to use cython on the codebase
more easily.
- A new poezio_logs script to make logfiles more human-readable
- Substantial performance improvements
- Added a new confirmation tab and used it for cert warnings and XEP-0070
- Added support for XEP-0070 (HTTP request verification)
- Enabled carbons (XEP-0280) by default
- Added support for XEP-0198 (stream management)
- Added support for XEP-0352 (client state indication)
- Added support for XEP-0319 (last user interaction in presence)
- Add an 'eval_password' config option
- Add a marquee and dice plugins
- Add a bob plugin
- simple_notify plugin works in MUC too
- The reorder plugin can now /save_order
- Minor ui changes
- Many Bugfixes
2015-07-31 19:35:02 +00:00
* Poezio 0.9
- Use slixmpp instead of sleekxmpp, remove threads and locks
- Require python 3.4 for the input handling, event loop, xml parser,
and ssl API
- Due to the slixmpp move, /reconnect now works (ecf22cb)
2015-01-21 17:21:59 +00:00
- Add a check for broken python ncurses (1c5589b)
- Add a /reload command to reload the config (71f3848)
- Add a /color command to permanently set the color a nick (f7e7836)
2014-12-17 20:31:15 +00:00
- Add a /closeall command with a plugin, to cleanup the open tabs (ed7fe69)
- Add a /reorder command with a plugin to order the tabs based on a static
layout (8afbb44)
- Add a /set_default command which sets the value of an option back to its
default (9caa992)
2015-01-21 17:21:59 +00:00
- Use a deterministic algorithm to set the nickname colors by default (2452706)
- The users JID is now shown in the roster (a0a00d5)
2015-01-21 17:21:59 +00:00
- The screen_detach plugin now also detects tmux (21d8a3e)
- The autocorrect plugin now supports regular expressions (067ad58)
- Improve the XML tab with coloration, better filters, and filter chaining
(1cd0b4d)
2015-01-21 17:21:59 +00:00
- Allow the use of client X.509 certificates for authentication, and add
/certs, /cert_{add,disable,revoke,fetch} commands (00396c1)
- Stream errors are now displayed, which is more helpful to the user than
'connection failed' (5cd854f)
- The (system-wide) launch script is now a setuptools entry point that checks
dependencies (22f9b7a)
- XHTML-IM base64 embedded images are now extracted by default (a9f642f)
- New open_all_bookmarks option to let the user choose what to do with
bookmarks without autojoin (5a5d581)
- Store the server certificate fingerprint with SHA-512 (8d2408c)
- pipe_cmd plugin that allows simple remote control of poezio (4b0d9a2,
dc46286)
- /link now uses xdg-open (ba32d74)
- Display information about the XMPP features the contact supports (a1f86720,
2dafd6d5)
- make the data forms tab better (3858273, 7378ea9)
- Implement ad-hoc commands (bbc55fa)
- A change_title plugin changes the title of the terminal depending on the
current tab. Also, poezio is now "poezio" and not "python3" (c1d19fa,
48e59d3)
2015-01-21 17:21:59 +00:00
- The OTR plugin now implements SMP (96442e9)
- The OTR plugin now tries to interpret html by default (4e4ab56)
- The OTR plugin also has nicer and more informative messages (71ae29df,
f782516e, d7bbf339c, a0c5f95, 25e91b0)
- The interface will adapt if the terminal is too small (0caf941)
- Implement XEP-0184 (message delivery receipts) (5999b71)
- Better timezone handling (02d9fd9)
- Better alias plugin, with permanent alias storage (e80a90)
- poezio_gpg_export script to generate a config for the gpg plugin (8ec5671)
- improvements to dynamic tabs, information about jid lock/unlock (f7294b2,
5c9dd44, fba511e)
- irc plugin to use with biboumi (cf752c2)
- implementation of XEP-0012 - last activity (65c2473)
- errors.log contains a lot less stuff (695877b)
- tabs where the input is not empty will not be considered as "normal"
(52e6334, fe072a8)
- /bookmark * now preserves the order of the tabs (38061a6)
- /list on big servers should be much faster (7b446d9)
- /load and /unload can handle several plugins at once (0847643)
- nicks are no longer highlighted if they are inside another word (f58dfe2)
- /invite will now use the “direct” invitations of XEP-0249 when supported
(3221534)
- tabs where the other party is currently composing will have a particular
state (a784216)
- Implementation of room destruction (1f0ff4f)
- running theming.py and keyboard.py will be nicer and not pollute the output
afterwards (5012611, 1bd9f78)
- Bugfixes
2014-04-25 18:13:43 +00:00
* Poezio 0.8.1
- fix compilation with python 3.4
2014-02-22 13:27:31 +00:00
2014-02-22 00:41:19 +00:00
* Poezio 0.8
2014-02-16 00:27:43 +00:00
- Allow in-band password changing with /password
- Force c2s encryption until configured otherwise
- Allow users to set their cipher suites and ship one by default
- Autocorrect plugin that sends sed-like corrections
2013-08-09 23:50:03 +00:00
- /invite in a MUCTab now has the behavior one could expect
(inviting a specific JID to this MUC)
- Themes and plugins are now loaded using a set of paths instead
of only a specific directory.
- The OTR plugin has been completly rewritten
2013-08-02 21:37:13 +00:00
- The completion can now complete the current argument in the input,
instead of only the last one.
2013-06-18 18:38:53 +00:00
- Poezio now periodically pings the server to detect connection loss
- Improve the roster and the input (^R search, weechat-like
2013-06-09 13:48:09 +00:00
behaviour with long lines)
- Add a way to send text with multiple styles at the
same time.
- Background colors in themes are now fully supported (it
wasnt for information text and nick colors, mostly)
- The logs now use the mcabber format in order to improve tool
reuse (plus, our old log format wasnt parsable).
2013-04-13 20:59:37 +00:00
- The documentation now uses Sphinx/reST instead of AsciiDoc
2013-03-14 00:21:22 +00:00
- Add User Tune/Nickname/Mood/Activity/Gaming support
- More theming options
- Add xml:lang support
- Move to upstream sleekxmpp
- Add support for XEP-0296 (best practices for resource locking)
2013-06-09 13:48:09 +00:00
- Move the “config reload” signal to SIGUSR1 instead of SIGHUP
- Add a /disconnect command
- New style and API for /help
- Add a visual indicator of s2s errors in the roster
- Add an option (show_timestamps) to show message timestamps.
- Add an option (hide_user_list) to hide the user list in MUCs.
- Add a "reverse" theme option for highlight nicks that displays
the nick in reverse mode on highlight messages.
- Use get_wch() if available (introduced in python3.3) instead of our custom
way to read unicode input.
- Add an option to preload last logs into the conversation when opening a new tab.
- Introduce support for XEP 308, Last message correction
(http://xmpp.org/extensions/xep-0308.html).
- Rewrite the Executor class to make remote execution more reliable, and
command easier to write (without a lot of escaping to do).
- Increase roster speed a lot.
- Add option to sort the roster more precisely.
- Add an option to avoid gap in the tab numbering when closing a tab.
- Add a /move_tab command, to move tabs.
- Add simple communication blocking support
(http://xmpp.org/extensions/xep-0191.html).
- Add last activity support (http://xmpp.org/extensions/xep-0012.html).
- Add a /self command.
- Add a /runkey command.
- Support underlined text in the input with C-c u.
- Add support for /set <option> toggle, which toggles the current value, if
its a bool.
2012-12-30 16:47:47 +00:00
- Add a couple of (useless) funny plugins.
- New display of message errors/headlines
- bugfixes
2012-08-24 18:19:37 +00:00
* Poezio 0.7.5.1 & 2 - Summer 2012
- Fix tracebacks caused by a change in Sleekxmpp
* Poezio 0.7.5 - 25 May 2012
- Plugin system
2012-08-24 18:19:37 +00:00
- Server-side bookmarks
- New keyboard shortcuts tuning options
- New keyboard shortcuts
- Attention support
- Invitation support
- Improved contact management
- New tab list
- Certificate check (TOFU model)
- New commands for sending stanzas manually
- bugfixes
2011-07-04 20:38:28 +00:00
2011-11-08 22:48:32 +00:00
* Poezio 0.7.2 - 08 Nov 2011
2011-11-08 03:57:40 +00:00
- Huge speed improvements in both memory usage, text
refresh speed and interface resize.
2011-03-02 00:31:20 +00:00
- Chatstate notifications (in private AND in MUCs)
- /message command to talk to any JID
2011-03-15 22:40:54 +00:00
- /version command to get the software version of an entity
2011-07-03 00:41:09 +00:00
- /bind command, and keys can be bound in the config file
2011-03-02 00:31:20 +00:00
- Multiline edition
2011-11-08 03:57:40 +00:00
- xhtml-im messages can be sent and received
- 256 colors support
- themes are easier to create and load. They can use
up to 256 colors
- completion now works not only at the end of the input
- /affiliation and /role commands to administrate MUCs
- /export command to export your roster in a file
- data forms support (only for room configuration at the moment)
2011-11-08 04:14:27 +00:00
- documentation is now written in asciidoc format
2011-11-08 03:57:40 +00:00
- a *lot* of bugfixes
2011-03-02 00:31:20 +00:00
2011-07-04 20:38:28 +00:00
2011-11-08 22:48:32 +00:00
* Poezio 0.7.1 - 2 Feb 2011
2011-01-31 13:15:56 +00:00
- /status command to globally change the status
- /win command now accepts part of tab name as argument
- bugfixes
2011-07-04 20:38:28 +00:00
2011-11-08 22:48:32 +00:00
* Poezio 0.7 - 14 jan 2011
Codename ”Koshie & Mathieui”
2011-01-12 20:08:17 +00:00
- Library changed from xmpppy to SleekXMPP
- Python 3 only
2010-11-15 11:59:09 +00:00
- Introduce the roster
- One to one conversations
- Roster search
2011-01-12 20:08:17 +00:00
- Add/remove/accept/deny contact in the roster
2010-11-15 11:59:09 +00:00
- Resizable mini-buffer displaying various informations
- All colors can be changed with a theme file
- Command auto-completion
2010-11-15 11:59:09 +00:00
- /say and // commands
- /recolor command, changing the nick's colors in a MUC
- /list command lets the user browse the MUCs on a server
2010-08-09 00:30:20 +00:00
- Warn user about publicly logged rooms
- Possibility to limit the number of history messages received from MUC
- auto-rejoin when kicked from a MUC
- The number of lines available to scroll down is displayed
- Possibility to use a modified nickname automatically when a nick is reserved
- A line separates the alread-read messages from the new messages
2010-08-22 16:35:02 +00:00
- Information messages are more colored
- Man page added
- bugfixes
2010-08-22 16:34:14 +00:00
* Poezio 0.6.2 - 21 Jul 2010
- Lines are now broken between words and not in the middle of them
- /unquery command
- default nickname is now $USER
- Server on /join command can be omitted
- /query command can now take a message in parameters
- logs are now save in $XDG_DATA_HOME and this can be configured
- Available users now have a greater priority on nickname completion
2010-07-08 21:31:02 +00:00
- utf-8 characters (from the keyboard) are now completely supported
- Many new keyboard shortcuts (move the cursor, edit the line, switch tabs...)
- DESTDIR support in Makefile is fixed
- Completion on recently said words
- /join command now takes the current server if not specified in the parameters
- Many Bugfixes
2010-06-13 19:02:39 +00:00
* Poezio 0.6.1 - 13 Jun 2010
- Enable tracebacks
2010-07-08 21:31:02 +00:00
2010-06-13 19:02:39 +00:00
* Poezio 0.6 - 13 Jun 2010
2010-06-13 13:51:02 +00:00
- Private messages are handled
2010-05-21 13:49:35 +00:00
- Muc error messages are displayed
- Nickname auto-completion
- Users status are displayed in the MUC user-list
- Non-anonymous connection (registered nickname can now be used)
- An avatar can be set
- A minimal Vcard can be set
- Proxies are handled
- Status changes can be hidden if the user didn't talk for a long time
- A line displays informations about rooms we are in (new messages, hl, etc)
- Highlights are handled (we can specify a list of words)
- Various new commands (topic, kick, set, win)
- Password-protected MUCs are handled
- The dates of room history are handled
- The way the text is displayed on the screen has been rewritten, this fixes
the blink and the slowness-over-ssh problems.
2010-06-13 13:51:02 +00:00
- User lists are ordered
- Messages can be logged in files
- Status changes displays only what has really changed
- Users can be ignored (/ignore, /unignore)
2010-05-21 13:49:35 +00:00
- Various Bugfixes
2010-07-08 21:31:02 +00:00
2010-05-21 13:49:35 +00:00
* Poezio 0.5.1 - 2 Feb 2010
2010-07-08 21:31:02 +00:00
- Little bugfix release
2010-05-21 13:49:35 +00:00
2010-07-08 21:31:02 +00:00
* Poezio 0.5 - 1 Feb 2010
- Initial release