View source for R5.5 Release Notes

===R5.5==
(08.07.2019) ((Revision:e9babed Revision:4545)) -> M11 ++(((/Dev/Release/R55/ChangeLog Change Log)))++

As work on WackoWiki 5.5 is ((/Dev/Release/R55/ToDo still underway)), this is an incomplete list of changes.
 
{{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.3 compatibility.

file:/mammut_mascot.jpg?right

====Notable in this release====
  1. complete PHP 7.0/7.3 compatibility
  1. HTML5 support
  1. major refactoring of init system
  1. new session handler
  1. new ((/Dev/Release/R55/UriRouter URI router))
  1. new ((/Dev/Release/R55/TemplateEngine 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. moved page title (H1) from theme header to show handler
  1. added 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
  * m11 - 08.07.19

====Download==
**((https://downloads.sourceforge.net/wackowiki/wacko.r5.5.11.zip wacko.r5.5.11.zip))**
  * SHA1: c7cebdcda6f7a692421695e14e68770ea1747477
  * File updated to change set 4545 - e9babed

**Repo files** (including ((source:community community)) folder)
  * **R5.5.11 ((https://bitbucket.org/wackowiki/wackowiki-stable/get/5.5.11.zip zip)) ((https://bitbucket.org/wackowiki/wackowiki-stable/get/5.5.11.tar.gz gz)) ((https://bitbucket.org/wackowiki/wackowiki-stable/get/5.5.11.tar.bz2 bz2))**

Clone repo
%%hg clone https://bitbucket.org/wackowiki/wackowiki-stable -r 5.5.11%%

====Translations==
  * ((Translations Call for Localization))
    * If you can help with languages other than English and German, it would be appreciated.

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

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

====Installation==

=====Requirements=====
((/Dev/Release/R55/Dependencies requires now))
  * PHP >= 7.0 (PHP 7.2 recommended)
  * PHP Extensions
    * bcmath, ctype, gd, iconv, json, mbstring, openssl, pcre, spl
  * Apache >= 2.2
    * 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
  * [ISO 8859-2 Central European] for Polish and Hungarian
  * [ISO 8859-7 Greek] for Greek

=====File Permissions=====
Change the permissions on the following directories to be writable
##touch config/config.php##
##chmod 666 config/config.php##

Example:
##chmod 0777 _cache/config/ _cache/feed/ _cache/page/ _cache/query/ _cache/session/ _cache/template/ config/lock config/lock_ap file/backup/ file/global/ file/perpage/ file/thumb/ xml sitemap.xml##

##chmod 0660 config/lock config/lock_ap##

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/Release/R55/SessionHandling custom folder)) for the application (e.g. ##_cache/session##) .

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



=====RewriteBase==
If your webserver's URLs are not directly related to physical file paths, you will need to use ((https://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritebase RewriteBase)) in every .htaccess file where you want to use RewriteRule directives.
%%
RewriteBase /
%%
%%
RewriteBase /folder/
%%

e.g. .htaccess
%%
<IfModule mod_rewrite.c>
 RewriteEngine on

 RewriteBase /folder/

</IfModule>

%%

=====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/R55/ChangeLog Change Log)) for more details.

=====Custom CSP settings=====
e.g. example for your custom CSP settings

**csp_custom.conf**
%%
Content-Security-Policy:
default-src 'self';
script-src 'self' 'unsafe-inline';
style-src 'self' 'unsafe-inline';
img-src * data:;
media-src 'self' archive.org *.youtube.com *.youtube-nocookie.com dailymotion.com;
object-src 'self' archive.org *.googlevideo.com *.ytimg.com *.youtube.com *.youtube-nocookie.com dailymotion.com;
child-src 'self' archive.org *.youtube.com *.youtube-nocookie.com *.dailymotion.com;
%%

====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 themes other than default are outdated and unmaintained and were moved to the **((source: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:wacko/theme/default wacko/theme/default))**.

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

-> ((/Dev/Themes Themes))

====Extensions==
  * ((/Dev/PatchesHacks/BadBehavior Bad Behaviour))
  * ((/Dev/PatchesHacks/Gallery Gallery))
  * ((/Dev/PatchesHacks/ImageSlider Image Slider))
  * --((/Dev/PatchesHacks/MultiUpload Multi Upload))--
  * ((/Dev/PatchesHacks/GeSHi Formatter: GeSHi Code Highlighting))
  * ((//Dev/PatchesHacks/MantisWackoWikiIntegration Mantis-WackoWiki Integration))

====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 older (but still maintained) 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/R55/ToDo/SessionTimedOut Session duration issue))
  1. Missing route cases (needs fix)
    2. CSS files in RECOVERY mode
  1. Do not use Latin1 code page for non-Latin1 content if not necessary, switch the page language accordingly
  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 0777 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()##

====Documentation==
  * URL: https://wackowiki.org
  * Repository ##""https://bitbucket.org/wackowiki/wackowiki-stable""##
  * Documentation https://wackowiki.org/doc/

====What's Planned==
WackoWiki is pretty usable now. There are of course few peculiarities and bugs, some old ones and some new ones which are waiting to be fixed. Now the main task is to make the Wiki engine better, reduce bugs and make it more stable.

Apart from that following features are ((/Dev/Roadmap planned to be implemented)):
  1. extended ACLs
  1. WackoFormatter rewrite
  1. responsive device-agnostic theme
  1. improve GUI usability
  2. filters for lists
  1. faceted search
  1. **((/Dev/Release/R7/Unicode UTF8 support))** -> PHP 7/8 only
  1. Libsodium, ((https://wiki.php.net/rfc/argon2_password_hash Argon2 Password Hash))
  1. archive table
  1. guest settings

====Contribute====
Those interested in following and contributing to the development of WackoWiki can check out the hg repository, and participate in the discussions on the WackoWiki Development and contribute patches. Policies and the current state of the project and plans are available in the ((/Dev Dev section)) of the wiki.

  * ((/Org/Tools/Repository Repositories))
  * ((https://wackowiki.org/bugs/ Bug Tracker))
  * ((/Forum Forum))
  * ((/Dev/Translations Translations))

====Feedback==
{{comment page="/Dev/Release/R55/ReleaseNotes/" text="Leave a comment here"}} if something is not clear or you have further questions.

====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))


----
original is located at: ((/Dev/Release/R55/ReleaseNotes))