aboutsummaryrefslogtreecommitdiff
path: root/doc/release_notes_3.0.0.txt
blob: e33cfcbe03863f878c7bf11aa6bf88aa4dbc9189 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
******************************************************************************
* These are the preliminary release notes of ejabberd 3.0.0.
*
* The download page for preliminary releases is:
*   http://download.process-one.net/ejabberd/
*
*     WARNING!!!  PRELIMINARY DATABASE SCHEMA !!!
* The database schema may change before ejabberd 3.0.0 is released,
*   and no migration code will be developed for this preliminary schema.
* The only supported migrations are
*   from any ejabberd 0.9.0 ... 2.1.5 to the final 3.0.0.
* Don't use this preliminary ejabberd release for a production server.
* You can test this release with a blank database or with a copy of your
*   production database, but don't let your users connect to this copy
*   because their changes may get lost when you upgrade to the final 3.0.0.
******************************************************************************


                              Release Notes
                             ejabberd 3.0.0

  ejabberd 3.0.0 is the first release in the brand new 3.x.x branch,
  and includes several minor bugfixes and a few improvements.

  Read more details about the changes in:
    http://redir.process-one.net/ejabberd-3.0.0

  Download the source code and installers from:
    http://www.process-one.net/en/ejabberd/


ejabberd 3.0.0 includes three major changes:

* exmpp is now extensively used in ejabberd for parsing stanzas, and many more.

* gen_storage (abbreviated GS) provides a database abstraction layer,
  which supports storage in Mnesia and in ODBC databases.
  Several ejabberd modules use GS, like mod_roster and ejabberd_auth_storage.
  The schema of the tables stored by those modules have changed.
  ejabberd automatically creates mnesia and ODBC tables,
  and migrates them from a previous ejabberd version.

* Massive Hosting (abbreviated MH) is preliminary implemented in ejabberd,
  but it is still incomplete, untested and undocumented.


This is a more detailed list of changes since ejabberd 2.1.5:

* Requirements
- Erlang/OTP R12B-5 or higher is required
- exmpp 0.9.5 or higher is required, not optional
- ESASL library is optional, for SASL GSSAPI authentication
- Libexpat not required by ejabberd, it uses exmpp now (EJAB-1111)
- GNU Iconv not required, because mod_irc isn't included anymore (EJAB-954)
- Only database migration from ejabberd 0.9.0 up to 2.1.5 is supported
- ejabberd modules developed for previous releases need to be upgraded to exmpp

* Configuration
- New option clusterid
- New option that can't be used yet: static_modules
- ejabberd_auth_storage: new option auth_storage
- mod_muc_log: option spam_prevention is now link_nofollow (EJAB-1141)
- mod_roster: new access option (EJAB-72)
- S2S: allow definition of local address for outgoing connections (EJAB-418)

* Database
- New gen_storage that provides a database storage abstraction layer (EJAB-1102)
- mod_*_odbc are obsolete, use the normal ones with the option {backend, odbc}
- New ejabberd_auth_storage that supports internal and odbc databases

* XEP support
- Removed support for the deprecated XEP-0018 Invisible Presence (EJAB-810)
- mod_multicast: service for XEP-0033: Extended Stanza Addressing (EJAB-265)
- New ejabberd router for multicast packets (XEP-0033) (EJAB-329)
- ejabberd_c2s uses XEP-0033 if mod_multicast is enabled (EJAB-267)
- mod_muc uses XEP-0033 if mod_multicast is enabled (EJAB-266)

* Pubsub/PEP/Caps
- Allow distinguish between leafs and items (EJAB-1027)
- Enforce disco features results (EJAB-1033, EJAB-1228, EJAB-1238)
- Enforce pubsub#presence_based_delivery (EJAB-1221)
- Improve get_caps while still waiting for initial presence (EJAB-934)
- Make nodetree_tree implicitly create parent node if required (EJAB-944)
- Only use binary() instead of string() in Host and ServerHost (EJAB-1244)
- Rename NodeId (pubsub_node.id) bindings to Nidx (EJAB-1000)
- node_flat becomes default; it has the code instead of hometree (EJAB-1077)
- pubsub#notify_sub node option (EJAB-1230)
- pubsub#type node config and payload namespace (EJAB-1083)

* Miscellanea
- Bugfix handling Service Discovery to contacts (EJAB-1207)
- Bugfix: external contacts were offline after unavailable presence (EJAB-943)
- Don't offer SASL auth before doing TLS if TLS is required
- Experimental support for GSSAPI auth, requires esasl library (EJAB-831)
- Use binaries instead of lists where possible (EJAB-17)
- Windows ejabberdctl.cmd only handles up to 4 arguments (EJAB-1216)
- ejabberdctl: when starting, check it isn't already running


  Bug reports

  You can officially report bugs on ProcessOne support site:
  http://support.process-one.net/