The roadmap of the Mibew Messenger project

Preamble

This document is a manifesto on the future of Mibew Messenger project as we see it. It should not be treated as a sacred text written in stone. It can be and should be modified and corrected according to community’s collective opinion.

You can leave your suggestions as a posts in the appropriate topic on the forum. We hope that you will do so.

Informational issues

The project needs much more information to be published. Documentation, tutorials, manuals, etc.

Also we need not only a demo installation of the stable version of Mibew but also a demo of the upcoming version, so that people would be able to try it without need to install a nightly build.

Thus, we plan to:

  1. Launch a new site (done)
  2. Publish both on the site and on GitHub a step-by-step manual on installation and update processes
  3. Update and significally extend the existing FAQ (done)
  4. Deploy demo installation of unstable Mibew 2.0 with regular updates (done)
  5. Implement nightly builds available for download
  6. Begin to publish on the site tutorials, HOWTOs, (done) and auto-generated documentation on code
  7. Publish the estimated calendar plan of releases
  8. Reorganize the forum according to actual state of the project (done)

Development issues

The project’s development process and infrastructure should be aligned with the actual conditions and modern technologies.

Thus, we plan to:

  1. Adopt and (done) publish the guidelines for coding style
  2. Apply the guidelines for coding style to the existing code (done)
  3. Improve the overall quality of code (done)
  4. Create and publish the guidelines for contributed code
  5. Reorganize the master branch of repository (remove Mibew Tray and all other legacy code from the master branch) (done)
  6. Switch to a more convenient cross-platform build system (done)
  7. Revise all existing unit tests and create new ones
  8. Use automated tests during build process
  9. Implement automated generation of documentation on code during build process
  10. Switch to a development schema with scheduled releases

Mibew Messenger in common

For a very long time the Mibew Messenger project is suffering from a security vulnerabilities. This should be corrected.

Thus, we plan to:

  1. Fix all known security vulnerabilities (done)

Mibew Messenger 1.6.x

Mibew Messenger of the branch 1.6.x should be treated as an obsolete version of Mibew.

We will not release any new versions of this branch.

Mibew Messenger 2.x

Mibew Messenger of the branch 2.x is an actual branch of Mibew Messenger. The stable version of Mibew Messenger 2.x that is ready to be used in production has been released and is available for download.

New features will be implemented in future releases.

We plan to:

  1. Implement requests dispatcher (done)
  2. Implement more convenient procedures of system’s installation and update (done)
  3. Implement mechanism of plugins’ installation and update (done)
  4. Add events to be used by plugins for all important functional parts of Mibew (done)
  5. Implement API for external desktop and mobile applications
  6. Publish the detailed documentation on Plugins API and External API
  7. Switch to .po / (done) .mo files for localization
  8. Change locales’ codes to the standard values (done)
  9. Remove all traces of legacy links and names (i.e. openwebim, etc.) from the code (done)
  10. Switch to a role-based model of users’ permissions
  11. Implement salted hashes of passwords (done)
  12. Add support IDNs (done)
  13. Add support for server’s timezone (done)
  14. Implement real bans for spammers (implemented as plugin)
  15. Add customisable polls before and after dialogues
  16. Implement an option to use iframe-based dialogues instead of windows-based ones
  17. Implement new updates notifications schema

Possible plugins

Mibew 2.x should include not all possible features but only the most demanded by community. All other features should be implemented using plugins.

Below is the short list of features that could be implemented using plugins:

  1. Old messages archivation
  2. Date intervals in statistics
  3. LDAP authentication
  4. XMPP notifications
  5. SMTP notifications (implemented in the kernel)
  6. Integration with Google Maps (implemented as plugin)

Of course we will intensively encourage the development of any third-party plugins for Mibew.

Mibew Tray

Mibew Tray should be treated as a separate and obsolete desktop application tied to 1.6.x branch by technology as well as by ideology.

We do not plan the further development of Mibew Tray.