View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
6062 | Composr | installer | public | 2024-11-17 03:49 | 2024-11-18 03:18 |
Reporter | PDStig | Assigned To | PDStig | ||
Priority | normal | Severity | feature | ||
Status | resolved | Resolution | fixed | ||
Summary | 6062: Optimise the installer's installation of addons, modules, and blocks | ||||
Description | Some 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! | ||||
Tags | Roadmap: v11 | ||||
Attach Tags | |||||
Time estimation (hours) | |||||
Sponsorship open | |||||
|
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. |
|
Fixed; preg_match did not match welcome zone modules. |
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 |