Organization: Drupal Assocation
Mentor: Timothy Lehnen
Contributor: Ahmed Aziz Abbassi
Welcome to Enviromage, a powerful Drupal module designed to unleash the full potential of your website's performance and configuration management. With its comprehensive environment configuration settings, Enviromage empowers users to tailor their website's behavior across different deployment scenarios effortlessly. Delve into the magic of Composer performance checks (dry run), ensuring seamless package updates without disrupting your live environment's harmony. Enviromage's mystical memory size analysis reveals resource-intensive modules, enabling you to optimize your website's performance with ease. Unveil the secrets of your website's underlying magic with Enviromage's effortless retrieval of essential environment configurations. Embark on a captivating journey of Drupal development and performance optimization with the enchanting Enviromage by your side.
- Project Page on Drupal.org: https://www.drupal.org/project/enviromage
- My project releases: https://www.drupal.org/project/enviromage/releases
- Link to project in Gitlab: https://git.drupalcode.org/project/enviromage
- Link to project in GitHub: https://github.com/aziz-712/Enviromage.git
NB: You could track my progress during the GSoC coding period in the project's GitHub repository.
Main idea: Check the PHP memory readiness when running In-Place updates because there is a high possibility the updates can fail because of the limited PHP memory.Developed ideas and goals:
- Profile various components of a web site
- Profile Automatic Updates Module
- Retrieve environment configuration
- Gather a module's memory size
- Simulate a composer update (help us profile the update memory usage)
I wrote a
python
Web scraper that retrieves the best 10 organizations, which could fit with my skill set and my interests, from the Google Summer of Code web site. Then, I went through all the 10 organizations' project ideas that I could opt for my summer of code. Finally, I made my decision to go with Drupal Association. And, I wrote my proposal. My mentor Timothy had reviewed my proposal and was impressed by my proposal's quality. It was a good sign to me to be accepted in the Google Summer of Code program. Link to the Google Summer of Code organizations scraper: GSoC22-23-scraper
Link to my proposal: summerofcode.withgoogle.com/aziz_propsal
- Set up ddev for Drupal development
- Follow the 'Hello World' module tutorial to understand how to create a Drupal 10 module!
- Write standalone php code for php environment configuration checking
- Write standalone PHP code for variable size checking
- Write standalone php code for php memory usage checking
- Feature request: Adapt your Hello World module example to include: PHP memory checker
- Feature request: Adapt your Hello World module example to include: Environment configuration report
- Feature request: Adapt your Hello World module example to include: Variable size checker
- Feature request: Create a page in your module to display the results of your php memory check, variable check, and environment check functions
- Remove Duplicated code: UtilsController::return_bytes()
- Research: Drupal's hook system and api's for other modules
- Using documentation or a tutorial - Implement your first hook in your module
- Feature request: Use the hook system to gather the variable size of *another module* and display on the page.
- Feature request: Use the hook system to gather the memory usage of *another module* and display on the page.
- Feature request: Use the hook system to gather the environment configuration and display on the page.
- Simulate a composer update process - and report warnings/errors, etc - as well as performance
- Security audit of the module
- Enable PHP curl extension: composer run slower if it's not enabled
- Publish this module on Drupal.org
- Store history of performance tests in the database
- Create the first release (following semantic versioning)
- Storing Invalid Data Into database: composer command field is empty - it should not
- Storing the Time Execution of a composer command as an INT - Should be FLOAT instead
- Ensure Compatibility: Change the Enviromage modules' memory size table
- Modules' size Table: module_name field should be not null
- Show history of previous performance cheks
- Prototype: Temporarily 'hack' the auto updates module to insert your performance measurements directly - then abstract into custom module
- After checking site configuration and doing basic performance - add customized performance recommendations performance results page
- When the newest test is run, let's provide a diff or other comparison between the latest results and the last test results
- I learned how to develop a Drupal custom module and how to contribute it to the Drupal.org site. This is a link that summarize what I have learned. This link to the code associated with what I learned: https://github.com/aziz-712/Drupal-Training-Module-Development.git"
- This link summarize my participation in GSoC.