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:
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:
https://github.com/NunoLopes96/gsoc17_expand_extension_manager
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.