-
-
Notifications
You must be signed in to change notification settings - Fork 13.2k
ejabberd 25.10 #251593
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ejabberd 25.10 #251593
Conversation
|
|
Hi, that In any case, this information may be relevant: In ejabberd 25.08 and previous versions, when This has changed recently in ejabberd 25.10 (in commit processone/ejabberd@fb572bf). Now, when My hypothesis: maybe for old ejabberd versions |
b4aff51 to
9bdbbc0
Compare
|
🤖 An automated task has requested bottles to be published to this PR. Caution Please do not push to this PR branch before the bottle commits have been pushed, as this results in a state that is difficult to recover from. If you need to resolve a merge conflict, please use a merge commit. Do not force-push to this PR branch. |
|
The test code recently committed starts ejabberd, waits 1 second and then tests ejabberd is running: This may fail if the system is busy and ejabberd takes a few seconds to start. An alternative solution would be to use "ejabberdctl started", that checks every 2 seconds if ejabberd has started, and waits up to 30 seconds. Something like this: |
Created by
brew bumpCreated with
brew bump-formula-pr.release notes
If you are upgrading from a previous version, there are no mandatory changes in SQL schemas, configuration, API commands or hooks.
Other contents:
archive_muc_as_mucsubinmod_mammaybeexpressionNewSQL schema toMultihost, andDefaulttoSinglehostBelow is a detailed breakdown of the improvements and enhancements:
New option archive_muc_as_mucsub in mod_mam
When this option is enabled incoming groupchat messages for users that have MucSub subscription to a room from which message originated will have those messages archived after being converted to mucsub event messages.
Removed support for Erlang/OTP older than 25.0
The ejabberd 24.12 release announcement explained that support for Erlang/OTP older than 25.0 was discouraged, it would be deprecated in future releases, and completely removed sometime after ejabberd 25.01. That explanation was mentioned several times in the subsequent ejabberd releases.
The initial reason to require Erlang/OTP 25 was that this version is the lowest we can easily use nowadays for running the CI tests.
Other reasons to remove support for Erlang lower than 25 are: to support
maybeexpression, and to remove duplicate code.In order to support both new and very old Erlang/OTP versions, ejabberd source code included many duplicate code. All that duplicate code that is nowadays useless will be removed in a future ejabberd release.
Support for the new Erlang 'maybe' expression
The new
maybeexpression is supported since Erlang/OTP 25 (requires being enabled), and it is enabled by default since 27.Now that ejabberd requires Erlang/OTP 25, and it enables the
maybeexpression, this can be used freely in ejabberd source code and modules.See:
maybeExpressionRename 'New' SQL schema to 'Multihost', and 'Default' to 'Singlehost'
When ejabberd first got support for SQL storage, it only supported one vhost, so it made sense to not store the host in the SQL tables. Additionally, the SQL schema in ejabberd followed that of jabberd14, which didn't support multiple vhosts either.
When ejabberd got support for multiple vhosts, if several of them want to use SQL storage, the solution is to configure a different SQL database for each vhost using the
host_configtoplevel option.However, when there are many vhosts configured in ejabberd, all of them using SQL storage, it is preferable to setup one single SQL database, and store the vhost in the tables. When that feature was added to ejabberd, it got the name of "new SQL schema". And the previous SQL schema was called "legacy", "old", and nowadays "default".
The problem with the terms "default" and "new" is that they are circumstantial, and do not really describe the schema features or purposes.
Now those terms have been renamed:
Right now all names are supported, the previous (obsolete) and the renamed (preferred). No changes are needed in your existing configuration file or building instructions, but it is preferable if you can update your setup to the new terms:
When preparing configuration, the old and new arguments are:
When configuring ejabberd, the old and new toplevel options are:
When developing source code, the old and new functions are:
New API Commands
Several ejabberd modules implement new API Commands, most of them inspired by XEP-0133:
ejabberd_admin:Added more Ad-Hoc Commands from XEP-0133
XEP-0133 describes 31 administrative tasks that should be available as ad-hoc commands.
ejabberd already implemented many of those ad-hoc commands in mod_configure, but there were a few missing that nowadays are fairly easy to implement: this new ejabberd release supports all of them... except 5.
The five ad-hoc commands from XEP-0133 that are not supported are:
6. Get User Password, because it was already retracted in the XEP and should not be implemented12. Edit Whitelist, because the corresponding feature is not implemented in ejabberd27. Set Welcome Message, because in ejabberd this message is set in the configuration file, optionwelcome_messageof mod_register28. Delete Welcome Message, for similar reason29. Edit Admin List, because in ejabberd the administrative rights to accounts are granted in the configuration file, toplevel optionacl.On the other hand, ejabberd implements more than 200 API commands in all over its source code, providing those and many other administrative tasks. And you can execute those API commands using the command line, ReST calls, XML-RPC, WebAdmin, ... and ad-hoc commands too!!! See the available API frontends.
Nowadays, all the ad-hoc commands described in XEP-0133 have a similar API command in ejabberd that you can execute using ad-hoc commands too:
welcome_messagein mod_register)welcome_messagein mod_register)acl)Status legend:
Updated support for XEP-0317 Hats
Support for XEP-0317 Hats is improved from 0.2.0 to the latest 0.3.1.
Previously, the XEP lacked some use cases, and ejabberd implemented them as custom additional features, as documented in MUC Hats. Now that the XEP includes all those additions, ejabberd strictly follows XEP-0317 version 0.3.1.
Improved GitHub Workflows
The ejabberd git repository contains several GitHub Workflows to test automatically the source code with static and dynamic tools, build installers and containers.
Those workflows recently got several improvements:
With all those improvements, the workflows complete (or give some error report) in less than 10 minutes, instead of the 30 minutes that were common before.
For details about those changes, check PR 4460
Acknowledgments
We would like to thank the contributions to the source code provided for this release by:
push_send_notificationhookAnd also to all the people contributing in the ejabberd chatroom, issue tracker...
Improvements in ejabberd Business Edition
Customers of the ejabberd Business Edition, in addition to all those improvements and bugfixes, also get the following changes:
bulk_roster_updateAPI command now accept a list of groups.mod_dedupmodule has been improved to handle received markers. This module was added in 4.2508 to prevent both delivery and storage of duplicates in archive.ChangeLog
This is a more complete list of changes in this ejabberd release:
Ad-hoc Commands
mod_configure: New ad-hoc commands that were missing from XEP-0133mod_adhoc_api: Add support for asynchronous command callingmod_adhoc_api: If argument is a list of jids, type isjid-multimod_adhoc_api: If field has several values, type istext-multiAPI Commands
binary_or_listmod_http_api: Format sub elements for tuples from mapsmod_admin_extra: Improve roster API commands documentationmod_announce: New API commands, reusing existing ad-hoc functionsejabberd_admin: New API commandrestart_kindly, improvestop_kindlymod_admin_extra: New API commandslist_bannedandcount_bannedmod_admin_extra: Improve API commandstatus_list: support for status to be a listmod_muc_admin: New API commandsmuc_get_registered_nickand nicks (#4468)mod_private:del_datainunban_accountAPI commandConfiguration
NewSQL schema toMultihost, andDefaulttoSinglehost(#4456)use_new_schema->sql_multihost_schemamod_sip: Fix problem parsingviainyconflibrary (#4444)Erlang/OTP support
maybe_exprin the compiler for Erlang/OTP 26 (#4459)maybe_expralso in the runtime for Erlang/OTP 25maybe_exprEX_RULEandEX_STACKmacros only used with ancient erlangGitHub Workflows
Installers and Containers
MUC
mod_mam: New optionarchive_muc_as_mucsubmod_muc: Check if room is hibernated before calling mod_muc processmod_muc: Update implementation of XEP-0317 Hats to version 0.3.1 (#4380)mod_muc: Make mod_muc_sql properly handle new hats data (#4380)mod_muc_room: Don't require password if user is owner of roommod_muc_admin: Use in WebAdmin the new API commands that get nick registersCore and Modules
ejabberd_http_ws: Pass HTTP headers from WS to C2S connection (#4471)ejabberd_listener: Properly passsend_timeoutoption to listener socketsejabberdctl: When ping returns pang, return also status code 1 (#4327)ext_mod: Print module status message after installationmisc: json_encode should always call json with our filtermod_admin_update_sql: Use same index name than when creating databasemod_block_strangers: Clarifyaccessandcaptchadocumentation (#4221)mod_http_upload: Encode URL before parsing, as done beforebba1a1e3c(#4450)mod_private: Adddel_data/3,get_users_with_data/2,count_users_with_data/2mod_pubsub: Don't catchexit:{aborted, _}inside mnesia transactionsmod_push: Run new hookpush_send_notification(#4383)Full Changelog
processone/ejabberd@25.08...25.10
ejabberd 25.10 download & feedback
As usual, the release is tagged in the Git source code repository on GitHub.
The source package and installers are available in ejabberd Downloads page. To check the
*.ascsignature files, see How to verify ProcessOne downloads integrity.For convenience, there are alternative download locations like the ejabberd DEB/RPM Packages Repository and the GitHub Release / Tags.
The
ecscontainer image is available in docker.io/ejabberd/ecs and ghcr.io/processone/ecs. The alternativeejabberdcontainer image is available in ghcr.io/processone/ejabberd.If you consider that you've found a bug, please search or fill a bug report on GitHub Issues.
View the full release notes at https://github.com/processone/ejabberd/releases/tag/25.10.