[ejabberd] ejabberd problems [was: ejabberd login problem]
badlop at gmail.com
Sun Jul 29 15:48:53 MSD 2007
2007/7/28, Evgeniy Khramtsov <xramtsov at gmail.com>:
> Currently I consider ejabberd as a proprietary
> project driven by Process-One.
- 1 - Who decides
>From what I know: ejabberd started as a personal project by Alexey
Shchepin in 2003. In 2004, Process-One hired him to work in ejabberd.
Since then, the decisions about what features are included, and when
to make new releases are taken by Alexey and Process-One.
This means that ejabberd is two things. It's a project handled by
Process-One, who has a particular agenda, not publicly known, and
usually includes patches if they consider are interesting. ejabberd is
also a personal project by Alexey, because he still spends time in
features that Process-One may not be particularly interested.
Never in ejabberd history did anybody else have the right to decide,
or vote the decision about which features are added, and when new
releases are published. We always can ask, and suggest, and try to
convince. I don't see any real problem in all that. If I request a
patch to be applied and Aleksey rejects it, instead of feeling angry,
I dedicate to improve the patch, or convince Aleksey, or forget the
patch, or publish it in case somebody else is interested in it. I use
this method also In Tkabber, previously with Aleksey and now with
Sergei, and I consider it a nice, simple and productive way to manage
a small project.
Take a look at this interview  from 2 years ago. I deliberately
asked Aleksey this question:
> How will you handle ejabberd if it starts receiving patches and new modules
> with increasing frequency? That could happen if bigger players get interested in it, and
> will happen for sure as ejabberd grows.
> Aleksey: I hope I'll be able handle all of them, but in any case I won't apply any patch
> which have not enough quality from my point of view.
- 2 - SVN
Another example, look at the list of accounts with commit access in
ejabberd's svn. There are two groups of accounts:
* Aleksey, with accounts alexey and aleksey
* Process-One, with accounts mremond, cromain, jsautret, thierry, tmallard
I think that, in fact, only two persons control what is finally added
and what not to ejabberd: Aleksey and M. Remond.
This way it is a lot easier to keep coherence in ejabberd code and
features. The bad thing is that if they are busy implementing
difficult features (which happens quite a lot), ejabberd progress gets
suspended since no improvements are added. The new modules that are
being implemented independently in ejabberd-modules are happy, and
grow as fast as they need. However, ejabberd core is reduced to a
small flowerpot: the patches to core which are continually being
published in the bug tracker, get bored of waiting for the lucky
moment in which somebody with decision power have spare time to review
and commit/reject them.
It is very simple: ejabberd grows, there is few people with decision
power, they are already quite busy and each day has only 24 hours.
- 3 - Decisions
You can chat, comment, make suggestions to the people that handle the project.
Since few people take the important decisions, it is a lot easier to
actually take decisions (no need to write proposals, vote, discuss,
convince...). And it's a lot easier to make wrong decisions, too.
Now I'll enumerate some decisions that were not previously consulted
publicly. Some of the decisions were not even announced at all:
* Let's add a lot of interesting features in the next release,
instead of making smaller releases with few improvements in each one.
So, instead of making 1.3.0, 1.5.0, 1.7.0 and 1.9.0 releases every 3
months, let's wait and jump from 1.1.3 directly to 2.0.0
* Let's consider http://www.process-one.net/en/ejabberd/ the ejabberd
main page instead of http://ejabberd.jabber.ru/
* Let's create a svn repository called ejabberd-modules, so
developers do not need to run their own svn servers in home
I think some of the listed decisions were really good, others were not
so good. Since I wasn't asked, and most of the time not even informed,
I couldn't give my opinion at all. So, it's obvious I'm not welcomed
to contribute to ejabberd management. I'm only a spectator. I'm not
responsible of the wrong decisions that they make ;)
As you can see, there are not only opinions and feelings, there are
*facts* that clearly define ejabberd as a personal and private
project. The difference between ejabberd and Jabber XCP is that
ejabberd is published with an open source license.
- 4 -
If you would like ejabberd to be an open source project run in a
different manner than how it has been ran since it was born 4 years
ago, then you want ejabberd to switch from the current state to a
different state. That switch will not happen spontaneously, by the
power of magic, someone must trigger it :)
I guess the procedure looks like this:
1. Somebody publishes a proposal in an open and public forum. For
example, this mailing list.
2. Other people will put suggestions and opinions, which are
integrated in the proposal to improve it. Finally, a formal proposal
3. Eventually, the current managers of ejabberd will write a formal
response to the proposal.
4. If the proposal was rejected, you can analyze the reasons, improve
the proposal and resubmit it.
5. If it gets rejected for the second time, you can insist or simply
abandon the proposal.
6. If it got rejected two times, and you don't want to insist but you
still want to make the switch, your only solution is to start a fork,
thanks to the open source license.
More information about the ejabberd