Meza/Halloween release: Difference between revisions

Created page with "== Issues == Fully linked issues are complete. Issues with only a link on the issue ID are in progress. # <bdi>update Project documentation and Online resources</bdi> [https://github.com/freephile/meza/issues/3 #3] # <bdi>Restructure Meza into multiple roles and collection(s)</bdi> [https://github.com/freephile/meza/issues/42 #42] # [https://github.com/freephile/meza/issues/44 <bdi>Ensure .smw.json has a home</bdi> #44] # [https://github.com/freephile/meza/issues/48 cre..."
 
No edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
Here is the summary of the development of Meza in September and October 2025. The milestone was tagged '''43.60.6''' and named [https://github.com/freephile/meza/releases/tag/43.60.6 the "Halloween" release].
== Issues ==
== Issues ==
Fully linked issues are complete. Issues with only a link on the issue ID are in progress.
Fully linked issues are complete. Issues with only a link on the issue ID are in progress.
Line 7: Line 9:
# [https://github.com/freephile/meza/issues/48 create wiki fails #48]
# [https://github.com/freephile/meza/issues/48 create wiki fails #48]
# [https://github.com/freephile/meza/issues/101 <bdi>Use a declarative wiki ID (YAML)</bdi> #101]
# [https://github.com/freephile/meza/issues/101 <bdi>Use a declarative wiki ID (YAML)</bdi> #101]
# [https://github.com/freephile/meza/issues/186 <bdi><nowiki>[BUG] permission problems</nowiki></bdi> #186]
# [https://github.com/freephile/meza/issues/207 <bdi>Ensure that all essential variables are available to all playbooks</bdi> #207]
# [https://github.com/freephile/meza/issues/207 <bdi>Ensure that all essential variables are available to all playbooks</bdi> #207]
# [https://github.com/freephile/meza/issues/200 PageForms exception from SMWDIProperty class not found #200]  
# [https://github.com/freephile/meza/issues/200 PageForms exception from SMWDIProperty class not found #200]  
# [https://github.com/freephile/meza/issues/201 <bdi><nowiki>[FEATURE] Ensure all bundled extensions and skins are in core</nowiki></bdi> #201]
# [https://github.com/freephile/meza/issues/201 <bdi><nowiki>[FEATURE] Ensure all bundled extensions and skins are in core</nowiki></bdi> #201]
# <bdi>[FEATURE] Replace ImageMagick with better scaler</bdi> [https://github.com/freephile/meza/issues/204 204]
# <bdi>[FEATURE] Replace ImageMagick with better scaler</bdi> [https://github.com/freephile/meza/issues/204 204]
# [https://github.com/freephile/meza/issues/186 <bdi><nowiki>[BUG] permission problems</nowiki></bdi> #186]
# [https://github.com/freephile/meza/issues/211 <bdi>Update meza help output from meza python command</bdi> #211]
# [https://github.com/freephile/meza/issues/212 <bdi>Deploy fails on init-controller-config</bdi> #212]
# [https://github.com/freephile/meza/issues/214 <bdi>Reenable WatchAnalytics</bdi> #214]


== New and Improved ==
== New and Improved ==
Line 18: Line 23:
'''<bdi>Use a declarative wiki ID (in YAML)</bdi> #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.
'''<bdi>Use a declarative wiki ID (in YAML)</bdi> #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 documentation / UX''' The meza command help system was migrated from text files to markdown files plus the Python 'rich' library.
'''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 <code>meza</code> (no args) or <code>meza --help</code> to display the help content. You can also get help on any command: <code>meza create-wiki --help</code> Externally, you can easily [https://github.com/freephile/meza/blob/dev/manual/meza-cmd/index.md browse the whole manual at GitHub] or in VSCode, or embedded on-wiki using the [https://professional.wiki/en/extension/external-content External Content] extension.


* 📊 Structured tables for arguments and options
<ul style="list-style: none;">
* 🎨 Syntax-highlighted code blocks
<li> 📊 Structured tables for arguments and options
* ⚠️ Visual warnings with emojis
<li> 🎨 Syntax-highlighted code blocks
* 🔗 Cross-references between related commands
<li> ⚠️ Visual warnings with emojis
* 📋 Consistent formatting across all files
<li> 🔗 Cross-references between related commands
<li> 📋 Consistent formatting across all files
<li> 📊 Documentation for all commands such as [https://github.com/freephile/meza/blob/dev/manual/meza-cmd/autodeploy.md autodeploy] and [https://github.com/freephile/meza/blob/dev/manual/meza-cmd/deploy-notify.md deploy-notify].
<li> 🆕 New commands like '''[https://github.com/freephile/meza/blob/dev/manual/meza-cmd/list-wikis.md list-wikis]''' and '''[https://github.com/freephile/meza/blob/dev/manual/meza-cmd/debug.md debug]'''
</ul>'''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 [https://github.com/freephile/meza/blob/dev/src/scripts/cleanup-backups.md scripts], roles, and [https://github.com/freephile/meza/blob/dev/src/roles/logrotate/README.md 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 ===
=== New Playbooks ===
Line 31: Line 40:
Usage: <code>sudo meza migrate-wikis <environment></code>  The Playbook uses a new role <code>migrate-to-declarative-wikis</code>
Usage: <code>sudo meza migrate-wikis <environment></code>  The Playbook uses a new role <code>migrate-to-declarative-wikis</code>


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 <code>config/defaults.yml</code> for example declaration
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 <code>config/defaults.yml</code> for example declaration.
 
'''debug''' - Playbook to show the value of a variable. e.g. <code>sudo debug monolith m_htdocs</code>
 
'''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 [https://github.com/freephile/meza/blob/dev/manual/meza-cmd/maint.md meza maint] command. You can run <code>meza maint cleanuploadstash <environment></code> and also any other MediaWiki maintenance script. 


=== New Roles ===
=== New Roles ===
Line 37: Line 50:
* '''essential-vars''' - setup key variables early; avoid extra-vars; use OS-specific logic for cross-platform support
* '''essential-vars''' - setup key variables early; avoid extra-vars; use OS-specific logic for cross-platform support
** Replace inline variable definitions with include_role
** Replace inline variable definitions with include_role
* '''logrotate''' - the new log rotation, compression, removal policy framework.


=== Project / DevOps ===
=== Project / DevOps ===


* implement repo commit hook to enforce code checks
* implement local (user) repo commit hook to enforce code checks
* Expanded CONTRIBUTING to include tools and quality controls
* Expanded CONTRIBUTING to include tools and quality controls
* Created new "raw" CHANGELOG and "formatted"3 RELEASE NOTES which are now updated automatically on push.
* Created new "raw" CHANGELOG and "formatted"3 RELEASE NOTES which are now updated automatically on push.
* 🎯 Add new badges in README.md
* 🎯 Add new badges in README.md
* Analyze and map the flow of 'meza deploy' vs. 'meza create wiki'
* Analyze and map the flow of 'meza deploy' vs. 'meza create wiki'
* [https://github.com/freephile/meza/blob/dev/.github/RELEASE_AUTOMATION.md Release Automation] using GitHub Actions
=== Extensions ===
* Add LinkTarget extension


=== More ===
=== More ===
Line 63: Line 82:
* Update SBOM files
* Update SBOM files
* Core configuration (OS-specific, <code>config/paths.yml</code>, and <code>config/defaults.yml</code>) 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.
* Core configuration (OS-specific, <code>config/paths.yml</code>, and <code>config/defaults.yml</code>) 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 <code>meza destroy</code> command