ejabberd 17.06-beta
    ejabberd 17.06-beta includes a lot of improvements over the previous 17.04 release. To name the most important ones: new caching system, Riak support for several modules and introduction of Certificate Manager.
Certificate Manager is a feature that has been requested by many organisations, allowing administrators to manage their certificate more easily. From now, starting ejabberd with an invalid certificate will dump a clear entry in ejabberd log file, explaining what’s wrong. Upcoming ACME support will further refine these improvements we’ve worked on early this year to give our users a great experience with certificate management.
The new cache system is also a new component that allows fine tuning of ejabberd performance for either small systems or large scale servers. To use data cache for a supported module, you need to set the module option use_cache. You also have the possibility to define a maximum number of cache entries and/or maximum life time of cached data, so you keep control on your memory use. Example:
modules:
  mod_roster:
    use_cache: true
    cache_size: 10000
    cache_life_time: 3600  # 1 hour
The cleanup tasks on all ejabberd API also continue, consider checking against few methods rename.
Some features and fixes are missing from the 17.06 milestone, and will be worked on the next couple of weeks.
Changes
API
- Deprecate 
misc:encode_base64/1andmisc:decode_base64/1 - Rename 
is_user_existsfunction touser_exists - Allow api access on both ipv4 and 6 loopback addresses
 
Admin
- Refactor ejabberdctl
 - Improve ejabberdctl parameters parsing
 
Configuration
- Validate module options on start_module/2
 - Validate new options before module reloading
 - Validate second-level options
 - Introduce 
iqdiscglobal option - stream_management listen option deprecated, use mod_stream_mgmt
 - Check presence of some files during option validation
 - Speedup configuration options lookup
 - Validate all certfiles on startup
 - Only validate certfiles if 
public_key:short_name_hash/1is available - Introduce Certficate Manager
 
Commands
- Add clear_cache admin command
 - Parse correctly presence_broadcast option in change_room_option command
 - Describe command arguments and results in 
mod_muc_admin - Improve export2sql explanation; remove obsolete and duplicated command
 - Fix and document 
push_roster_allcommand 
Compilation
- Erlang 17.5 or higher is required
 - Add 
--enable-system-depsconfigure option - Add 
--enable-stunand--enable-sipconfigure options 
Core
- Speedup Mnesia tables initialization
 - Improve Mnesia tables creation and transformation
 - Improve 
ejabberd_c2s:close() - ejabberd_c2s: Don’t close session on stream resume
 - Speedup loading of translation files
 - Fix 
ejabberd_router:is_my_route/1 
Databases
- New 
sql_connect_timeoutoption - New 
sql_query_timeoutoption - Get rid of sql_queries.erl
 - Use round-robin algorithm when selecting worker from DB pool
 - Add Riak as BOSH RAM backend
 - Add Riak as mod_proxy65 RAM backend
 - Add Riak as mod_carboncopy RAM backend
 - Add Riak as router RAM backend
 - Add Riak as session manager RAM backend
 - Fix cleaning of Riak route table
 
Cache
- Implement cache for mod_announce
 - Implement cache for mod_private
 - Implement cache for mod_privacy/mod_blocking
 - Implement cache for mod_last
 - Implement cache for mod_vcard and mod_vcard_xupdate
 - Implement cache for roster
 - Add cache options to the validator
 - Use cache for authentication backends
 - Use new cache API in mod_shared_roster_ldap
 - Use new cache API in ejabberd_oauth
 - Use new cache API in mod_mam
 - Use new cache API in mod_caps
 - Use cache in front of Redis/SQL RAM backends
 
Modules
- mod_http_upload: Add support for HTTP File Upload 0.3.0
 - mod_mam: Added export function
 - mod_metrics: Don’t leak with UDP sockets
 - mod_metrics: New options ip and port
 - mod_muc: Allow a room admin to un/subscribe another JID
 - mod_offline: Don’t store messages via a single process
 - mod_offline: Make sure only jabber:x:event tag is present in offline event
 - mod_register: New option ‘access_remove’ ACL
 - mod_stream_mgmt: Preserve stanza count on timeout
 - mod_vcard_ldap: Parse 
ldap_uidslike in eldap_utils 
Elixir
- Update elixir to v1.4.4
 
Installer
- Upgrade OTP to 19.3
 
Feedback
As usual, the release is tagged in the Git source code repository on Github.
The source package and binary installers are available at ejabberd XMPP & MQTT server download page.
If you suspect that you’ve found a bug, please search or fill a bug report on Github.