It's better when it's simple

User Tools

Site Tools


Changelog for Developers

This page contains details about DokuWiki core changes that affect developers (plugins, templates and others) in order to separate them from the more commercial user release notes that should encourage usage of DokuWiki and upgrading to the latest release.

:!: You can subscribe to this page to stay informed about changes1)


Development night-shot


Change Submit Affects
FIXME 3115
FIXME 4085

Suggestions for refactoring and updating of your code of plugins: refactor2024 (needs update).

Github issue tracker:

Old bug tracker: Read-only

Release Winter 2024 “Kaos”

Change Submit Affects
FIXME 3115
Cache: Imports may not be named like local classes 7a9c51a Cache
Show update message in Extension Manager if available 4172 Extension Manager
Feed creation refactoring 4156 4191 Feed
Adjust url 4150
Correctly escape comments in user names. Might affect some cases with not-escaped # or comments in the users.auth.php. Needs manually fix by escaping # as \#. 4138 #-character in user file
More resilence when talking to plugin repo. 4136
Complete remote API Refactoring. Introduces JSON-RPC api. JSON-RPC is now recommended over XML-RPC. See also blog. 4134
Automatically prune old logs. The setting logretain defaults to keep a log for 3 days. 4127 Logs
Upgrade to phpseclib Version 3.
Logout if exceptions occur.
4115 4198 encryption/ decryption
Add support for X-Forwarded-Host proxy header, checks also trustedproxy. 4104 Proxy
Don't break config manager if plugin renderer fails to load 4085
strip any trailing dots when resolving IDs 4074
Refactor mode of Changelog 4071
Use str_starts_with/str_ends_with() 4061 4062
Refactor autoloading. Do not autoload disabled plugins. Register composer autoloaders for plugins. 4059
Code smell/style changes 4049 4050 4073
Use Rector to autofix code smell. Applies many improvements and reformatting
ptln() deprecated
4045 4107 4112 4116 4123 4159 4163 4165 4176 4181 a555046 Codestyle
Close curid span correctly 4042
Ensure data is complete 4036 4183 Extensions without template/
Fix no error message was shown on input errors in the config manager 4034
ldap: do not crash if gidnumber is not present 4016
Prevent double escaping of HTML form labels 4008 Form::addLabelHTML()
Set SameSite=Lax Cookie Attribute 3994
Enforce content type on XML-RPC. 3993
Remove link, because it is wrongly cached for once existed pages. 3981 ec2224d
Fix XSS in RSS syntax 3967
Avoid flicker when highlighting a section. No rerendering which would reload e.g. videos as well 3957
Fix PHP8 deprecated warnings 3947 3983 3985 4016 4178
HttpClient: use microtime(true) directly 3941
Support SVG logo in dokuwiki template. Height of logo is now fixed, override in userstyle if other size is desired. 3938 71808af Size logo

Suggestions for refactoring and updating of your code of plugins: refactor2023 (needs update).

Github issue tracker:

Old bug tracker: Read-only

Release Spring 2023 “Jack Jackrum”

Date Change Submit Affects
2023‑04-04 Simplify media manager panel height 3935
2023‑03-20 Show only last part for large logs in Logviewer to avoid out-of-memory problems 3922 3928
2023‑03-14 Fix password input field name (deletion of user profile) 3920
2023‑03-29 Move JS compression into external dependency php-jsstrip. And do not recompress .min.js. 3917
2023‑03-29 Fix old revisions skipping one revision 3915
2023‑03-14 Improve Mail EOL handling.
Fix trim call in Mailer's name cleaning
Add Message-ID to all mails
3831 2b58f04 3758
2023‑03-11 Remove sitemap ping to Bing 3680
2023-03-11 Don't send notifications if no save happened. a577fbc
2023‑03-08 Output full path when initializing savedir path fails 3905
2023‑03-10 Automate the release workflow using GitHub actions
Add mechanism to parse the Version data into its parts
GitHub Workflows security hardening
3899 a42c05d 3827
2023-03-10 jQuery 3.5 to 3.6 and jQuery UI 1.12 to 1.13 updates
update to lesserphp 0.6
composer updates
Adjustments for new SimplePie version
4e4e74c 7e785b0
2afbbba 9aee973
2023‑02-15 Properly quick search in titles with UTF-8 chars 3895
2023-02-13 AuthPlain user parsing fix 9349702
2023‑02-06 Check Basic Auth scheme in Authorization header 3880
2023‑02-09 getVersionData() improvements 3878
2023‑02-01 Fix accidental overwriting of variable in bulkmailer 3865
2023-01-31 Try utf8_decode() last c7acaa1
2023-01-31 Use httpbingo for HTPP tests
Use self hosted msglint api.
d9a7912 45230f1
2023-01-31 Add webp to default mime types b9b8bba
2023‑01-26 Use POSIX standard 'dot' built-in rather than 'source' in jquery update shell script 3864
2023‑01-25 Added check for ldap_search 3849
2023‑01-24 Avoid some unnecessary index file writes. 3860
2022‑12-10 New ~~INFO:hooks~~ syntax for the info plugin, to show all registered handlers. 3844
2022‑10-27 Fix handling of unknown array settings 3817
2022‑10-27 Replace phpquery by php-dom-wrapper. Usage is similar but not a 1:1 replacement. Updating of plugin tests needed.

phpQuery is left in but marked as deprecated.
Unit tests that query html
2022‑10-27 Reordening file structure and autoloading of the Tests 3812
2022‑10-20 Change text color for diff 3813
2022‑10‑19 Support 'multiple' attribute in Form selects 3721 Form
2022‑10-19 Removed the htmlok and phpok embedding options, to have not options with grave security implications built-in. For alternatives see: html FAQ. 3798 Embedded HTML and PHP
2022‑10-04 Delete .gif files (icons) from installation, which were already replaced in 3344 3589 .gif-images
2022‑10-04 Opening up CSP headers for fetch.php resources. Should help with links and fonts within SVG files 3115
2022-09-03 Security fix difftype handling 63e9a24
2022‑08-15 Remove Accept-Encoding from auth_browseruid() 3744
2022‑08-15 Log PHP warnings to error log with stacktrace. Add feature flag hidewarnings to disable the display of the warning.

Log additional errors as well, e.g. from composer in plugins.
Output log messages to STDERR during unit testing
Log deprecation messages independent from allowdebug
3115 3820
6c6732d6 25edeec
2022‑10-19 Introduce sexplode() as a PHP8 safe explode() 3754
2022‑08-15 Fix PHP8 warnings 3739 3747
3755 3780
3789 3832 3841
3846 3869
3872 3873
3884 3889
ac1d821 b43a139
40f2b82 ec88e83
c4055b8 062cf88
96ebed3 c7dab4e
2023-03-11 JPEGMeta: clean up exception handling d40e7d0
2022‑08‑05 Fix showing revisions when pagename contains a dot 3731 3732

Suggestions for refactoring and updating of your code of plugins: refactor2022 (needs update).

Github issue tracker:

Old bug tracker: Read-only

Release Summer 2022 “Igor”

Date Change Submit Affects
2022-07-02 Fix the check if zlib_decode exists 3703
2022-06-24 Remove animal from query string. Combined change with Farmer plugin 3686 Farmer setup
2022-06-24 Fix loading order of extra defaults settings displayed in the Config Manager, now equal to actual reading. 3349
2022-06-24 Feature: Add dokuwiki.createUser function to create new users via XML RPC. Adds specific error codes.

Fix: Handle correctly exceptions in XML RPC
3609 3620 xmlrpc
2022‑06‑24 Add an config setting to prevent password changes in authad plugin 3595 ADauth plugin
2022-06-01 Broken link to old bugtracker removed for broken_iua setting 3683 Config
2022-05-12 New sitemap ping URL 3670 Sitemap
2022-05-12 Restrict editor textarea to vertical resizing only 3669 Editor
2022-05-12 Search also page titles in Linkwizard if useheading is enabled 3499 Linkwiz
2022-04-28 Adds a new event DOKUWIKI_INIT_DONE. Is always executed after initialization, regardless the called script (eg. in lib/exe/ajax.php or in endpoints provided by plugins). Is alternative for DOKUWIKI_STARTED which is limited to a specific endpoint. 3640
2022-02-17 Updated username validation during installation (additional chars are accepted) 3631 installation
2022‑02-03 Accept returnonly parameter to header() in xhtml renderer
Breaking Change xhtml renderers implementing this method needs this extra optional parameter (in PHP8?)
header(… , $returnonly = false)
3618 xhtml renderer plugins implementing header()
2022-02-04 Correctly (re)cache modified images. Adds event IMAGEMOD_CACHE_USE 3612 caching images
2022-01-27 RSS Feed: Disabling search fix 3610 RSS feed
2021-12-13 Check security token on logout.
:!: Logout links should add security token e.g. array('do' ⇒ 'logout', 'sectok' ⇒ getSecurityToken())
6a25531 logout link in templates
2021‑12‑30 Refactoring of html of Revisions and Diff views.

See refactor2021 for details

Introduces also PageFile and MediaFile classes
3581 3361 3607 3590 html of diff and revs
2022‑01‑10 Add event ACTION_DENIED_TPLCONTENT to modify text in denied action 3580
2021‑11‑11 Add event PARSER_LOCALE_XHTML to p_locale_xhtml(), to override the id of the text or modify the parsed html 3579
2021‑11‑11 Move IXR XML RPC to composer dependency.
Old functions/classes are deprecated.
Some API changes e.g. debug
See also refactor2021
3534 3704 IXR XML RPC
2021‑10‑14 Refactor page and media resolving, introduce ~ shortcut to reference the current page as namespace.
Handle hashes in page_exists().
Deprecated resolve_id(), resolve_mediaid() and resolve_pageid() (see also refactor2021)
3272 3630 Extensions should replace resolve functions
2021‑09-16 Fix the calculation of file permissions
Breaking Change: This patch removes the passing of dmode as second parameter to all mkdir calls, making it default to 0700 which is also what we test against in init_creationmodes().

Plugins not relying on our io_* functions and do create their own directories and which currently pass dmode to it need to be adjusted to remove that second parameter. FIXME is this todo clear enough?
3520 dmode in io_* functions
2021‑09-16 Cli: allow installing extensions from URL 3518 Cli
2021-09-16 Add support for SHA256 encrypted passwords 3514
2021-08-02 Fix git recognition for extension installations via git-submodules. 3517
2021-08-02 HTTPClient: Fix missing processing of redirections with status code 303, 307, 308 3516
2021-04-05 Also allow excluding namespace in page look-ups 3456
2021-07-06 Add NOSESSION to not require authentication for manifest 3510
2021-04-05 Fix check for unique ids in sectionID() 3442
2021-04-05 Add semantic section elements 3432 dokuwiki template
2021-02-08 Add class to h1 of logo, therefore, it easier to change h1 to div if prefered. e.g. to have not more than h1 per page. 3408 template
2021-02-04 PHP8 and PHP 7.3 improvements 3395 3472 3477 3536 3562 3574
2021-02-16 Cli - dwpage.php: add an option to get metadata 3386 Cli
2021-01-31 Layout fixes for HTML export mode 3397
2021-01-16 Fix double border on abbr elements in Chrome 3383
2021-01-09 Send popularity data securely 3375
2021-01-12 Delete random_compat library as no longer used 3373
2021-02-16 Media Manager Refactoring. Previews for images, SVG icons, lazy loading
:!: Custom .png and .gif icons are not automatically recognized anymore
3372 custom file icons
2021-02-16 Lazy load images 3367 images
2021-03-04 Do not repeat successful security checks of data directory 3368 3431
2021‑01-03 Handle opcache invalidation failure 3360
2020-12-20 Remove clientIP() verification from page locking, prevents lock with shared ip 3269
2020-12-20 Simplify clientIP() function 3270
2020-12-20 Improve auth_browseruid() as used in DokuWiki's session cookie 3268
2020‑12‑03 Work around disabled php_strip_whitespace for parsing config file 3343
2020‑12‑03 New Logging and error handling Improve global error and exceptions handling. Adds logging and nice error page. Central logging system. Logviewer admin plugin.
See also Introductionary blog post
Set via the dontlog setting which type should be logged.

Add event LOGGER_DATA_FORMAT to change logged data or intercept it
3203 413313a 3354 3593 3614 3396 Logging
2020‑12-03 Fixing of cell width of the diff view.
Remove obsolute attribute from html
Avoid potential horizontal overflow in mobile view
3307 3448 3484
2020‑11‑25 Use SVG based smileys
:!: As SVGs are scalable, the size is set with an extra class smiley. The old .gif-images are removed
3344 0145507 smileys
2021‑07‑19 Use SVG based interwiki icons
The old .png and .gif-images are removed
4ef5d38 1e519eb interwiki
2020‑11‑25 Allow revert action for logged in users only, to prevent misuse by bots. 3346
2020‑11‑19 Restrictive Content-Security-Policy for media. Added to the MEDIA_SENDFILE event as well. 3310
2020‑11‑19 Allow now uploading and displaying of SVG images as well, since the right CSP-headers are in place. 3340 svg
2021‑05‑06 Fix groups match in auth_ismanager() and auth_isadmin() 3318
2020‑11‑25 GitHub workflow. Update unit test to phpunit 8 3342 3369 3404 3406 3412
2020‑11‑25 Cli support for user manager 3240 Cli, usermanager
2020‑11‑19 Use Slika for image resizing and cropping. Add autorotate based on EXIF and webp support.
Deprecated: media_crop_imageIM(), media_resize_imageGD()
2020‑10‑28 Improve translations 3324 3256 3549
2020‑10‑14 Don't crush tables too narrow. Give tables minimal width of 50%.
Better max-width for images in tables
3253 3390
2020‑10‑14 No empty inputs fields possible in Styling plugin 2303
2020-10-13 Refactor html_* functions into Ui class member using Form\Form class
Deprecated functions: html_login(), html_denied(), html_showrev(), html_show(), html_draft(), html_locked(), html_revisions(), html_recent(), html_index(), html_list_index(), html_li_index(), html_li_default(), html_backlinks(), html_diff_head(), html_diff(), html_diff_navigation(), html_diff_navigationlink(), html_insert_softbreaks(), html_conflict(), html_register(), html_updateprofile(), html_edit(), html_edit_form(), html_resendpwd(), html_form(), html_form_output(), html_sizechange(), tpl_subscribe().
Replaced by FORM_*_OUTPUT

Details see refactor2021.
3198 3348 Plugins and templates using html_* functions
2020‑10‑13 Show correct version if development version from git is used 2443
2020‑10‑13 Improve rendering of links at start of a line 2433
2020‑09‑10 Honor useRewrite setting in redirection from index.php 3111,2706
2020‑08‑31 Add confirmation dialog for Revert action 3222
2020‑08‑26 Sort, when 'intl' PHP-extension is available, all alphabetical sorts with a language dependent collator.
Alphabetical comparisons and sorts should be changed the following way:
from strcmp(), strcasecmp(), strnatcmp() and strnatcasecmp() to Sort::strcmp(),
from sort() to Sort::sort(),
from ksort() to Sort::ksort(),
from asort(), natsort() and natcasesort() to Sort::asort() or Sort::asortFN()
3115 Plugins and templates should replace php's functions
2020‑08‑12 Refactor: Public access to patterns in external link parser 3228
2020-08-10 “ı” character added to loweraccents.php 3211

Suggestions for refactoring and updating of your code of plugins: refactor2021.

Github issue tracker:

Old bug tracker: Read-only

Release Summer 2020 “Hogfather”

Date Change Submit Affects
2020-07-23 Display list of allowed mime types in media uploader3206
2020-07-13 Make router for PHP's builtin server work with dotted page names3166
2020-06-30 Add MEDIA_RESIZE event when an images is requested by a client to prevent or change resizing3046 Image resize
2020-06-30 Use envvars in shebang of executables3172 Cli
2020-06-08 Improve noNS() to return b for a:b:3116, 3155
2020-06-05 Add flexbox to admin menu link to fix text width 3145
2020-05-31 Add INFOUTIL_MSG_SHOW event for msg()3069, 3117
2020-05-31 Add fallback to tpl_getMediaFile() which points default to blank.gif 2684 Templates
2020-05-29 Cache results of isAdmin() and isManager()3075
2020-05-17 Checks for PHP mail during installation and warns if mail used after installation3056
2020-05-01 change Revert permission to Edit instead of Manager2995
2020-05-07 Upgrade for jQuery.Cookie to 1.4.1, fixes an issue with bad encoded cookies 3024
2020-05-04 Check exceptions before proxy use 3062 proxy
2020-05-04 Fix Mail errors, with multiple addresses at once 3061 mail
2020-05-04 Removed mail_send() 3067 Plugins
2020‑05‑04 Removed jQuery Migrate. (Eventually some background: 1546) Further, upgrades of jQuery 3066, 2989,
3192, 2442
old jQuery code in Extensions
2020-05-04 Removed Iris Color Picker. Was applied to class='color'. Alternative type='color' Note: alternative has a bit different return value. 3065, 3176 javascript color picker
2020-05-01 Fix allow '0' in name, namespace and page id uses. 3038, 2724
2020-05-01 RSS Feed can now show new items only 3007
2020-05-01 Allow fallback for trustExternal auth, for chaining 3006 Auth plugins
2020-05-01 Add overwrite option on extension upload form 3004
2020-05-01 Set class 'curid' to current page links by javascript. So no disabling of cache (of e.g. sidebars) needed 3003 mainly sidebars, and extensions rewriting curid
2020-05-01 Improve multiple levels of relative links e.g.,..:..:page 3002
2020-05-01 Show Revert button to all users with page edit permissions 2995
2020-04-14 Properly encode signature code 3045, 3048
2020-05-01 Rough fix for ActiveDirectory caching 3026
2020-03-26 AuthAD: allow empty account suffix. Allows different domains on login 3021 authAD plugin
2020-03-24 Adapt to higher PHP versions 2996, 2929,
2875, 2710,
2020-03-22 Prevent double encoding audio/video titles 2994
2020-03-09 Add option rss show_deleted to show deleted items in RSS feed 2136 RSS
2020-03-04 PSR-2/PSR-12 Refactoring Project

See refactor2020 for deprecations, removals and changes. Includes examples.
2959, 2992,
2970, 2961,
2904, 2780,
2759, 2757,
2725, 2689,
2653, 2389, 2382, 2358, 3122, 3132, 3098, 3040, 3023
A lot, see deprecations
2020-03-04 Determine height of content based at aside and pagetool 2987
2020-03-04 Improve application of fperm conf 2985 fperm config
2020-02-22 Github workflow 2969, 2945,
2720, 2698
2020-02-20 Refactor legacy code. Mediamanager 2983
2020-01-28 :!: Defer javascript.
Deprecated config defer js to disable it. How to improve: defer_js
Plugins with inline javascript will typically break.
2974 Javascript extensions
2020-01-23 Allow windows shares for Edge browser 2946
2020-01-20 Localized license references 2967, 3000
2020-01-20 Sort plugins in Config and Extension manager 2893
2020-01-19 In CSS compressor use placeholder to keep quoted strings 2996 CSS compressor
2020-01-15 Add support for Argon2i and Argon2id pasword hashes, selectable via passcrypt. Default passcrypt is updated: bcrypt. Further recognizes the hashes drupal_sha512, seafilepbkdf2 and pmd5 2957, 2796,
2019-01-08 Added rounds support for sha512 hashes 2644
2019-10-31 Add HTML Validity Tests 2317
2019-10-21 Add trustedproxy config setting 2892 Proxies
2019-10-21 Improve highlighting if arrived from google search 2848
2019-10-21 In notification mails refer exact to new version by using the revision id 2890
2019-10-21 Prevent pages to be shown in trace if you don't have rights to read 2067
2019-10-20 Return the correct ISO8601 date format for XMLRPC dates 2886 XMLRPC
2019-10-17 Reset Doku_Renderer properties 2652 Doku_Renderer ::reset()
2019-10-15 Fix setting inconsistent ACL via RPC 2996 XMLRPC
2019-10-15 Fix: workaround premature metadata generation on page save TODO 2401
2019-10-10 Adapt to newer MySQL versions 2850 authPDO plugin
2019-09-13 Add rel="ugc" hint to urls, as alternative rel="nofollow" 2855
2019-08-16 Add attributes config setting to authLDAP plugin. 2816 authLDAP plugin
2019-08-16 Only ob_flush if there is actually a buffer 2743
2019-08-16 e-mail obfuscation: use utf8_tohtml() for hex mode encoding 2671
2019-06-19 Cleanup the styling cookie properly to exit preview 2801
2019-06-19 Harmonize inconsistent Exif Date names 2788
2019-05-19 Refactor php file size parsing 2760
2019-05-19 CLI component for the extension manager 2627 Extension manager
2019-05-19 Mailer: properly handle user names including a comma 2504 Mailing
2019-05-06 Fix highlight in 'dokuwiki' template for site tools 2772 Templates with copied CSS
2019-05-06 Retrieve groups when using authPlain authentication 2766 authPlain plugin
2019-04-27 Capitalised @!CURNS@, @!!CURNS@ and @!CURNS!@ replacements 2735 namespace templates
2019-03-30 Fix set_doku_pref issues: prevent duplicates, deletion by set to false 2722 Settings's cookie
2019-03-30 Proper focus of pagetools 2534
2019-03-24 Fix zero width spaces in diffs by replacing by <wbr> 2996
2019-03-24 Set User-Agent header to 'DokuWiki HTTP Client (Extension Manager)' to fix downloads of extensions from SourceForge. 2996 Extensions
2019-03-13 Installer respect useacl = 0 choice 2723
2019-03-13 Use absolute url in index.php when redirecting doku.php 2719
2019-03-13 Hide source button if disabled 2396
2019-03-08 Add the recursive_groups setting for authAD plugin to config manager too 2716 authAD plugin
2019-03-04 Remove Google Lucky for non-existing interwiki links. Add support for default in the interwiki shortcuts config, to set your own fall back. 2802 Non-existing Interwiki links
2019-02-21 Compare cleaned pageid case-insensitive in search 2667 Search
2019-02-20 Fix redirect to _export PHP's inbuilt server/.htaccess 2703
2019-02-06 getRecents(): prevent non-exist changelog error 2533
2019-01-31 Fix regression JSON class 2686 JSON
2019-01-31 Add an id to the config manager form 2683
2019-01-09 Unify send_redirect(wl()) parameters. Use wl() for redirect 2550, 2547
2019-01-08 Fix ACL admin footnote JS error 2661
2019-01-08 Don't show empty optiongroup item in Mobilemenu 2660 Mobile view
2018-12-12 Fix ACL check in search_allpages() 2609 Some plugins
2018-12-10 Add event ADMINPLUGIN_ACCESS_CHECK to check access to admin plugins. Adds possibility to give certain user groups access without giving them admin or manager permissions. 2996 Permissions for admin pages
2018-10-27 Add logic if the server uses unlimited memory, memory_limit = -1 2556, 2420
2018-10-13 Give better feedback to viewer if a page has once existed. 2510
2018-10-11 Hide login form on denied page if login is disabled 2515
2018-10-08 Better deprecation annotation for DOKU_TPL* 2521
2018-09-07 Border underneath '.tabs' drawn in front of the pagetools 2381 Templates with copied CSS
2018-09-07 Reset config directory for every test 2395
2018-08-21 Remove inc/lang/.htaccess as inc is already protected 2478
2018-08-17 Fix locked page not showing page source 2475
2018-06-26 Removed safemode hack as it is removed from PHP5.4.0 2414
2018-06-21 Change const use to var for Safari 9 (on iOS) 2430
2018-06-21 Fix .htaccess files for Apache 2.4 (and 2.2) 2429
2018-06-15 Fix exception when actually viewing a draft of a page 2423
2018-06-14 Better draft handling. Adds DRAFT_SAVE event 2415 Drafts
2018-06-05 Introduce INFO_DEPRECATION_LOG event 2409
2018-05-24 Add call to delete Users to the remote API 2402, 2418 Remote API
2018-05-17 Footnotes break metadata abstract saving 2390
2018-05-17 New event TASK_RECENTCHANGES_TRIM for trimming recent changes, and refactoring of indexer/taskrunner. 2389
2018-05-02 Add simple catch-all for exceptions to installer 2342
2018-04-28 Unlock pages on viewing them or if canceling the edit 2354
2018-04-28 Add user interface back to resend password action 2350
2018-04-27 Improve search as a primary means to create new pages 2356
2018-04-27 deprecated clientismobile() and ismobile in pageinfo 2358 Template authors maybe.
2018-04-27 Deprecated clientismobile() and ismobile in pageinfo 2358,
Template authors maybe.
2018-04-23 Replace old call to css_styleini 2332
2018-04-23 Print 'you are here' again for startpages 2329

Suggestions for refactoring and updating of your code of plugins: refactor2020.

Github issue tracker:

Old bug tracker: Read-only

Release Spring 2018 “Greebo”

Date Change Submit Affects
2019-04-20 Honor type setting for recent changes. 2323
2018-04-20 Fix invalid HTML 2314
2018-04-15 Additional options for GeShi syntax highlighting 2307
2018-04-05 JSINFO available for detail view as well
:!: Deprecates js globals DOKU_UHC and DOKU_UHN, use respective JSINFO keys instead
2190 Javascript
2018-04-05 send manifest.json to clients to offer some PWA functionality. Adds event MANIFEST_SEND
:!: Template authors can add a __theme_color__ replacement to their style.ini, but if it doesn't exist __background_alt__ is used, to allow customizing the color of the browser's title bar on some mobile browsers
2241 Templates
2018-04-05 Refactoring removed css_styleini() (Part of PR2241)
Example for backward compatible code: see example
fb1f908 plugins/template using css_styleini()
2018-04-05 Added search form on search page, added multiple new events FORM_SEARCH_OUTPUT, SEARCH_RESULT_FULLPAGE, FORM_QUICKSEARCH_OUTPUT and SEARCH_RESULT_PAGELOOKUP
:!: renamed _search.css file in dokuwiki-template to .less
2286 Search page, Plugins, Templates reusing dokuwiki styles
2018-03-06 Put cursor on end if repeatly including images 2106
2018-03-06 Local Drafts: show diff instead off full text 2160
2018-03-06 Refactored section editing
:!: Old approach is deprecated. See 2290 for suggestions and page section editor for documentation.
2220 Custom Section editing by plugins
2018-01-24 add optionally SVG to html_btn() 2236
2018-01-05 Cleanup .htaccess.dist file 2222
2018-01-03 Support Web Video Text Tracks Format subtitles 2077
2017-12-10 Hide hidden pages from trace 2063
2017-12-10 Support for configurable e-mail return path 2161
2017-10-04 Add globbing to media manager search 2134
2017-09-24 HTTPclient: Remove insecure SSLv3 fallback, use TLS 1.2 if possible 2131
2017-09-02 Add @CURNS@ namespace pattern replacement 1831
2017-09-11 New Menu system
Removed displaying of the old pagetool buttons in 'dokuwiki' template. Deprecated old pagetool button system.
1821 Templates & Plugins adding their own buttons to the page menu
2017-09-01 Introduce Unit Tests for ajax requests 2105
2017-08-27 Refactoring action dispatch mechanism
Introduce object oriented approach: with Action, Ui and Tpl classes

See Action Router

In some action plugins $event->data='show' and $_REQUEST['request_method']='POST' has to be replaced by $event->data='redirect'
1933 Action dispatch
2017-08-27 Fix unittest to run on Windows, setup auto testing via Appveyor 2053, ea041b0
2017-08-27 Form improvements (prevent duplicate selected attr, empty option dropdown, prevent double selected) 1868, 2056, 2157
2017-08-27 Config backend: empty string is valid for numericopt 2075
2017-08-27 Fix p_set_metadata() damaging contributors numeric id 2091
2017-08-15 Replace Less compiler with lesserphp 1969 less parsing
2017-08-01 Add event CSS_STYLES_INCLUDED allows to modify the list of CSS files that will be returned to the client, per mediatype 1862
2017-07-26 Fix PHP notices, remove deprecated PHP calls 2057, 2097, 2202
2017-05-18 Replace Feed creator with UniversalFeedCreator 1970 Plugins using class DokuWikiFeedCreator
2017-03-16 Allow asking for other extensions as well via DokuWiki_Plugin::localFN() 1905

Github issue tracker:

Old bug tracker: Read-only

Release Winter 2017 “Frusterick Manners”

Date Change Submit Affects
2017-02-14 Add event JS_SCRIPT_LIST to allow plugins modifing javascript files delivered to browser 1828
2017-01-21 ZipLib and Tar classes removed, replaced by \splitbrain\PHPArchive\Zip and \splitbrain\PHPArchive\Tar. Note that methods are changed. commit (PR 2208) Plugins handling archives
2017-02-03 Refactoring and restyling Admin Page (new Ui/Admin class, SVG icons, allow plugins icons)
:!: note: lib/tpl/dokuwiki/css/admin.css was renamed to _admin.less
1809 Templates reusing dokuwiki styles
2017-02-03 link to rev number instead of current on Old revisions page 1602
2017-02-03 Fix issues with headers looks falsy, like ==0== 1771
2017-01-30 Fix broken JS in XHTML 1548 XHTML
2017-01-29 Add auto:height to video elements 1698
2016-12-22 Improvements to Form (add optgroup-tags, dropdown issue) 1778, 1801, 1832 Form
2017-02-03 Install SimplePie RSS parser via composer 1804
2016-11-30 Install phpseclib via composer 1683
2016-11-22 Install random_compat random number generator via composer 1761
2016-11-23 Modification to authLDAP plugin 1700
2016-11-13 Throw nice error if XML-RPC is disabled 1704
2016-11-13 Interwiki substitution for images 1614
2016-10-06 Change default images sizes to 200/400/600px 1693
2016-08-20 Reintroduce inSQL password checking for authPDO, and more authPDF fixes 1667, 1784 authPDO
2016-07-14 File-in-use reference added to mediamanager 1636
2016-11-13 interwiki substitution for external media files 1737

Github issue tracker:

Old bug tracker: Read-only

Release Summer 2016 “Elenor of Tsort”

Date Change Submit Affects
2015-04 Remove deprecated stuff e.g. 'disabled' files for plugins, old auth configs, double-decoding in XMLRPC putAttachment, render() in non-syntax plugins, remove cliopts, default #1535
2015-04-19 Remove old browser support i.e. especially upto IE8 PR 1539, #1535
2015-04-18 Add rel=noopener to links opening in new window PR 1531
2015-04-18 Add generic 3way merge capability PR 1529
2015-04-07 Reflection based method export for remote plugins PR 1501 Remote plugins
2015-04-07 Add support for new Django hashing methods PR 1495 Authentication
2015-04-07 Make reuse of js mediamanager popup easier PR 1479 Plugins
2016-02-24 Add event COMMON_WIKIPAGE_SAVE for intercepting wiki page saving. PR 1472 Plugins
2016-02-05 Disable/enable user editing of AD name/email via config PR 1399
2015-2016 Improve new form PR 1340, #1312
2015-11-27 Deactivate XSS-protection during preview PR 1387
2016-01-29 Enable using PHP builtin webserver for routing and url rewriting PR 1383 Development
2016-04-18 Add ACL check to page_findnearest. May break e.g. current sidebar setups #1369 or PR 1370 Templates and plugins
2015-03-12 Config multicheckbox without extra string input PR 1361 Plugins and templates
2015-09-25 Add function blank(), checks if empty, but zero is not blank PR 1365 Development
2015-2016 PHP7 errors, warnings and notices PR 1373, 234b5c9 and more
2016-03-12 Renamed the config remoteuser value to !!not set!! and verify on accessing. PR 774
2016-04-18 Show size of wiki changes in revision log PR 1316
2016-04-19 removed deprecated changelog functions aa13c9a
2015-08-17 Update default included options for Creative commons license 3.0 Unported to CC 4.0 International #1286, PR 1317 Content licenses

Github issue tracker:

Old bug tracker: 23 Issues closed from 2015-08-10 until 2016-06-28

Release Summer 2015 “Detritus”

Date Change Submit Affects
2015-07-30 Removed support for style.local.ini 656e5845 Users with a customized template
2015-07-30 Removed vast amounts of the old JavaScript library 767d1669 plugins and templates using JavaScript
2015-07-30 Removed TarLib and deprecated Tar and ZipLib classes 0b55591d plugins handling tar packages
2015-07-30 Removed more deprecated stuff (subscription_addresslist(), class setting_richemail, msg param in dw_locktimer.init()) 34d1de72 + 3333cbc9
2015-07-15 Change all submit buttons from input to button PR 1231 Templates and plugins using buttons
2015-07-27 Remove deleted files on update of extension with deleted.files in extension folder PR 1240 Plugins and templates
2015-07-18 Add returnonly option to all link functions in XHTML renderer PR 1239 Plugins and templates
2015-07-26 Plugin Styling added, let administrators adjust the style.ini with live previewing PR 1163 Templates
2015-07-26 Removed IE7 support PR 1253 Templates and Plugins
2015-07-24 Interwiki changes: among other things, removed default definitions of dokubug, coral, freecache and sb and their respective icons PR 1247 Extensions using interwiki icons
2015-02-19 Add events TEMPLATE_SITETOOLS_DISPLAY and TEMPLATE_USERTOOLS_DISPLAY for adding buttons in sitetools or usertools. PR 470/ PR 1278 Templates and plugins
2015-08-05 Add event TPL_ACTION_GET for adding or modifying action link properties PR 1279 Plugins
2015-02-19 Add event HTML_SHOWREV_OUTPUT that modifies message above old revisions PR 1046 Plugins
2015-05-27 Let plugins send own usage data via popularity plugin with PLUGIN_POPULARITY_DATA_SETUP PR 1150 Plugins
2015-05-16 Use composer to add 3rd party libraries PR 1152 Development, plugins
2015-05-16 Filter by enabled, disabled and updatable plugins in the extension manager PR 1113 Templates (maybe)
2015-05-09 File-in-use reference at page listing in media detail view PR 1072 Templates' detail.php
2015-05-08 Cache javascript per template PR 1130 Template switchers
2015-05-07 Make it possible to remove entries from DOKU_PREFS cookie PR 1129 Extensions using DOKU_PREFS cookie
2014-12-11 Extend config cascade with user*.less files PR 954 Potentially plugins, templates and anything using the config cascade (e.g. farms)
2015-02-23 Add tbody to renderer PR 1048 Plugins

Github issue tracker:

Old bug tracker: 21 Issues closed from 2014-09-30 until 2015-08-10

Release September 2014 “Hrun”

Date Change Submit Affects
2014-05-10 Deprecated functions are now logged to the debug log. Developers should enable allowdebug and monitor the log to see if any deprecated functions are used. 1419a485 Plugins and Templates
2014-09-29 Extended the config cascading such that custom localization strings are read as wellPR 708 Localizations
2014-09-29 Jump back to state of a page at certain date with url parameter ?at=2012-06-04. Support timestamps and dates PR 624 Revisions

Github issue tracker:

Old Issue tracker: 26 Issues closed from 2014-05-05 until 2014-09-29

Release Spring 2014 “Ponder Stibbons”

Date Change Submit Affects
2014-02-23 Made styles independent of IDs. 1e94c17540, 0b1e5003aaTemplates and Plugins (CSS)
2014-02-02 HTML5 audio & video support PR 265 Syntax
2014-01-19 Event AUTH_ACL_CHECK let you replace default ACL mechanism, or modify its result PR 493 Plugins
2014-01-19 Deduplicate code for syntax plugins. Replaces wiki text parser render() by render_text() PR 496 Plugins using render()
2014-01-19 New extension manager which replace plugin manager PR 284 Completely rewritten
2014-02-16 Add ordering to event handlers PR 552 Plugins with ordening workarounds
2014-03-24 Adds <thead> to the html of the tables of DokuWiki, when (i) TD < 2 in a row (ii) TD <= 50% of total cells and (iii) Not all table rows can be THEAD rows PR 387 Plugin using <thead>
2014-03-05 Define overridable constants for session cookie properties PR 578 Some external auth plugins
2014-03-16 Added tpl_img_meta() and tpl_action()-actions mediaManager and img_backto. These let you thin out your template's detail.php PR 573 Templates detail.php
2014-03-16 Event COMMON_USER_LINK lets replace the user interwiki link. PR 527 Plugins
2014-02-20 Removed old fix for dateformat config 8d443db51f Old dformat configs
2014-01-20 Doku_Plugin->render() has been renamed to render_text() 1843bbd Non-Syntax-Plugins
2014-02-14 dw_qsearch as jQuery function PR 502 Plugins using qsearch
2014-02-02 window.getSelection() and window.setSelection() have been renamed to DWgetSelection() and DWsetSelection() 7e487fcf Plugins using JavaScript to access cursor positions

Github issue tracker:

Old Issue tracker: 117 Issues closed from 2013-12-08 until 2014-05-05

Release Autumn 2013 “Binky”

Date Change Submit Affects
2013-07-31 Blowfish implementation is replaced by the AES implementation from phpseclib. e.g. PMA_blowfish_encrypt and PMA_blowfish_decrypt are replace by auth_encrypt and auth_decrypt (example)PR 242Plugins using Blowfish
2013-08-01 Event TEMPLATE_PAGETOOLS_DISPLAY lets the pagetools in the default template be changed. (Used to be TEMPLATE_<template>_PAGETOOLS_DISPLAY in first RC.) PR 236 Plugins, Templates
2013-10-13 Cookie settings available in javascript as DOKU_COOKIE_PARAM.path and PR 371 Plugins
2013-06-16 Event AUTH_PASSWORD_GENERATE let plugins replace password generation PR 230 Plugins
2013-08-02 Added LESS support for CSS files PR 240 CSS (Templates, Plugins, userstyles)
2013-08-03 Made local style.ini work in farms PR 262 Templates
2013-08-03 Deprecated style.local.ini
use conf/tpl/<tpl>/style.ini instead
PR 262 Templates
2013-08-02 Improved localization support of templates. Added tpl_locale_xhtml('key') to read localized text files. Also javascript localization is supported. Strings are accessible at LANG.template.<your template name>.key PR 251 Templates
2013-07-30 Remote API to add and remove ACL rules PR 239 XML-RPC
2013-11-17 Removed inclusion of RTL styles PR 406 Templates, Plugins
2013-11-17 Removed 'default' userstyle from config_cascade PR 406 uses of old config_cascade (farms, etc)
2013-11-17 Removed html_attbuild() PR 406 plugins
2013-11-17 Removed 3rd parameter of cleanID() PR 406 plugins and templates using cleanID()
2013-11-17 Removed tpl_getFavicon() PR 406 templates
2013-11-17 Removed some images in lib/images/2) PR 406 plugins and templates using them

Github issue tracker:

Issue tracker: 160 Issues closed from 2013-05-10 until 2013-12-08

Release Spring 2013 “Weatherwax”

Date Change Submit Affects
2012-11-04 Auth backends are replaced by Auth plugins. All backends need an update to plugins. PR 141 Every authentication backend
2013-02-16 Allow richer email addresses in notify and registernotify by using placeholders FS#2689 a9b6a8b5 Email notification
2013-01-26 Added the loadHelper() method to the Syntax Plugin class. fec2accc Syntax plugins
2012-01-09 Changed calback function search_allpages() for search(). Option dept is now absolute in stead of relative PR 154 Plugins
2013-01-08 Added template unit tests infrastructure 629196125e Templates
2013-04-07 lib/exe/fetch.php is changed to improve its security. Addition of a token to image urls when resizing or cropping is required. See also list of affected pluginsPR 203 Plugins
2012-11-12 Rewrite of TarLib. More memory efficient and improved API. PR 140 c30996a Handling of tar packages
2012-11-05 The PAGEUTILS_ID_HIDEPAGE event is signalled when DokuWiki checks if a page is hidden, handlers can use it to hide a page or show a hidden page. 8449cc9d, fb55b51e Plugins
2013-02-03 Update to jQuery 1.9, deprecated jQuery migrate plugin added cc4bb766 Plugins, Templates and Userscripts
2013-02-16 deprecated the Blowfish library (Horde_Cipher_blowfish, PMA_blowfish_encrypt and PMA_blowfish_decrypt), a new library will be included in the autumn 2013 release 2685 Plugins that use the Blowfish encryption
2012-07-12 [FIXME: check this] deprecated Wrapper subscription_addresslist for plugins emitting COMMON_NOTIFY_ADDRESSLIST themselves and relying on on this to be the default handler e13e01da Plugins
2013-02-16 Complete switch to jQuery, removed old compatibility layer 99421189 Plugins, Templates and Userscripts which use out-dated JavaScript
2013-02-17 removed functions deprecated in 2005/2006: plugin_localFN(), plugin_locale_xhtml(), plugin_email(), plugin_link(), plugin_render(), setCorrectLocale(), io_runcmd(), p_wiki_xhtml_summary(), p_cached_xhtml(), search_callback(), search_backlinks(), search_fulltext(), search_regex() c33b315b Plugins

Github issue tracker: 67 Pull Requests merged
Issue tracker: 115 Issues closed from 2012-10-13 until 2013-05-10

Release 2012-10-13 “Adora Belle”

Date Change Submit Affects
2012-01-30 Deprecating the DOKU_TPL* constants : two new tpl_* functions returning the correct paths based on the $conf variables which can be changed from the DOKUWIKI_STARTED event c4766956 Templates
2012-03-23 Added abstraction layer to xml-rpc api a2b7fdb8 XML-RPC
2012-04-08 Removed anchors from headings 16cc7ed7 Templates
2012-04-08 Changed <abbr> to <acronym> 940db3a3 Templates
2012-04-08 Renamed smiley image class to 'icon' 8e38227f Templates
2012-04-09 Changes to the way CSS files are loaded 6c47a78c Templates and plugins with @media queries
2012-04-09 Improved HTML for search results 91b05b6b Templates
2012-04-09 Rewrote and improved HTML for TOC d5acc30d Templates (and changes to the TOC)
2012-05-01 Replace SimpleTest with PHPUnit 3c0d44f simpletest, unittesting
2012-06-24 Input ($_REQUEST/POST/GET) wrapper 89177306 Plugins
2012-07-01 Sidebar inclusion e66d3e6 and changes 835dfcae Templates
2012-07-08 Change caching to expire when dependency has equal modification time, pay attention when using circular dependencies and dependencies that could be updated at the same time as the cache 79b37bb8 Plugins that modify caching
2012-07-08 Include no longer allowed in local config. use local.protected.php instead 499add6b Configs using include
2012-10-10 __highlight__ has become a guaranteed style.ini placeholder 5db35f6f Templates
2012-10-11 Changed JS for section highlighting 870c8a4b Plugins and tips making use of section highlighting
deprecated tpl_getFavicon() (wrong name) 27833958 templates using it should use new tpl_getMediaFile() instead
deprecated DOKU_TPL and DOKU_TPLINC constants (make problems with dynamic template switching) c4766956 templates and plugins should use tpl_incdir() and tpl_basedir() instead
deprecated RTL CSS mode (had several issues, superseded by better way) 6c47a78c RTL styles in templates, plugins or userstyles will not be included in the resulting CSS
deprecated some images in lib/images/ 3) (they were very old and not in use) c973a9c8 they will be missing from plugins/templates using them
removed deprecated global $NS variable in doku.php
removed deprecated images: lib/images/icon-file.png + lib/images/icon-thumb.png

Issue tracker: 192 Issues closed from 2011-11-10 until 2012-10-13

Release 2011-11-10 “Angua”

Date Change Submit Affects
2011-05-26 Media revisions e4f389ef, see also GSOC sponsored work All media files are now versionned and data/media_attic contains old revisions. This feature can be disabled in the config
2011-06-09 New ajaxified media manager  d9162c6c and lots of commits following that one Media manager has changed to handle media files revisions
2011-05-29 jQuery branch merged into the main repository. The core code has been rewritten since, most plugins should still be compatible (please test), the old JavaScript API will be removed in the October 2012 release. 79344f5b and many more commits Plugins that use JavaScript
2011-08-19 Meta files from plugins aren't deleted automatically anymore when the page is deleted, plugins can use the IO_WIKIPAGE_WRITE-event if they want to delete their meta files c5f92742 Plugins that use custom meta files
2011-09-10 Config_cascade support for enabling/disabling plugins, deprecated disabled plugin files 29d511bf Farm setup
2011-09-25 Namespaces ending in underscores are no longer possible. b680ea06 Users with namespaces ending in underscores
2011-10-10 Page summary limited to 255 chars 7fa35bb1 Changelog of any page edition is now limited to 255 chars
2011-10-15 Flash uploader removed 6f0b0dd1 The flash multi-file uploader has been superseeded by the multi-uploader of the new media manager
2011-10-15 Several XML-RPC fixes b760af94 and several other commits XML-RPC access, encoding…
deprecated double-decoding in XMLRPC putAttachment (Bug) 80d6fbc3
deprecated vast amounts of the old JavaScript library, replaced by new jQuery-based library Everything in compatibility.js Plugin and template JavaScript may stop working
2011-11-28 deprecated 3rd parameter of cleanID() 3543c6de plugins and templates using cleanID()
removed deprecated action “(un)subscribens”
removed JavaScript function “escapeQuotes” (was deprecated in Rincewind, but was removed anyway)

Issue tracker: 90 Issues closed from 2011-05-25 until 2011-11-10

Release 2011-05-25 “Rincewind”

Date Change Submit Affects
2010-11-22 Metadata has got a caching mechanism, it can be influenced using the PARSER_CACHE_USE-event. p_get_metadata does now trigger rendering metadata 98214867 Plugins
2011-02-04 Replace COMMON_PAGE_FROMTEMPLATE with COMMON_PAGETPL_LOAD event 7b84afa2 Plugins
2011-02-06 MEDIA_UPLOAD_FINISH got a sixth parameter ffb291f2 Plugins
2011-02-06 p_set_metadata can now be used in render-functions (e.g. of plugins) 0e5fde48 Plugins (just new feature)
2011-02-20 $lang['register'] has been renamed to $lang['btn_register'] bf413a4e Plugins and Templates which use $lang['register']
2011-02-26 renamed 'default' userstyle to 'screen' in config_cascade (so 'default' is still supported, but deprecated) 318cd03e Farmers
2011-02-26 renamed userstyles for 'all', 'print', 'rtl' and 'feed' modes (back to what it was before Anteater) 4e098b31 Userstyles other than 'userstyle.css'
2011-03-06 The INDEXER_PAGE_ADD-event has been changed (different and additional parameters) 39d6fd30 all plugins using the event
2011-03-08 The indexer changes have been merged (there have been more changes after this). There is a new indexer class and a metadata index that can be used as key-/value-store. See metadata index for the new events and usage instructions. d8e733ee Plugins
2011-03-19 The password is no longer stored (encrypted) in the session, it's just the hash now. You can get it out of the login cookie, but the encryption has been changed there. 234ce57e (session), e940aea4 (cookie) authentication backends (if they need the password after the login)
2011-05-08 More caching logic for metadata, new $render parameter values for p_get_first_heading and p_get_metadata 65aa8490, 67c15ece Plugins (and templates) that use p_get_first_heading or p_get_metadata
2011-01-31 Different diff styles 72165381 Needs styling
deprecated $NS in doku.php bced4159
deprecated JavaScript function escapeQuotes, replaced by jsEscape 20d062ca

Issue tracker: 135 Issues closed from 2010-11-07 until 2011-05-25

Release 2010-11-07a “Anteater”

Date Change Submit Affects Plugins
Subscription management added, needs styling Templates
Mediamanager options added, need styling Templates
2010-09-09 DokuWiki version added to admin view, needs styling 9a2cec2e Templates
deprecated action “(un)subscribens” Templates
2010-10-21 deprecated html_attbuild(), use buildAttributes() instead c277a6bd plugins

Issue tracker: 265 Issues closed from 2009-12-25 until 2010-11-07

Release 2009-12-25c “Lemming”

Date Change Submit Affects
2009-08-12 Linkwizard added, needs styling 56dfcc12 Templates

Release 2006-11-06

Unsemantical guaranteed ''style.ini'' colour placeholders have been renamed: __white__, __medium__, __lightgray__, __dark__, __black__, __darker__ and __darkgray__ shouldn't be used anymore.


Removing legacy interfaces, behaviours and features is done over a period of three releases: In the first release, the object is deprecated, in the third, removed. This means that a plugin or template which only uses non-deprecated aspects should at least work in two future versions as well. Put the other way: A template or plugin older than a year is possibly broken.

The function dbg_deprecated($alternative = '') is used for logging calls to deprecated functions since 2014. When the config allowdebug is enabled, you can find logged calls in the debuglog.

you need to be logged in, see upper right corner
2) , 3)
arrow_down.gif, arrow_up.gif, at.gif, close.png, del.png, edit.gif, list-minus.gif, list-plus.gif, pencil.png
devel/releases.txt · Last modified: 2024-02-17 23:51 by Klap-in

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki