[ejabberd] [ANN] ejabberd Community Server 13.03

Mickaël Rémond mremond at process-one.net
Fri Mar 22 15:21:38 MSK 2013


We are announcing two major changes in ejabberd development today:

 - a new version of ejabberd, called ejabberd Community Server (eCS),
   as opposed to ejabberd Commercial Edition;
 - a change in version numbering,
   and thus our workflow.

Both ejabberd editions are targeting different goals and audience:

- ejabberd Community Server is open source code, in an effort lead by
  ProcessOne as always, and supported by contributions coming from all
  horizons. The project is community driven and focus on the kind of
  features, innovations and experiments that are expected from an open
  source project.

- ejabberd Commercial Edition targets carriers, websites, service
  providers, large corporations, universities, game companies, that need
  high level of commitment from ProcessOne, stability and performance
  and a unique set of features to run their business successfully.
  ejabberd Community Server

ejabberd Community Server, released today in beta, provides huge
improvements regarding performance and memory consumption. It will be
an excellent basis to accelerate the community development
effort. This release switches internal representation of data from
list to binary to reduce memory consumption, all over ejabberd code.


For those interested in technical details, ejabberd started its
existence using list to represent string, as it was the available
approach at this time. It was causing increased memory consumption,
but at that time there was also other limiting factors on less
powerful servers (like CPU consumption use by the TCP/IP connections
themselves).

Erlang now allows the use of binaries, which reduces the memory
consumption, but ejabberd didn't adopt this solution yet because it
involved many changes in the code. That major change was delayed for
ejabberd 3.0.0-alpha attempt, which used the new exmpp library and
binary representation. However, the switch to exmpp library involved
not only a major representation change, but also an enormous major and
unnecessary API rewrite; not only in ejabberd core, but also in all
the modules and all the contributed modules. So, we stepped back to
use a more adequate method and the usage of exmpp in ejabberd
internals has been deprecated.

There is a new ejabberd master branch, which comes from taking the
good 2.1.12 and converting it from using strings to binaries. No other
major changes. Simple and concrete. This is just performance
improvements and internal changes that makes it possible for the
community to happily build the next features.


Along with this new release comes a new versioning scheme. Ten years
ago, ejabberd 0.1-alpha was released. Three years later, ejabberd
1.0.0 appeared with full XMPP compliance. And two years later,
ejabberd 2.0.0. And after two more years, ejabberd 2.1.0.

Those major releases included big and small features, improvements and
bugfixes just like the periodic minor releases. They never introduced
unstability or major API changes: they were numbered as major versions
only because it was time to increase the version number. In practice,
improvements and bugfixes are introduced as they are available,
efficient and stable, without considering if it's a major or minor
release.

The problem we had is that we had been referring internally to
ejabberd3 as the commercial version. ejabberd community server was
akwardly stuck in a 2.x version numbering.

To solve that problem, we decided to switch to an Ubuntu-like version
numbering for ejabberd community server. The next releases will be
numbered as "Year.Month-Revision", instead of
"Major.Minor.Bugfix-Revision". It will reflect more precisely how we
work. You can thus expect a change in our worfklow and more interim
stable releases in the future.

In conclusion, three years after the last major ejabberd release, we
are pleased to announce ejabberd 13.03-beta1 and we are sure you will
all love the changes.



You can find the code in usual places:

- Code source is developed on ProcessOne Github account:
     https://github.com/processone/ejabberd
  If you had the old master branch, please, delete it to avoid
  git pull problems (as it has been moved).
  Please, do not hesitate to watch, star, clone the repository on Github.
- ejabberd page on ProcessOne website:
     http://www.process-one.net/en/ejabberd/downloads/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.jabber.ru/pipermail/ejabberd/attachments/20130322/2ed34855/attachment.html>


More information about the ejabberd mailing list