The Magento Connect system is a vital part of the Magento ecosystem and has had a lot of success since it launched a bit more than a year ago. As always, there is room for improvement and hence we were very glad to see Varien provide the community with an opportunity to participate in the future direction of the system by running two surveys, one for extension users, and one for extension developers. At the time of writing, we have fourteen community extensions and one commercial application listed on Connect, and the evolution of this service is something we have quite a few thoughts on. We completed the survey and thought we'd share our ideas on how 2.0 can take Connect to even greater heights. Read on for our suggestions from a developer perspective.
One of the more interesting questions in the developer survey is "What can Magento do to help you make more money selling Magento extensions?", and one of the possible responses is "Extension Certification", which also seems to relate to a later question, "Do you want Magento Connect to work more like the Apple iPhone Store?". We're glad to see that moving to a certification model is at least being considered, since this may potentially address a number of problems relating to quality assurance. Developers can always distribute and list their extensions elsewhere, but Connect is (at present) probably the most visible way to get your work out to users, and therefore it's important that it isn't too difficult to get extensions listed. However, a certified model doesn't necessarily need to mean certified extensions only, and a hybrid model could be used whereby extensions could be classified as either certified or uncertified. This might be a good compromise between a way for buyers to purchase certified extensions with more confidence, while also still keeping the bar low for other developers to easily submit uncertified extensions.
Somewhat related to the above is the question "Would you like Magento Connect to handle licensing, rights management (DRM), activation, payment transaction at purchase, etc.?". I interpret this to be asking whether developers would like Varien to support an end-to-end system for the sale and distribution of extensions (who knows, it might even run on Magento itself!). It's the licensing part of this equation that may be problematic - there have already been a number of copyright and licensing infringement allegations made relating to Magento extensions, and while it is understandable that Varien is reluctant to take on the role of policing the matter, it seems reasonable to expect there to be some sort of process in place for handling these issues, particularly if any payment was made for commercial listings.
As for the actual implementation of the Connect system and website, we'd love to see the following taken into consideration:
- Discussion - As a Magento extension maintainer, it's currently very challenging to track discussion around your extensions listed on Connect. To begin with, there are 5 discussion forums created for each extension plus one stream of reviews. The choice of sub-forum categories is sane (bugs, feature requests, patches, documentation, and general discussion) but in practice these forums don't seem to get the traffic to justify the segmentation. While there are RSS feeds for each forum, unfortunately the RSS is invalid while the forum has no threads, and reading six feeds to keep on top of things is harder than it should be anyhow. Having a single discussion forum that is clearly visible on the extension page and provides a single RSS feed would be one way to make it easier for users and maintainers to keep up with the discussion.
- Reviews - If reviews are going to be brought back (they were disabled some time ago), then they should be moderated. They should not be a support channel, and should be used only to review the extension, rather than flame the author, complain about the price, or engage in other behaviours that I'm assuming led to the reviews being closed in the first place. The reviews are positioned quite prominently compared to the forums, which may have been why comments and support requests were posted there instead. Perhaps the reviews should be merged into the general discussion to reduce the temptation for people to try and game the system to get more exposure, or to spuriously vote other's work down (did anyone else ever release an extension only to see it rated one star with no review before it had even been downloaded?).
- Encoding - Some commercial extensions are encoded using ionCube encoder or similar. While I respect those developers choice to do so, it would be helpful to include a flag indicating that the extension contains encoded PHP since some users will require that the source code is available; this is after all one of the key benefits of using Magento in the first place.
- Moderation - Claims of copyright infringement and license violations, or practices such as repackaging a community extension and selling it as a commercial one, are concerning. A process for handling these disputes should be developed along with a way to flag an extension for review and lodge a complaint. It's an unfortunate reality that this problem is unlikely to go away, and it hurts the Magento developer community not to have a way of dealing with it.
- Contributors - Being able to allow multiple contributors for an extension could help reduce fragmentation and the urge for people to fork extensions rather than contribute back to the original. At the moment, the fact that only one author can be recognised as an extension's author is a factor in people choosing to republish modified or updated extensions as their own.
- Direct download - For convenience, it would be useful to have a link to the extension tarball rather than just the key for use with PEAR.
- Versioning - The Magento compatible version field would be more useful if it wasn't free-form text. A standard way of indicating a particular version or range of versions supported could facilitate improved search and browsing criteria. If version compatibility was also tied to each release rather than the extension overall, then it would be possible for users who are behind the latest Magento core release to find and download an older version of an extension from the release archive that is still compatible (though probably unsupported).
- Search - A better search facility for Connect would allow you to specify category, type, stability, version compatibility, whether encoded, etc.
- Update notifications - It would be very useful for extension users to be able to subscribe for notifications of new releases. Some extension developers are using the built-in Magento message notification system to push update notifications, however it would be good to have a less intrusive method that doesn't also rely on the extension being installed and activated.
They're our thoughts on where we'd like to see Magento Connect headed, but we'd be very interested to hear other people's thoughts too.