View Issue Details

IDProjectCategoryView StatusLast Update
6062Composrinstallerpublic2024-11-18 03:18
ReporterPDStig Assigned ToPDStig  
PrioritynormalSeverityfeature 
Status resolvedResolutionfixed 
Summary6062: Optimise the installer's installation of addons, modules, and blocks
DescriptionSome web configurations cannot elevate the PHP maximum execution time for whatever reason (host limits, using a downstream proxy, etc).

We need to be more mindful of the installer like we are the upgrader for this reason.

Re-configure the steps of the installer (namely block/addon/module installation) so that they are based on execution time. When the script has detected 10 seconds have elapsed, stop there and proceed to the next "step" (specify an offset in the URL). Don't do steps but instead do something like a percentage based on addons/blocks/modules installed versus total number we are processing.

So the new setup will be:

Step 1 - Welcome / initial checks / language selection
Step 2 - Licence
Step 3 - Forum
Step 4 - Credentials / basic info
Step 5 - File extraction / core install
Step 6 - Conversr install
Step 7 - Critical modules / addons / blocks
Step 8 - Addon / module / block install (broken into multiple executions every 10 seconds)
Step 9 - Done!
TagsRoadmap: v11
Attach Tags
Time estimation (hours)
Sponsorship open

Sponsor

Date Added Member Amount Sponsored

Activities

PDStig

2024-11-18 03:01

administrator   ~9604

Last edited: 2024-11-18 03:03

Implemented;

I ended up doing more than the original issue called for because, after optimising the addons / blocks / modules, I realised they were not installing in the order they needed to be installing.

In 11 beta5, the installer will now work as follows:

Steps 1-6 remain the same.
Step 7: Installs only the "must have" modules... admin_version, admin_permissions, and now also admin_addons.

Step 8: This is complex
 - When we first start step 8, the installer will first gather all the addons we have. It will then grab their dependencies and their files and determine the order in which the addons (and their modules and blocks) should be installed. It puts core and core_* addons first as well. It will bail on error if a cyclic addon dependency occurs.
 - Once we know everything that needs to be installed, and in what order, the installer will save this to a temporary bin file so we don't have to re-calculate this again. It then starts installing.
 - Between each install of an addon, module, or block, the installer tracks elapsed time. Once we pass 10 seconds, it stops and assigns an offset in the URL (this is to avoid server time-outs). Step 8 will then repeat, but at the specified offset. And this process repeats until we go through the full list of addons / modules / blocks to install.

Step 9 is now formerly step 10... it is the completion screen.
Step 10 is now formerly step 11, which did some final maintenance when the user navigated to the Admin Zone or wherever.
...so we essentially also knocked one step out of the installer as well.

There are still some issues with a few modules not installing (mainly non-bundled). I'm investigating this. It's not critical because they'll get installed eventually anyway, or can be installed from the modules management screen.

Also, any modules or blocks not listed in an addon will not get installed by the installer anymore. I haven't decided if I will keep it that way or fix it. Part of me wants to keep the functionality like that; if a module or block is not listed in any addon file lists, we assume it's in "development", so extra care needs to be taken with them. Developers can still always install them manually in Admin Zone > Addons > Module management.

PDStig

2024-11-18 03:18

administrator   ~9605

Fixed; preg_match did not match welcome zone modules.

Issue History

Date Modified Username Field Change
2024-11-17 03:49 PDStig New Issue
2024-11-17 03:49 PDStig Status Not Assigned => Assigned
2024-11-17 03:49 PDStig Assigned To => user4172
2024-11-17 03:49 PDStig Tag Attached: Roadmap: v11
2024-11-17 03:49 PDStig Severity Minor Bug => Feature or Request
2024-11-17 20:54 PDStig Summary Optimise the installer so every step can reliably execute in under 30 seconds => Optimise the installer to break module/block/addon steps into 10-second sequences
2024-11-17 20:56 PDStig Description Updated
2024-11-17 20:57 PDStig Description Updated
2024-11-18 02:52 PDStig Summary Optimise the installer to break module/block/addon steps into 10-second sequences => Optimise the installer's installation of addons, modules, and blocks
2024-11-18 03:01 PDStig Status Assigned => Resolved
2024-11-18 03:01 PDStig Resolution open => fixed
2024-11-18 03:01 PDStig Note Added: 0009604
2024-11-18 03:03 PDStig Note Edited: 0009604
2024-11-18 03:18 PDStig Note Added: 0009605