R5.5 Release Notes

R5.5

(05.06.2017) Revision:3771 -> RC3 (Change Log)


- Release Candidate - As work on WackoWiki 5.5 is still underway, this is an incomplete list of changes.



This is a major release.
In addition to miscellaneous fixes the 5.5 release serves mainly three purposes: Migration to HTML5, address security related features and PHP5.6/7.0 compatibility.


mammut mascot

1. Notable in this release

  1. complete PHP 5.6/7.0 compatibility
  2. HTML5 support
  3. major refactoring of init system
  4. new session handler
  5. URI router
  6. new template engine
  7. replaced all icons with SVG icons
  8. implemented auth and form token
  9. added support for SVG files
  10. moved page title (H1) from theme header to show handler
  11. added Bad Behaviour as extension
  12. public registration moderation by admin
  13. using password_hash() and password_verify() API 
  14. file link tracking
  15. improved notification handling
  16. localized WikiEdit

milestones

  • beta – 14.12.15
  • rc – 18.04.16
  • rc2 – 12.08.16
  • rc3 – 05.06.17
  • final –
  • maintainance3 –

2. Download

wacko.r5.5.rc3.zip

  • SHA1: dd1ce013d3670987fe3338a2de75dd725106eb33 [File updated to change set 3771 -84f0e645db81]

Repo files


Clone repo

hg clone https://bitbucket.org/wackowiki/wackowiki-stable -r 5.5.rc3

3. Translations

  • Call for Localization
    • If you can help with languages other than English and German, it would be appreciated.

4. Upgrade path

R4.x > R5.0 (requires PHP >= 5.2)
R5.x > R5.5 (requires PHP >= 5.5)


Please read the upgrade notices carefully.

5. Installation

5.1. Requirements

requires now

  • PHP >= 5.6.0 (PHP 7.0 recommended)
  • PHP Extensions
    • bcmath, ctype, gd, iconv, json, mbstring, pcre, spl 
  • Apache >= 2.2
  • SQL database system, one of:
    • MariaDB >= 10
    • MySQL >= 5.6

Step by step as 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-7 Greek] for Greek

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/template/ config/lock config/lock_ap file/backup/ file/global file/perpage xml sitemap.xml


chmod 0660 config/lock config/lock_ap


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

5.2. RewriteBase

If your webserver's URLs are not directly related to physical file paths, you will need to use 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 /doc/

</IfModule>

5.3. SQL Mode

If you work on a home-brew stack using MySQL 5.6 or 5.7, please check your sql_mode settings.
MySQL switched the SQL-Mode to 'strict' as default since 5.6 and all versions of WackoWiki prior to 5.5 will fail with SQL-Mode 'strict' on. So you must turn it off. We working on a patch.


SELECT @@GLOBAL.sql_mode, @@SESSION.sql_mode;


Disable: NO_ZERO_DATE, ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, STRICT_ALL_TABLES, TRADITIONAL.


my.cnf

# The MySQL server
[mysqld]
sql_mode = NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER

5.4. 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'].


The path for link to the group page or profile ((group:GroupName GroupName)) is set in config['groups_page'].


5.5. New config settings

primary config

  1. 'allow_persistent_cookie ' => '',

constants

  1. RECOVERY_MODE

conf files

  1. csp_custom.conf
  2. router.conf
  3. autoload.conf

5.6. 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' youtube.com youtube-nocookie.com;
	object-src 'self' youtube.com youtube-nocookie.com;
	child-src 'self' *.youtube.com *.youtube-nocookie.com;

6. Admin Panel

The Admin panel remains in Beta stage.

  • to login define the recovery_password in the config 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

7. Themes

All themes other than default are outdated and unmaintained and were moved to the 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 wacko/theme/default.


A Guide for the new template engine will hopefully follow soon. Nevertheless you can write or adopt your theme without using the template engine.


-> Themes

8. Extensions

9. Backwards Compatibility

We dropped compatibility code for older PHP and MySQL versions. R5.5 requires at least PHP 5.6 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 page.

9.1. MariaDB and XtraDB

XtraDB is an enhanced version of the InnoDB storage engine, designed to better scale on modern hardware, and it includes a variety of other features useful in high performance environments.


It is fully backwards compatible, and it identifies itself to MariaDB as "ENGINE=InnoDB" (just like InnoDB), and so can be used as a drop-in replacement for standard InnoDB.

9.2. Backward Incompatible Changes

  1. TODO

10. Known Issues

All known issues are tracked in our Bug Tracker.

  1. Do not use Latin1 code page for non-Latin1 content if not necessary, switch the page language accordingly
  2. Some translations contain untranslated English strings
  3. @@[local] in intra link may break the Formatter in combination with the toc action
    • e.g. ((../Russian/Wacko @@ru))
  4. activate the option multilanguage in the installer / secondary config to avoid the following issues:
    1. chars from another charset are not converted to HTML unicode entities
      1. This issue will become obsolete with our upcoming Unicode ready Wiki engine.
  5. multilanguage on: a user with a different but available browser default language can't access the default pages including login via the available theme because the Wacko engine will load this language and the related pages defined there are however possibly not applied / deleted or moved -> Solution: Restore / create the missing default pages for this language
  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
    1. HOTFIX: disable Autocomplete under user settings -> extended -> Complete wikilinks by Ctrl+Space

11. Developers

New debug function

  1. to write a parameter in the debug log 
    • Ut::dbg('debug_variable', $parameter);
    • Writes $parameter to the log in the main directory wacko/DEBUG when the config debug is enabled. Be aware the log isn't emptied automatically.

Access config values

  • new: db->users_page
  • legacy: config['users_page']

12. Documentation


13. 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 planned to be implemented:

  1. extended ACLs
  2. WackoFormatter rewrite
  3. improve GUI usability
  4. UTF8 support -> PHP 7 only
  5. archive table
  6. guest settings

14. Credits