Release Process

Release early, release often. This is a mantra from free software communities. It's accurate. You want to do your design work in the open, and get critical feedback as early as possible.



1. Stages

  • alpha1
    • Alpha is for preview purposes only.
    • it is intended to be a technology preview aimed at early adopters, testers, translators
    • Do not use alpha releases on production systems!
  • alpha2
  • beta1
    • Beta releases are appropriate for use with new development. Within beta releases, the features and compatibility should remain consistent. However beta releases may contain numerous and major unaddressed bugs.
  • beta2
    • is available for testers, extension developers, and other people who are curious to follow the development of the next release
  • rc1
    • Release Candidates are believed stable, having passed all internal testing, and with all known fatal runtime bugs fixed. However this release has not been in widespread use long enough to know for sure that all bugs have been identified.
      • wait to declare something RC until code stabilizes and critical bugs are fixed
    • feature freeze -> testing and debugging ->
      • This release is ready for widespread testing, and we’re encouraging everyone to download and test the beta releases. Please run the release through your usual routine, and let us know about any bugs or other issues that you find. Remember that this is a beta release, and is not suitable for use on production systems.
    • For translators, this is the first call to update the translations to the current set of strings, which should not change much until final.
  • rc2
  • final
    • also know as Production releases, are stable, having successfully passed through all earlier release stages and believed to be reliable, free of serious bugs, and suitable for use in production systems
    • All users are advised to upgrade.
  • m1
    • Maintenance release

2. Issue tracker

  • update issues in bugtracker
  • set release date

3. Change Log

XML

Feed Title: Release notes from wackowiki


6.3.0

WackoWiki v6.3.0 — Major Feature Release

This release represents a massive architectural overhaul, bringing modern JavaScript tooling, a completely rewritten editor experience, hardened security defaults, and a flexible new syntax highlighter.


Headline Features

WikiEdit: Complete Rewrite (ES2023 + ES Modules)

The editor has been modularized into ES6 modules with a dedicated state management layer and a AbortController for all fetch calls.

Feature Description
Autosave Never lose drafts again; automatic background persistence.
Full Undo/Redo Stack Deep history management across sessions.
Search & Replace Full regex-supported find/replace inside the editor.
Live Preview Real-time rendering as you type.
Syntax Highlighting Code blocks highlighted inside the editor.
Fullscreen / Zen Mode Distraction-free writing (widescreen centered).
Drag & Drop + Paste Images Upload assets directly into the edit buffer.
Markdown ↔ Wacko Converter Seamless format switching via toolbar.
Popup Forms Guided modals for complex Links and Tables.
Toolbar Customization Add/remove/reorder buttons via config.
Resizable Editor Drag handle to adjust height.

Dev Note: Complex legacy helpers (MarkUp, _LSum, _RSum, _TSum) have been refactored. Autocomplete selection bugs are fixed.


Security & Platform Hardening

  • Content Security Policy (CSP) Nonces: All inline scripts now use strict nonces.
  • Cookie Prefixes (RFC 6265bis): __Host- and __Secure- prefixes applied for session integrity.
  • Native Clipboard API: Removed Clipboard.js dependency; uses modern navigator.clipboard with robust fallback.
  • Fixed Invalid Selector Tokens: Patched potential broken "Copy to Clipboard" handlers.

Core Architecture & Routing

Change Impact
Virtual _ Handler Prefix Handlers moved to page/_edit, page/_show, etc.
Fixes namespace collisions where user pages named Something/edit clashed with core handlers.
Composer vendor Folder All external PHP libraries moved out of lib/ into vendor/ (managed via Composer).
Config Array Upgrade Configuration updates now respect $wacko_config_defaults live, ignoring potentially stale cache.
TOC Generation Fix $this->toc logic repaired for newly created pages.

UI & Theming

  • Dark Mode: First-class support with OS detection (prefers-color-scheme) and manual toggle.
  • Double-Click Edit Comments: Rapid inline editing for comment sections.

Syntax & Markup Extensions

Phiki Highlighter (v2.2.0)

Replaces the legacy Pear highlighter. Fast, modern, supports 350+ languages via TextMate grammars.

Migration Required: Obsolete highlighters removed (css, ini, html, java, pascal, sql).
Action: Run the admin_replace action to auto-migrate:

%%(css)   →  %%(hl css) %%(sql)   →  %%(hl sql) ... etc 

Table Markup Improvements

New attribute system for rows, cells, and tables.

New Syntax:

!| col | col |!            # Header row with attributes #|(attr=value)             # Row attributes 

Supported Attributes:

Attribute Values Scope
span number Cell/Colspan
side top | bottom Header/Foot position
class alternate, sticky, default[left|center|right...], colN[left|right...], col-N[left|right...] Styling hooks

CSS Selectors Added:

  • .alternate — Zebra striping
  • .sticky — Fixed header on scroll
  • .default[left|center|right|top|middle|bottom] — Global cell alignment
  • .colN[...] — Column N alignment (1–25)
  • .col-N[...] — Column N from right alignment (1–9)

Helper Functions

  • New table_attr() parser for the extended markup.
  • Wrapper page now accepts col option.

Internationalization (i18n)

New complete translations added:

  • 🇭🇷 Croatian (hr)
  • 🇹🇭 Thai (th)
  • 🇹🇷 Turkish (tr)
  • 🇻🇳 Vietnamese (vi)

Dependency Updates

Library Version Status
Phiki 2.2.0 New (Replaces Pear)
Legacy Highlighters Removed

Upgrade Guide

  1. Run Composer: composer install --no-dev (populates vendor/).
  2. Run Migrations: Execute the installer script.
  3. Migrate Highlighters: Run the admin_replace action to convert %%(lang)%%(hl lang).
  4. Check Routes: If you have custom handlers or pages named edit, show, properties, etc., verify they resolve correctly under the new page/_* namespace.
  5. Clear Cache: Delete cache/config/ and cache/template/ (or run admincache action).
  6. Test CSP: Verify your web server passes the Content-Security-Policy header with nonces.

Credits

Huge thanks to contributors for the Phiki integration, the translation teams for HR/TH/TR/VI, and everyone testing the WikiEdit rewrite.


Full Changelog: 6.2.1...6.3.0
Documentation: wackowiki.org

4. Release Notes

  • Upgrade from previous versions
    • Component compatibility
    • Configuration
  • Highlights
  • Call for Localization
    • If you can help with languages other than English and German, it would be appreciated.
  • Testing
    • Most Annoying Bugs
      • While many bugs have been eliminated since the last beta, we still have a few remaining (and new) bugs that testers should be aware of:
  • Themes
  • Hacks / Patches

5. Build packages

  • tarball
  • zip
  • name the folder within the package according the release
    • wacko.r6.0.38
    • wacko.r6.2.1
    • wacko.r7.0.1

Set back error reporting level in constants.php

const PHP_ERROR_REPORTING			= 0;	

Set back error SQL mode to server in config.php

'sql_mode' => '0',	

Workflow:

  1. On your local machine (or CI), run:
    composer install --no-dev --optimize-autoloader	

  2. Create a clean distribution archive that includes everything users need.
  3. Upload the resulting .zip / .tar.gz as an asset to a new GitHub Release.

5.1. Create the Distribution Package

Place the script in your project root folder and run it. Ensure you've installed Composer.


Basic usage (default):
./build-release.sh --version=6.3.0 - pulls HEAD of master branch
Build from tag:
./build-release.sh --version=6.3.0 --source=6.3.0 - pulls version with 6.3.0 tag
Build from commit hash:
./build-release.sh --version=6.3.1-dev --source=b0061efba26b793a044f0af4bd8611ce92244760 - pulls version with the provided hash


build-release.sh

6. Repository

  • tag the release
  • branch final release

7. Update Files

  • Latest development version
  • Latest released testing version
  • Latest released stable version

7.1. Update file references

wackowiki-6.2.1.zip (2.9 MiB)


Development version
(see Repository)


Beta version
wackowiki-6.3.0-beta8.zip


8. Release notices and announcements