View source for 5.5 Release Notes

===R5.5==
(31.12.2019) ((Commit:b4095e3bda506094d298e6b6a3c293eb3db0f9d6  b4095e3)) -> M17 ++(((/Dev/Release/R5.5/ChangeLog Change Log)))++

{{toc numerate=1 from="h3" to="h6"}}

This is a major release and a security update for the stable 5.x branch. 
In addition to miscellaneous fixes the 5.5 release serves mainly three purposes: Migration to HTML5, address security related features and PHP 7.0 - 7.4 compatibility.

file:/mammut_mascot.jpg?right

====Notable in this release====
  1. complete PHP 7.0 - 7.4 compatibility
  1. HTML5 support
  1. major refactoring of init system
  1. new session handler
  1. new ((/Dev/Projects/UriRouter URI router))
  1. new ((/Dev/Projects/Templatest/Usage template engine))
  1. added php-diff rendering methods
  1. replaced all icons with SVG icons
  1. implemented auth and form token
  1. added support for audio, video and SVG files
  1. added ((/Dev/Components/Lib/BadBehavior Bad Behaviour)) as extension
  1. public registration moderation by admin
  1. using ##password_hash()## and ##password_verify()## API
  1. file link tracking
  1. improved notification handling
  1. localized WikiEdit and Admin panel

milestones
  * beta - 14.12.15
  * rc - 18.04.16
  * rc2 - 12.08.16
  * rc3 - 05.06.17
  * final - 25.08.17
  * m17 - 31.12.19

====Download==
**((https://downloads.sourceforge.net/wackowiki/wacko.r5.5.17.zip wacko.r5.5.17.zip))**
  * SHA1: b27118eff92927ef134bc3bbfb2eb517614f85ef
  * File updated to change set b4095e3bda506094d298e6b6a3c293eb3db0f9d6

**Repo files** (including ((source:5.5/community community)) folder)
  * **R5.5.17 ((https://bitbucket.org/wackowiki/wackowiki/get/5.5.17.zip  zip)) ((https://bitbucket.org/wackowiki/wackowiki/get/5.5.17.tar.gz gz)) ((https://bitbucket.org/wackowiki/wackowiki/get/5.5.17.tar.bz2 bz2))**

Clone repo
%%git clone -b 5.5.17 https://bitbucket.org/wackowiki/wackowiki.git%%

====Upgrade path==
((/Dev/Release/R5.0/Upgrade R4.x –> R5.0)) (requires PHP 5.2 / 5.3)
((/Dev/Release/R5.5/Upgrade R5.x –> R5.5)) (requires **PHP >= 7.0**)

Please read the **((/Dev/Release/R5.5/Upgrade upgrade notices))** carefully.

====Installation==
((/Doc/English/Installation Installation guide))

=====Requirements=====
((/Dev/Release/R5.5/Dependencies requires now))
  * PHP >= 7.0 (PHP 7.3 recommended)
  * PHP Extensions
    * bcmath, ctype, gd, iconv, json, mbstring, openssl, pcre, spl
  * Apache >= 2.4
    * mod_rewrite (recommended)
  * SQL database system, one of:
    * MariaDB >= 10
    * MySQL >= 5.6

Step by step as **((/Doc/English/Installation/Screenshots Installer Screenshots))**.

Preparing the Database for Installation

**Data base configuration**: If the installer asks you for charset, select the appropriate character set, e.g.
  * [cp1252 West European] for Latin 1
  * [cp1251 Windows Cyrillic] for Russian
  * [cp1257 Windows Baltic] for Estonian
  * [ISO 8859-2 Central European] for Polish and Hungarian
  * [ISO 8859-7 Greek] for Greek

=====File Permissions=====
((/Doc/English/FilePermissions Change the permissions)) on the following files and directories to be writable

Example:
##touch config/config.php##
##chmod 666 config/config.php##

##chmod 0755 _cache/config/ _cache/feed/ _cache/page/ _cache/query/   _cache/session/ _cache/template/ file/backup/ file/global/ file/perpage/ file/thumb/ xml/##

##chmod 0660 config/lock config/lock_ap sitemap.xml##

reset after installation / upgrade
##chmod 644 config/config.php##

=====Path for session values==
Check if the provided path for ##CACHE_SESSION_DIR## is correct. The default value is ##/tmp## but may vary in your environment. 
Furthermore you may want to change this to a ((/Dev/Components/SessionHandling custom folder)) for the application (e.g. ##_cache/session##) .

**constants.php**: 
%% define('CACHE_SESSION_DIR',		'/tmp');	%%

=====Path to user and group profile=====
The path for link to the users page or profile ##""((user:UserName UserName))""## is set in ##config['users_page']##. 
  * e.g. ((user:WikiAdmin WikiAdmin))

The path for link to the group page or profile ##""((group:GroupName GroupName))""## is set in ##config['groups_page']##. 
  * e.g. ((group:WackoWiki WackoWiki))


=====New config settings==

Please check the ((/Dev/Release/R5.5/ChangeLog Change Log)) for more details.

====Admin Panel==
The ((/Doc/English/AdminPanel Admin panel)) remains in **!!beta!!** stage.
  * to login define the ##recovery_password## in the config.php file first
    1. call the ##""{{admin_recovery}}""## action as Admin and generate the password hash for your recovery_password
    2. add the password hash: ##'recovery_password' => 'add hash here',##
  * Don't forget to delete the _cache/config/config.php afterwards.
  * **you must be logged in as member of the Admin group** in the first place **to access the admin panel**
  * call yourwiki/admin.php
  * enter your recovery_password

If your Admin panel gets locked reset **config/lock_ap** from ##1## to ##0##

====Themes==
All ((/Dev/Themes themes)) other than ##default## are outdated and unmaintained and were moved to the **((source:5.5/community/theme/ community/theme))** section. If you like to use one of them, please help to update this particular theme.

If you want to keep your layout, you have to use a program like Meld or WinMerge to merge your CSS and other theme files with the new files in the folder **((source:5.5/wacko/theme/default wacko/theme/default))**.

A Guide for the new **((/Dev/Projects/Templatest/Usage template engine))** will hopefully follow soon. Nevertheless you can write or adapt your theme without using the template engine.

====Backwards Compatibility==
We dropped compatibility code for older PHP and MySQL versions. R5.5 requires at least PHP 7.0 and MySQL 5.6. To use WackoWiki with older PHP or MySQL versions, use the previous branch of 5.4.x releases, which you can find on the ((/Download/LegacyVersions download page)). 

====Known Issues==
All ((ToDo known issues)) are tracked in our ((https://wackowiki.org/bugs/ Bug Tracker.))
  1. **((/Dev/Release/R6.0/ToDo/SessionTimedOut Session duration issue))**
  1. Missing route cases (needs fix)
    2. CSS files in RECOVERY mode
  1. **activate** the option ##multilanguage## in the installer / secondary config to avoid the following issues:
    3.  chars from another charset are not converted to HTML unicode entities
    4. This issue will become obsolete with our upcoming Unicode ready Wiki engine.
  6. WikiEdit won't show if you use [et] or [pl] as page language with the auto complete feature -> SyntaxError: invalid range in character class
    7. **Workaround**: disable Autocomplete under user settings -> extended -> Complete wikilinks by Ctrl+Space

====Developers==
=====New debug functions=====
  1. to write a parameter in the debug log
    * ##Ut::dbg('debug_variable', $parameter);##
  1. add debug output to DEBUG file and popup-window in browser
    * ##Diag::dbg($parameter);##
    * to highlight the debug output in the console add ##'[BLUE|GOLD|ORANGE|RED]'## as the first argument 
      * e.g. ##Diag::dbg('GOLD', $parameter);##

In both cases it writes the ##$parameter## to the log in the main directory ##wacko/DEBUG## when the config ##debug## is enabled. 
Be aware the log isn't emptied automatically. **Ensure** that the file ##wacko/DEBUG## can be created and is writable.
%%
touch DEBUG
chmod 0664 DEBUG
%% 

=====Access config values=====
  * new: ##db->users_page##
  * legacy: ##config['users_page']##

=====HTTP functions=====
  * new
    * ##http->redirect()##
    * ##http->invalidate_page()##

=====SQL functions=====
  * new
    * ##db->sql_query()##
    * ##db->load_all()##
    * ##db->load_single()##

====Credits==
Of note, is the large contribution of ((user:RideSnowNow Serge Terekhov)) to this release.

  * ((user:RideSnowNow RideSnowNow)) -- developer, translation
  * ((user:birnbacs birnbacs)) -- patches ((bugs:443 #443)), ((bugs:444 #444)), ((bugs:422 #422)),  ((bugs:432 #432))
  * ((user:javafun javafun)) -- patches ((bugs:432 #432))
  *  ((user:TriS TriS)) -- patches ((bugs:432 #432))
  * ((user:RichMarisa RichMarisa)) -- testing ((bugs:432 #432))
  * ((user:Raysir Raysir)) -- testing, translation, patches ((bugs:447 #447)), ((bugs:462 #462)), ((bugs:461 #461))
  * ((user:Elar9000 Elar9000)) -- developer, translation, support
  * ((user:EoNy EoNy)) -- translation, documentation, screenshots, support
  * CodeFetch  -- patches ((bugs:458 #458))
  * ((user:KlePy KlePy)) -- Spanish translation
  * ((user:SatTva SatTva)) -- Russian translation
  * ((user:Abram4 Abram4)) -- Russian translation , testing ((bugs:464 #464)), ((bugs:470 #470)), ((bugs:471 #471)), ((bugs:484 #484)), ((bugs:493 #493))
  * ((user:Mangalor Mangalor)) -- patches ((bugs:497 #497))
  * ((user:ascrnet ascrnet)) -- testing ((bugs:518 #518)), ((bugs:519 #519))