View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
6203 | Composr | General / Uncategorised | public | 2025-04-14 03:46 | 2025-04-14 03:54 |
Reporter | PDStig | Assigned To | Chris Graham | ||
Priority | normal | Severity | feature | ||
Status | assigned | Resolution | open | ||
Summary | 6203: Developer transition (holding issue) | ||||
Description | This issue will serve as a container for all the other issues and TODOs needing to be done for: - The transition from compo.sr to composr.app - The transition away from my lead development - Version 11 *** TODOs *** - **HIGH PRIORITY / do before the next release**: Finish implementing the "out mode" system for release downloads in cms_homesite. - **HIGH PRIORITY / do after the next release**: Activate anti-leech protection on composr.app (and note in the release that prior releases will no-longer be able to download non-bundled addons directly from composr.app). I wanted to enable this because there seems to be bots scraping downloads and eating bandwidth. But the current release system does not support anti-leech protection (since there is no session). - Run test suite for minor/major releases (especially third party APIs) - Get Transifex working - Ensure content translations work (installer) - Inspect content translation behaviour overall; I moved the multi content setting from a _config.php one to a value because, since it should never really be changed manually, it should be considered "hidden" instead as a value. But there are recursion issues I've had to try and resolve (a query checks if it is enabled, which checks the value, but if the value isn't in the cache, it has to do a separate query for the value, which then checks if it is enabled, and creates a loop; I have a temporary solution of just returning default if we're already trying to query for it). - Set up the "make a software release" and "push a bugfix" tools to use GitLab for releases, hotfixes, and upgrades. Only do this after we can ensure all of the functionality we want is possible through GitLab, especially sponsorships with points. - Implement the BGUID, AUTHOR, and JSON data types in database; make sure privacy system handles JSON and AUTHOR - Need to add an AUTHOR db type (alias of ID_TEXT), update columns as necessary, and then update create_selection_list_authors / merge_authors / anything using db_encode_like('%author') - More extensive v10 -> v11 upgrade testing especially with different settings - Test a v10 -> v11 upgrade with 100,000 rows of data in the v10 install (this is based on my knowledge the biggest v10 site I've seen has hundreds of thousands of forum posts; there might be larger sites out there but honestly sites beyond that point should be hiring people to do strategic upgrades). Could use Stress test loader. Could also copy v11's dummy data function in developer_tools.php over to v10 to generate random typed data directly in the database; might be faster but less stable. - Lots of TODOs in the code base - Inspect Google App Engine code - (low priority) The docs/api module's fulltext index and search hook needs finished - When v11 stable is released, remove LEGACY compo.sr code in version 11 for the composr.app homesite (do on v11 branch, merge it in). - 3046 Drop 32-bit support - Shared install code is now fundamentally broken since step 7 of the installer is now broken into sub-steps based on execution time (to prevent time-outs which then create broken installs) - top_language could probably use the new locations.php API for population (PHP ISO Codes library). - Run WCAG validation level 3 on version 2.2 - Add an achievement for "Translator saviour" on composr.app; manually awarded to members who provide content translations - Add Tempcode symbols for epoch intervals, then add to tut_tempcode - Add realtime rains for doing quizzes and anything else that you think may be missing. Check documentation as I revised the meaning of some symbols. - Tutorials search in the Admin Zone seems to be broken - Consider using iterators for directory and file manipulation to reduce PHP memory - Use streams instead of get_file_contents when creating TARs; this is a memory hog and has been causing PHP memory errors | ||||
Additional Information | *** Important Notes *** - INTERNAL_ERROR now requires a parameter to be passed. Just fill it with an escaped TODO, and run the GUID fixer under tools to give it a unique GUID. - The repair tool will also fix anything not looking like a GUID including keyboard mashing. And it will prioritise older files over newer ones for duplicate GUIDs. - Use global3 check_for_infinite_loop where possible for loop checking. - Crypt has a cryptographic v1 and v4 GUID generator now. I left the old GUID generator as well for simple non-crypt v4 GUIDs where security and privacy is not an issue. Resource-fs uses the crypto GUID generator now because of the new "view mail in browser" feature which uses GUIDs for security. - New code standard for crypt: never use non-cryptographic hashing (e.g. MD5, SHA). It defeats the purpose and security of cryptography. - log_hack_attack_and_exit is never guaranteed to exit (advanced banning changes by webmasters). There should be logic after every call to handle cases when it doesn't (e.g. an internal error, or for input filtering, returning blank). This is a new standard. - For time intervals, use to_epoch_interval_index and from_epoch_interval_index in temporal. These are much more stable than string date functions in PHP or using hard-coded arithmetic. Stats, parental controls (for age), and leader-boards now use them, for example. - Any results screen which could have lots of results and more than just a few columns should have a collapsed Filtercode box at the top. See points ledger as an example. - All edit screens should have conflict resolution checking. I improved the system so it supports parent-child conflicts too (e.g. editing aggregate XML will also show conflicts for adding/editing instances). - Composr now uses the out mode system in downloads to determine the newest versions of releases, although this needs finished as it is not fully implemented yet. | ||||
Tags | Roadmap: v11, Roadmap: v11 partial implementation | ||||
Attach Tags | |||||
Time estimation (hours) | |||||
Sponsorship open | |||||
Date Modified | Username | Field | Change |
---|---|---|---|
2025-04-14 03:46 | PDStig | New Issue | |
2025-04-14 03:46 | PDStig | Status | Not Assigned => Assigned |
2025-04-14 03:46 | PDStig | Assigned To | => Chris Graham |
2025-04-14 03:46 | PDStig | Tag Attached: Roadmap: v11 | |
2025-04-14 03:46 | PDStig | Tag Attached: Roadmap: v11 partial implementation | |
2025-04-14 03:49 | PDStig | Additional Information Updated | |
2025-04-14 03:52 | PDStig | Description Updated | |
2025-04-14 03:54 | PDStig | Description Updated |