ToDo R6.0


R 6.0

Roadmap
dev repo [bitbucket.org]
ChangeLog


Main Focus: UTF-8 support and migration and PHP 8.0 compatibility


R6.0 is more or less R5.5 with Unicode support. Please look here for open issues from R5.5 .

1. PHP

PHP 8 functionality

New PHP 8 functionality is reserved for 6.1 branch releases .
Currently Supported PHP Versions

2. Features

3. Core

  1. add utf8_word_count function DONE
  2. Why does it store interwiki in session and not as JSON in _cache/config/interwiki.conf?
    • get_inter_wiki_url($name, $tag)
  3. move interwiki.conf and antispam.conf into table & _cache/config/*
  4. add option to enforce email validation before a user can login
  5. notify_watcher(): add direct link to diff mode in email body
  6. it sucks to see again and over again all these random session_notice(s), add a option to turn it off for daily work.
  7. COLLATE utf8mb4_bin for tag eats 𝓦𝓲𝓴𝓲𝓦𝓸𝓻𝓭𝓼 in LIKE '/%' query, without slash it finds it, whO_Ot
  8. Tag Pattern Issues
    1. it is possible to create a page tag with a underscore, but then the page won't be found via run() function because _ is cast away – DONE
    2. Only alphanumeric signs at the start and end of the tag and each subtag should be allowed, furthermore the use of more then one dot (.) or hyphen (-) in consecutive order should be not allowed, to avoid conflict with wiki formatter syntax.
  9. UTF-8 text must be checked for well-formedness
    • static function is_utf8($string)
      {
        return (bool) preg_match('//u', $string);
      }
  10. set return type declarations : (array | bool | float | int | mixed | string | void | ... )
  11. fix client side JS input validation patterns
    1. login and registration action DONE
    2. new, clone and rename handler
  12. Replace all HTML-Entities except HTML special chars
    1. nbsp; — to indent or add extra spacing to a paragraph, sentence, or another portion, better using CSS instead of multiple non-breaking spaces.
  13. add option to disable hit counter
    • user already uses web analytics software or there is no use case for a hit counter
    • This reduces database load, updating the page and file hits field with every page hit is a main source for slow queries.

4. Installer


5. Handler

  • add ability to remove / hide certain revisions via GUI
    • SQL cache -> revision handler
    • message boxes
  • wordbreak, how to break lines of Chinese, Japanese, or Korean
    • line-break: strict;
      white-space: nowrap;
      word-break: keep-all; 

6. Action


7. Formatter

  • auto-paragraph did not terminates correctly in indent div having a code wrapper
    • <div class="indent"><pre class="code">su</pre>
      <p id="p86658-7" class="auto"></div>
  • text inside ##code formatter## is processed as wikitext with possibly undesired results
    • the text must be escaped to be taken as is
  • removes intentional left empty lines inside info formatter
  • parse also anchor with dash, e.g. tag#one-two
  • ((../ Go Back)) goes back two levels, but should go to parent page only
  • interwiki links are not tracked
  • relative links were not parsed in the context of the page they are included, what is the default behavior?
  • re-parsing all pages and links may result in wrong toc references, when the included page gets parsed after the page which includes them
    • HOTFIX: save all included pages with wrong toc reference again, this will update body_toc

8. Cache

  • set new default cache_ttl values in config default and description in documentation
    • seconds duration
      600 10 minutes
      1200 20 minutes
      3600 1 hour
      7200 2 hours
      18000 5 hours
      86400 24 hours
      2678400 31 days

Evaluate page cache

SELECT cache_lang, method, count(cache_id) AS n 
FROM `prefix_cache` 
GROUP BY cache_lang, method 
ORDER BY `cache_lang`, n DESC, method;


9. Database


10. Libs

  1. php-diff successor
    1. https://github.com/jfcherng/php-diff
    2. https://github.com/JBlond/php-diff <— SWITCHED TO 
    3. https://github.com/sebastianbergmann/diff

11. Testing

  1. https://github.com/rectorphp/r[...]rview.md#codequality

11.1. Test cases

-> Test cases