Tags give the ability to mark specific points in history as being important
  • slix-1.8.4
    bcbc7281 · Release 1.8.4 ·
    slixmpp 1.8.4 release
    Thanks to all contributors & maintainers for this release, most notably to [nicoco](https://nicoco.fr/) who has made most of the changes, and got commit access to the project in the hope he can integrate the changes he needs for the [Slidge]
    (https://slidge.im/) project more easily.
    This releases fixes the compatibility with Python 3.11, and should still be compatible with Python 3.7, but it will likely be the last release with support.
    * Breaking changes
    No changes on the public API in this release should be breaking. Internally, one thing of note is that the `slixmpp.plugins.__all__` array is no longer misused for holding the available plugins list. Unless external code manipulates or refers to this array, it should not be impacted.
    * New plugins
    for most of them, just the `Stanza plugins`
    XEP-0234: Jingle file transfer
    XEP-0292: Vcard4 over xmpp
    XEP-0372: References
    XEP-0385: Stateless inline media sharing
    XEP-0402: PEP native bookmarks
    XEP-0447: Stateless file sharing
    * Improvements
    - OptJidStr and BasePlugin are now listed in `__all__`,
    so that linters don't complain when they are imported
    - Can now take an additional 'by' attribute
    - Use typing.Literal for conditions
    - (optionally) Use the jabber:component:accept with ComponentXMPP
    - `__init__`: optional bare argument to clear resource
    XEP-0050 (Ad-Hoc Commands): allow functools.partial-wrapped coroutines for handlers
    XEP-0461 (Message Replies):
    - Helper methods to set and get fallback text
    XEP-0377 (Spam Reporting):
    - Update to latest spec
    * Fixes
    - Message.reply(): do not use bare JID for the reply recipient
    XEP-0027 (Current Jabber OpenPGP Usage):
    - Ensure that we operate on the correct python type when parsing gpg data
    XEP-0030 (Service Discovery):
    - Allow passing extra Iq arguments (e.g. timeout, etc)
    - Python 3.11 compatibility (asyncio.wait only accept tasks)
    - Get_items(): always set a 'from' attribute for ComponentXMPP
    - Get_items(): fix local calls
    XEP-0045 (Multi-User Chat):
    - Remove debug print
    XEP-0054 (vcard-temp):
    - Reply with item-not-found when no vcard-temp is set, instead of raising AttributeError
    XEP-0077 (In-Band Registration):
    - Allow the register stanzas before session is started
    XEP-0461 (Message Replies):
    - Use integers for fallback character counting
    - Fix character counting for fallback
    - Use new namespace for fallback
    XEP-0115 (Entity Capabilities):
    - Fix a missing await statement that led to a traceback
  • slix-1.8.3
    752f4258 · Release 1.8.3 ·
    Release slix-1.8.3
    Slixmpp 1.8.3 release
    - Fix CVE-2022-45197: missing certificate hostname validation
  • slix-1.8.2
    Release slix-1.8.2
    slixmpp 1.8.2 release
    - Improve error handling for certificate errors
    - Add an XEP-0454 implementation (OMEMO Media sharing)
    - Fix support for RFC 3920 sessions
  • slix-1.8.1
    Release slix-1.8.1
    slixmpp 1.8.1 release
    Fix a mypy issue, a test issue, and do not enable defusedxml unless
    explicitly asked.
  • slix-1.8.0
    Release slix-1.8.0
    slixmpp 1.8.0 release
    Slixmpp 1.8.0 is out, thanks to pep., Link Mauve, mathieui, Nicolas Cedilnik,
    Tim-Oliver Husser, southerntofu as well as the various people who run slixmpp
    and report bugs!
    The most important part of this release is that it fixes compatibility with
    python 3.10, but there are also plenty of changes and bugfixes!
    Many XEPs have been modified to accomodate an internal change, and as a
    result their public APIs have been modified. Slixmpp has an "internal API"
    for plugins, inherited from SleekXMPP which allows users of the library to
    substitute internal functions with their own, in order to e.g. provide a
    different storage backend (many default to in-memory), etc. This API has
    always been synchronous, which is not ideal in an asyncio library, and puts
    huge limits on what is possible to do.
    This change makes it possible to use async functions with the internal API,
    and as a result it forces us to change XEPs using this API to async in the
    relevant methods.
    As a rule of thumb, thin wrappers around del/set are generally preserved and return a
    future to guarantee that the task is done, while getters (which would require awaiting
    anyway when returning a future) are now pure coroutines. This inconsistency is a
    tradeoff to prevent wider changes across slixmpp internals and programs using it.
    - XEP-0012, Last Activity:
        - `begin_idle`, `end_idle`, `start_uptime`, `set_last_activity`,
          `del_last_activity` now return futures.
    - XEP-0027: GPG
        - `get_keyids` and `get_keyid` are now coroutines.
        - `set_keyid` and `del_keyid` now return a Future.
    - XEP-0030: Disco
        - `supports`, `has_identity`, `get_info`, `get_items` are now coroutines
        - `set_info``set_items`, `del_items`, `add_item`, `add_identity`,
          `del_identity`, `set_identities`, `del_identities`, `add_feature`,
          `del_feature`, `set_feature`, `set_features`, `del_features`
          now return a Future
    - XEP-0054: Vcard-Temp
        - `get_vcard`, `publish_vcard` are now coroutines.
    - XEP-0095: Stream Initiation
        - `accept` and `decline` are now coroutines.
    - XEP-0115: Entity Capabilities
        - `get_verstring`, `get_caps` are now coroutines.
        - `assign_verstring`, `cache_caps` now return a Future.
    - XEP-0128: Extended disco
        - `set_extended_info`, `add_extended_info` and `del_extended_info` return Futures.
    - XEP-0231: BoB
        - `get_bob` and `set_bob` are now coroutines.
        - `del_bob` returns a Future.
    - XEP-0319: Idle
        - `idle` and `active` are now coroutines.
    XMLStream.process() is now deprecated, and will be removed in the next version.
    This shorthand makes things more confusing for new users, and complicates
    integration with other asyncio libraries.
    - If defusedxml is available, it will be used, to mitigate XML parser vulns
    - `XMLStream.ca_certs` should be a list of paths to the CA certificates
    Nicoco (Nicolas Cedilnik) contributed an implementation of XEP-0356
    (privileged entities), and XEP-100 (gateway interaction).
    The Form element (`{jabber:x:data}x`) can now be accessed properly if their are
    several available in a parent element, through a 'forms' multi attribute.
    - Add an async join method (returns once the rooms is properly joined, or
      raises on error).
    - Deprecate the old join_muc() API
    Nicoco added the possibility to register with components to the existing
    XEP-0077 implementation.
    - MAM preferences have been split into an XEP-0441 plugin.
    - Tests have been added
    - An `iterate()` method has been added, which should be easier to use.
    - XEP-0369: add events for participant and channels
    - XEP-0405: Add a method to retrieve annotated roster items
    - Add a simple MIX bot
    - Make `StanzaBase.get_plugin` a public API, so that slixmpp users can check
      for the existence of a substanza without risking to create it.
    - Change the sphinx theme to [Furo](https://github.com/pradyunsg/furo) which
      has a dark mode, and looks good. See
    - Improve the toctree to be more logical
    - Update obsolete documentation and tutorials (and add some)
    - Update the event index
    - Add the proper XEP title instead of the number to the index, for easier
      discovery and search.
    More integration and stanza/stream tests have been added, which gives us
    more confidence on the overall stability.
    The HTTPUpload example has been updated to include an oob reference, because
    many people were reusing the code as-is and wondering why clients were not
    displaying their images inline.
    A lot of work in this release has been to incrementally type the internals of
    slixmpp as well as the public interfaces, to make it easier to validate changes
    and integrate seemlessy with the various IDEs and typecheckers. It is still
    very much a work in progress, in part due to the dynamicity of the API, but
    it should help catch some errors.
    The library now ships with a py.typed file to indicate that it is shipping
    type annotations.
  • slix-1.7.1
    24375f3c · Release slix 1.7.1 ·
    Release slix-1.7.1
    slixmpp 1.7.0 release
    Fix an issue with the slow coroutine filters rescheduling.
  • slix-1.7.0
    Release slix-1.7.0
    slixmpp 1.7.0 release
    New plugins:
    - XEP-0382: spoiler messages
    Fixes and improvements:
    - Fixes one critical bug of 1.6.0 preventing any reconnect
    - Also change lots many things in the way connects and disconnects
      are handled
    - Improvements to XEP-0199 to handle disconnects better
    - Improvements to XEP-0198
    - Improvements to XEP-0045 (more available stanza elements,
      typing issues, new helpers)
    - Documentation fixes to update code that would only work with
    Thanks to everyone for this release!
  • slix-1.6.0
    Release slix-1.6.0
    slixmpp 1.6.0 release
    New plugins:
    - XEP-0353: Jingle Message Initiation
    - XEP-0359: Unique and stable stanza IDs
        - This was already partially implemented
    - XEP-0369: MIX-Core
    - XEP-0377: Spam reporting
    - XEP-0403: MIX-Presence
    - XEP-0404: MIX-Anon
    - XEP-0405: MIX-PAM
    - XEP-0421: Anonymous unique occupant identifiers for MUCs
        - Was already present as "protoxep_occupantid" in a different version
    - XEP-0422: Message Fastening
    - XEP-0424: Message Retraction
    - XEP-0425: Message Moderation
    - XEP-0428: Fallback Indication
    - XEP-0437: Room Activity Indicators
    - XEP-0439: Quick response
    - XEP-0444: Message Reactions
        - Was already present as "protoxep_reactions" in a different version
    Many of those extensions are **experimental** and the specification is
    subject to change, which is to keep in mind when using them.
    Note: A new dependency, "emoji" is required for XEP-0444, and has been added
    to extras_require, where "aiohttp" (only required for XEP-0363) has been moved
    Fixes & Improvements:
    - XEP-0045:
        - Split file into its own package, better structure, cleanup, stanza elements… (pep)
        - rewrote broken function as coroutines, more elements (mathieui)
    - XEP-0047: Fix the max sequence number (mathieui)
    - XEP-0115: Add missing "from" attribute to disco for components (aearil)
    - XEP-0333: add missing feature to session (mathieui)
    - XEP-0352: enable the feature only on clientxmpp (Link Mauve)
    - XEP-0363: added missing callback on upload request (cnngimenez)
    - First integration tests (mathieui)
    - Cancel filters on disconnect (ehendrix23)
    - English and Polish custom plugin tutorials (Hoacyn)
    - Removal of unused things due to python3.7 (Link Mauve)
    - Doc improvements with the addition of the plugins (mathieui)
    Deprecation notice:
    When moving from sleekxmpp to slixmpp, many functions were kept in place but
    instead returning a future (returned with iq.send()). Going forward, many of
    those will instead be coroutines. This is necessary in order to provide better
    return values (instead of leaving it up to the library user to fetch the elements
    manually from stanzas. Most of the newly added XEPs work this way, and the previously
    broken functions from XEP-0045 are now also coroutines.
    It means calling for example ``self.xmpp.plugin['xep_0045'].set_role()`` without
    awaiting on the result has **no effect**.
    tl;dr: **await coroutines**
    Thanks to all maintainers and contributors for this release!
  • slix-1.5.2
    c7bd2241 · Update version to 1.5.2 ·
    Release slixmpp 1.5.2
    - Bugfixes for httpupload & muc
  • slix-1.5.1
    0dd32be7 · Update version to 1.5.1 ·
    slixmpp 1.5.1
    Fix a bug (behaviour change) when stanzas were still queued and
    disconnect() was called
  • slix-1.5.0
    3dcb96d9 · Update version to 1.5.0 ·
    slixmpp 1.5.0 release
    - Add ids to presences and messages by default
    - Fix various issues in connection/disconnection
    - Code improvements (typing, deprecation warnings)
    - Fix or improvements for the following XEPS:
        - XEP-0045
        - XEP-0048
        - XEP-0050
        - XEP-0059
        - XEP-0082
        - XEP-0196
        - XEP-0198
        - XEP-0202
        - XEP-0279
        - XEP-0332
        - XEP-0313
        - XEP-0323
        - XEP-335
        - XEP-0380
    - New XEPs:
        - XEP-0359 (origin-id)
        - Groundwork for the OMEMO (XEP-0384) plugin, which has been put in
          a separate repository due to licensing issues:
    Many thanks to all first-time and recurring contributors!
    Special thanks to pep. for being the most active of the maintainers
    and for the OMEMO work, to Madhur Garg (GSoC student) for fixing the
    MAM and RSM implementation, and to Georg for trying to fix the
    connection shenanigans.
  • slix-1.4.2
    9d378c61 · Release 1.4.2 ·
    Release slixmpp 1.4.2
    - Do not do channel binding without TLS
    - Add default timeout of 120s for IQs (prevent slowdowns)
    - Fix CVE-2019-1000021
    - Do not query vcard avatars unconditionnally
    - Fix GSSAPI (Jelmer Vernooij)
  • slix-1.4.1
    570e653a · Release slixmpp 1.4.1 ·
    Slixmpp 1.4.1
    Adds an aiohttp depency, fixes bugs with multiple event loop support and
  • slix-1.4.0
    35fa33e3 · Release slixmpp 1.4.0 ·
    Release slixmpp 1.4.0
    Important changes:
    - Dropped python 3.4 compatibility (async/await syntax)
    - Fixed Python 3.7 compatibility
    - Improved examples
    - Many bugfixes
    Thanks to all contributors!
  • slix-1.3.0
    d73f56a7 · Release slixmpp 1.3.0 ·
    slixmpp 1.3.0
    - Add a Markup (XEP-0394) plugin
    - Add a Hashes (XEP-0300) plugin
    - Update (and fix) MAM (XEP-0313) for mam:2
    - Fix RSM
    - Fix (or at least improve) and egregious connection issue
    - Various fixes and improvements
  • slix-1.2.4
    24f35e43 · slixmpp 1.2.4 release ·
    1.2.4 release
  • slix-1.2.3
    fb3ac78b · slixmpp 1.2.3 ·
    slixmpp 1.2.3, to fix tests
  • slix-1.2.2
    53191ff1 · slixmpp 1.2.2 ·
    slixmpp 1.2.2 release to fix CVE-2015-8688
  • slix-1.2.1
    36824379 · slixmpp 1.2.1 ·
    slixmpp 1.2.1 release
    Fixes a few bugs and the testsuite, and remove the asyncio event loop
    monkeypatching hack.
  • slix-1.2
    187c3508 · Update for slixmpp 1.2 ·
    slixmpp 1.2 release (02-10-2016)