The symfony plugin system is the easiest way to contribute to the symfony project. Plugins are easy to write, easy to package, ease to install, and they can override everything in the framework.

But how do you answer questions like these: Is there a plugin to add the "foobar" feature to my project? Does my favorite plugin work with symfony 1.1? What are the plugins compatible with Doctrine? Who is the leader of this plugin? How can I contribute to a plugin?

I can go on and on. It is not easy to answer any of these questions with the current plugin management system, aka Trac. Trac has served us quite well for over the last two years, but with more than 200 available plugins, it was clear that we needed a better, dedicated system.

So, I am pretty happy to announce that I have just deployed a new version of the symfony project website with a brand new "Plugins" section (look at the top menu entries) to replace the Trac plugin management system.

Features

Here is an overview of the main features of the new system:

  • The plugin homepage lists all the available plugins. You can filter them by the symfony version, by the ORM tool you use, or by author or plugin name.

  • Each plugin has a dedicated page with some general information, the license text, the installation process, the README file, the dependencies, the list of all releases sorted by symfony version, a contribute panel, and an admin panel for the plugin developers. The page is even customized for each plugin version.

    http://www.symfony-project.org/uploads/assets/plugins_releases.png

  • All information are linked together which means that you can easily find all the developers of a plugin, or all plugin from a developer, ...

    http://www.symfony-project.org/uploads/assets/plugins_dev_plugins.png

  • The plugin lead developers have access to an admin panel to manage their plugins (description, categories, ...), to upload new releases, and to manage the plugin team.

    http://www.symfony-project.org/uploads/assets/plugins_admin_tab.png

  • Each plugin can have several people working on it with three different roles:

    • developers: They have access to the plugin repository (if the plugin is hosted on the symfony repository)

    • packagers: They can upload new releases and delete old ones

    • leaders: They can do everything with the plugin

    From now on, you have to ask the authorization and be accepted by the lead developers to work on an existing plugin. The process is very easy because everything is done online in the contribute and the admin panel. So, everything is automated, from the creation of your account to the SVN authorization.

    http://www.symfony-project.org/uploads/assets/plugins_contribute.png

  • The plugins are now categorized by the lead developer directly in the interface. And, when a significant amount of plugins will be categorized, I will enable the category filtering on the homepage.

  • As all the trac accounts have been migrated to the symfony website, you can login today with your existing Trac account. So, the same account is now used for Trac, plugins, and Subversion.

Plugin developer notes

With the migration, some changes have occurred. Here are the main points you need to be aware of as a plugin developer:

  • The information displayed on the website comes from the package.xml file. So, all plugin leaders are encouraged to check their plugin page and fix their package file if needed.

  • The license panel displays the LICENSE file of the PEAR package if it exists. If not, please add a LICENSE file at the root of your PEAR package with the license text.

  • The readme panel displays the README file. The official format of this file has changed from the Trac wiki markup to Markdown as it is the format used everywhere for the symfony documentation. There is an on-the-fly conversion from the Trac wiki markup to Markdown but as the conversion is far from perfect, you are encouraged to convert your README files to the Markdown syntax.

  • The import script automatically associated the plugin leaders with their plugins, but it only worked if you have associated an email with your trac account and if this email is the same as the one used in the package.xml file. About 85 plugins don't have any leader for now. If you are a leader for one of these plugins, please send me an email with the plugin you claim and your username (fabien.potencier [(at)] symfony-project.com).

  • Some plugins have not been imported because of some errors. If your plugin is not listed in the new system, please have a look at the plugin error page to know the reason. If you don't know how to fix the problem, send me an email and I will try to help you out.

  • The plugin Trac pages are redirected to the new application, so the transition for the end users is quite easy.

The forge

The new system does not replace the current Trac ticketing system, and it does not provide a dedicated Subversion repository for plugins. That's because the system is not a replacement for the symfony forge project. We are still working on the symfony forge to provide tools for your plugins: dedicated Subversion repository, ticketing system, wiki pages, and more... Stay tuned!

I hope that the new system will ease the plugin management and will give more visibility to all the great symfony plugins we have.

Published in