Meza/Halloween release

Revision as of 00:49, 31 October 2025 by Admin (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Here is the summary of the development of Meza in September and October 2025. The milestone was tagged 43.60.6 and named the "Halloween" release.

Issues edit

Fully linked issues are complete. Issues with only a link on the issue ID are in progress.

  1. update Project documentation and Online resources #3
  2. Restructure Meza into multiple roles and collection(s) #42
  3. Ensure .smw.json has a home #44
  4. create wiki fails #48
  5. Use a declarative wiki ID (YAML) #101
  6. [BUG] permission problems #186
  7. Ensure that all essential variables are available to all playbooks #207
  8. PageForms exception from SMWDIProperty class not found #200
  9. [FEATURE] Ensure all bundled extensions and skins are in core #201
  10. [FEATURE] Replace ImageMagick with better scaler 204
  11. Update meza help output from meza python command #211
  12. Deploy fails on init-controller-config #212
  13. Reenable WatchAnalytics #214

New and Improved edit

New Features edit

Use a declarative wiki ID (in YAML) #101 Meza wikis are now registered and configured in YAML in a source-controlled file rather than a combination of YAML, templated PHP files and directories on the filesystem. The new system is backwards compatible, but the old usage is now deprecated.

Enhanced Help documentation / UX The meza command help system received a major overhaul. The help files were migrated from text files to markdown files. Internally, we use the Python 'rich' library to render the markdown. Simply type meza (no args) or meza --help to display the help content. You can also get help on any command: meza create-wiki --help Externally, you can easily browse the whole manual at GitHub or in VSCode, or embedded on-wiki using the External Content extension.

  • 📊 Structured tables for arguments and options
  • 🎨 Syntax-highlighted code blocks
  • ⚠️ Visual warnings with emojis
  • 🔗 Cross-references between related commands
  • 📋 Consistent formatting across all files
  • 📊 Documentation for all commands such as autodeploy and deploy-notify.
  • 🆕 New commands like list-wikis and debug

Add Backup and Retention Policy Framework - implements a complete log file rotation, compression, and removal strategy which handles all the important file stores in meza, including the database sqldump backups. New scripts, roles, and documentation. Meza already does a lot of work to create backups, and also does a lot of logging of operations. This adds the housekeeping aspect to keep your storage tidy with an easy to modify policy.

New Playbooks edit

migrate-wikis - Playbook to migrate existing directory-based wikis to declarative configuration

Usage: sudo meza migrate-wikis <environment> The Playbook uses a new role migrate-to-declarative-wikis

to read your PHP, YAML, and directories into the new declarative YAML syntax for wiki configuration. It will backup and edit /opt/conf-meza/public/public.yml to save your new configuration. See config/defaults.yml for example declaration.

debug - Playbook to show the value of a variable. e.g. sudo debug monolith m_htdocs

run-maintenance - Playbook that is a general-purpose MediaWiki maintenance script runner. We removed the cleanup-upload-stash playbook and replaced it with a new meza maint command. You can run meza maint cleanuploadstash <environment> and also any other MediaWiki maintenance script.

New Roles edit

  • essential-vars - setup key variables early; avoid extra-vars; use OS-specific logic for cross-platform support
    • Replace inline variable definitions with include_role
  • logrotate - the new log rotation, compression, removal policy framework.

Project / DevOps edit

  • implement local (user) repo commit hook to enforce code checks
  • Expanded CONTRIBUTING to include tools and quality controls
  • Created new "raw" CHANGELOG and "formatted"3 RELEASE NOTES which are now updated automatically on push.
  • 🎯 Add new badges in README.md
  • Analyze and map the flow of 'meza deploy' vs. 'meza create wiki'
  • Release Automation using GitHub Actions

Extensions edit

  • Add LinkTarget extension

More edit

  • Fix sudo meza maint run_jobs (all wikis) and sudo meza maint run_jobs -- demo (demo only)
  • Fix inadvertent cases where ansible_user could resolve to 'root'
  • Improved verify-permissions playbook
    • Scrutinize users, permissions, mode, user:group ownership
    • e.g. Change m_config_public_mode from 0755 to 0775 for dirs 0664 for files by using Symbolic mode u=rwX,g=rwX,o=rX
  • Fix test-certbot playbook to use set-vars role
  • Ensure playbooks load variables first with pre_tasks
  • Add configuration to allow HTML emails and set default User Preference option to opt-in
  • Corrected CommentStreams branch
  • Multiple improvements to linting quality and adoption of Ansible best practices like using fully qualified collection names (FQCN)
  • Fix quoting in /opt/.deploy-meza/refresh-links.sh
  • Add Debian support for ImageMagick and Ghostscript following the established pattern for cross-platform compatibility
  • Ensure that --check works with narrow playbook execution
  • Update SBOM files
  • Core configuration (OS-specific, config/paths.yml, and config/defaults.yml) in the set-vars role are always loaded regardless of which tags are specified, ensuring that essential variables are available for any tagged deployment scenario.
  • Remove undefined meza destroy command