Expand the Joomla Extension Manager with Nuno Lopes

Introduction of Expand Extensions Manager Project

Our project aims to improve the user experience while managing their extensions on Joomla CMS and provide developers with a better support when developing their components.

This project consists of several features to improve the Extensions Manager:

  • Show the changelog for an update (before or after the installation)
    With this feature, users can check the changelog of the current extension and the changelog of the update of the same extension
  • Option to edit the update sites
    Currently, you can only Publish and Unpublish, Delete an Update Site, with this feature the user will be able also to modify the update site URL.
  • Database fix for 3rd party extensions
    At the moment, Joomla CMS only offers a fix for core databases, with this feature, users can also correct other extensions.
  • Add a field to enter an Update/Download Key and a place to manage them
    Currently, there is no user interface for extensions that have Update/Download Keys. The idea of this feature is to introduce a new section where you can manage all Update/Download keys. This list should also have a column showing the expiration date and renewal URL of the key.
  • Checksum for extensions
    • At this time, in the process of installing extensions or updates, there is no method to detect errors or modifications which may have been introduced during their transmission, when downloading files from the update sites. The primary goal of this feature is to add a method to confirm that only the original files are downloaded and installed, lowering the risk of installing broken packages or getting infected files that can endanger the user site. This is the most important and hardest feature of the features and it will be the last one to make.
    • The best option that was discussed with my mentors was having a link in the manifest file to hash/checksum in the developer's server that when returned we would compare it to the hash we created before unpacking the file. If negative this should show an alert if the user wants to continue but still need to investigate more how this is going to be made and keep discussing it with the mentors on the meetings.

What was achieved so far

Right now the Show Changelog and Edit Update Site features are almost completed:

Show Changelog:

Extension Overview with Changelog feature
View a Changelog

Edit Update Site:

Joomla Extension Update sites
Joomla Extension Edit Update site

At this point of the project, we are writing the technical notes about the features for the Core Team reviews, and confirm the final submission of theses features.

These features are already functional, you can check them on my GitHub repository, each feature has a dedicated branch:

Personal Experience so far

Right now, I’m having some time difficulties because I’m in exams period. Also, I have lots of work deliveries, so I’m not still working 8 hours per day on my project, but I’m trying to manage my time to attend everything (Meetings, Code Sessions, Exams, Work Delivery, Family). Everything is progressing according to the project schedule. In the next month, I will be fully available for this project. I’m enjoying working with Joomla. My degree doesn’t offer any web development subject, and so I’m learning a lot here, my mentors are very friendly, and they are beneficial, couldn’t be more happy with this unique experience.

What is coming next

There are still 3 features left (Database fix for 3rd party extensions, Add a field to enter an Update/Download Key and a place to manage them, and Checksum for extensions) and a lot of research on these features, changes on the documentation, technical notes and blog posts are also required to complete successfully the Google Summer of Code.