Skip to content

Releases: qxmpp-project/qxmpp

QXmpp 1.2.0

10 Feb 19:35
v1.2.0
e32f3c6
Compare
Choose a tag to compare

Changelog

QXmpp now requires Qt 5.7 or later. Unfortunately ABI compatibility was not
kept this release again. Code coverage has been improved from 68.93% to 69.55%.

New features:

  • Implement XEP-0077: In-band registration:
    • Add registration manager with full unit tests (#248, @lnjX)
    • Add registered and remove to the IQ (#240, @lnjX)
  • Implement XEP-0231: Bits of Binary (#230, @lnjX)
  • Add QXmppClient::indexOfExtension<T>() (#241, @lnjX)
  • Add QXmppStartTlsPacket to replace fixed XML data (#236, @lnjX)
  • Move TLS code to private QXmppTlsManager (#236, @lnjX)
  • Add private QXmppInternalClientExtensions to access private part of the
    client (#243, @lnjX)
  • Add utility methods to QXmppRegisterIq to create common requests (#247, @lnjX)

Fixes:

  • QXmppMucManager: Make it possible to handle stanzas not handled by the
    manager (#226, @kollix)
  • Only send Client State Indication (CSI) states when connected (#232, @lnjX)
  • Fix no documentation is generated for QXmppStanza::Error and
    QXmppStreamFeatures (@lnjX)
  • Fix some doxygen warnings and undocumented Q_PROPERTYs (@lnjX)

Misc:

  • Replace deprecated Q_FOREACH (#210, @lnjX)
  • Replace deprecated Q_ENUMS with Q_ENUM (#227, @lnjX)
  • Replace deprecated signal/slots syntax (#237, @jbbgameich)
  • Switch to Ubuntu Bionic for Travis-CI builds (#210, @lnjX)
  • Use QSharedDataPointers for QXmppRegisterIq, QXmppPubSubIq,
    QXmppDiscoveryIq, QXmppMam{Query,Result}Iq, QXmppStreamFeatures
    (#230, #235, #252, @lnjX)
  • Refactor QXmppPubSubIq and add missing tests (#235, @lnjX)
  • Refactor QXmppPresence and add missing tests (#231, @lnjX)
  • Replace manual xmlns writing by writeDefaultNamespace() (#244, @lnjX)
  • Use QT_VERSION_CHECK to generate QXMPP_VERSION (#238, @lnjX)
  • Add clang-format file (#239, @0xd34df00d)

QXmpp 1.1.0

01 Apr 10:56
v1.1.0
Compare
Choose a tag to compare

All new classes and methods in this release are marked in the documentation
with since QXmpp 1.1.

New features:

  • Add support for SCRAM-SHA-1 and SCRAM-SHA-256 (#183, @jlaine)
  • Order SASL mechanisms to prefer the most secure (#187, @jlaine)
  • Add XEP-0334: Message Processing Hints (v0.3.0) (#212, @lnjX, @jaragont, @sam-truscott)
  • Add XEP-0363: HTTP File Upload (v0.9.0) (#188, @lnjX)
  • Add XEP-0367: Message Attaching (v0.3.0) (#196, @lnjX)
  • Add XEP-0369: Mediated Information eXchange (MIX) (v0.14.2) (partially):
    • Add QXmppMixIq to manage/join channels (#174, @lnjX)
    • Add QXmppMessage and QXmppPresence extensions for MIX (#175, @lnjX)
    • Add channel info and participant PubSub/PEP items (#179, @lnjX)
  • Add XEP-0380: Explicit Message Encryption (v0.3.0) (#199, @lnjX)
  • Add XEP-0382: Spoiler messages (v0.2.0) (#195, @lnjX)

Fixes:

  • Do not accept receipts from other resources of the used account (#192, lnjX)
  • cmake: Set minimum version before creating project() and bump to 3.3 (#205, @jbbgameich)

Deprecations:

  • Deprecate QXmppClient extension getters (#214, @lnjX):
    • QXmppClient::rosterManager(): Use QXmppClient::findExtension<QXmppRosterManager>() instead
    • QXmppClient::vCardManager(): Use QXmppClient::findExtension<QXmppVCardManager>() instead
    • QXmppClient::versionManager(): Use QXmppClient::findExtension<QXmppVersionManager>() instead
  • Refactor data form media element, deprecate QXmppDataForm::Media (#222, @lnjX):
    • QXmppDataForm::Media: Use a list of the new QXmppDataForm::MediaSource in combination with a QSize
    • QXmppDataForm::Field::media() / QXmppDataForm::Field::setMedia(): Use QXmppDataForm::Field::mediaSources() and QXmppDataForm::Field::mediaSize()

Misc:

  • Replace deprecated qSort() by std::sort() (#206, @jbbgameich)
  • Do not use deprecated QSslSocket::setCaCertificates() (#206, @jbbgameich)
  • Modernize code by using nullptr, override, etc. (#204, @jbbgameich)
  • Move attributes into private d-pointer for future ABI compatibility:
  • Use raw literals, range based loops and auto (#224, @jbbgameich)

QXmpp 1.0.1

01 Apr 10:57
4ef390c
Compare
Choose a tag to compare
  • Fix potential SEGFAULT on connection error (#216, @0xd34df00d)
  • Fix SO_VERSION to 1: ABI has changed since last minor release (#185, @tehnick)
  • Add CMake option for internal tests (BUILD_INTERNAL_TESTS) (#184, @jlaine)

QXmpp 1.0.0

01 Apr 10:57
v1.0.0
Compare
Choose a tag to compare

New features:

Fixes:

  • Do not ignore SSL errors by default (#113), if you need to deal with
    broken SSL configurations, set QXmppConfiguration::ignoreSslErrors to true.
    (@jlaine)
  • Disable tests that require QXMPP_AUTOTEST_EXPORT (fixes #149) (@jlaine)
  • Fix QXmppSslServer::incomingConnection signature (#131, @olesalscheider)
  • Add missed variables initialization in constructors of few classes
    (#122, @tehnick)

Tests:

  • travis: Test builds with clang (@0xd34df00d)
  • travis: Switch to Ubuntu Xenial (#151, @tehnick)
  • tests: Generate coverage repot (@jlaine)
  • Build examples by default

Deprecations:

QXmpp 0.9.3

01 Apr 10:57
Compare
Choose a tag to compare
  • Add QXmppIceConnection::gatheringState property.
  • Improve QXmppTransferManager::sendFile's handling of QIODevice ownership.
  • Fix QXmppTransferManagerFix convering filename to a QUrl.

QXmpp 0.9.2

01 Apr 10:58
Compare
Choose a tag to compare
  • Fix build error for debug builds.
  • Allow QXmppJingleIq to have multiple contents.

QXmpp 0.9.1

01 Apr 10:58
Compare
Choose a tag to compare
  • Fix build error when VPX support is enabled (issue 71).

QXmpp 0.9.0

01 Apr 10:59
Compare
Choose a tag to compare
  • Fix phone numbers incorrectly read from / written to vCard as "PHONE" element instead of "TEL" (#65).
  • Make QXmppClient::connectToServer(QXmppConfiguration, QXmppPresence) a slot (#63).
  • Correctly receive data immediately following a SOCKS5 message (#64).
  • Make QXmppStream handle end of incoming stream (#70).
  • Add unit tests for QXmppCallManager and QXmppTransferManager.
  • Improve ICE implementation to follow RFC 5245 more closely and hide implementation details from public API.