Skip to content

4.0.0-alpha.1

Pre-release
Pre-release

Choose a tag to compare

@Universal-Omega Universal-Omega released this 15 Jul 02:02
· 85 commits to main since this release
da24a77

🚀 DynamicPageList4 - Alpha 1 Release

This is the very first alpha release of DynamicPageList4! This release includes many changes, fixes, and internal refactors.


🛠️ Changes and Improvements

  • Completely Rewritten Query Builder:
    The query builder has been fully rewritten to improve reliability, security, and maintainability. This overhaul significantly changes how queries are constructed under the hood, reducing bugs and improving support across databases.

  • Configuration Handling:
    Configuration fetching is now more reliable and uses MediaWiki's built-in mechanisms.

  • Parameters Refactored:
    The Parameters class has been heavily refactored to use modern PHP features. Some regressions or edge cases may exist — please open an issue if you encounter any!

  • Enhanced %ARGS% Handling:
    Updated symbols within %ARGS% to avoid parser conflicts. This resolves several bugs with template expansion.

  • Display Title Support:
    Added support for display titles:

    • New format option: %DISPLAYTITLE% (falls back to %TITLE% if no display title is set; available only when using the title parameter).
    • New order method: ordermethod=displaytitle (automatically falls back to sorting by title when no display title exists).
  • Category & Handling:
    Previously, using & in a category name would incorrectly be interpreted as a logical AND separator between multiple categories, instead of being treated as a literal character in the category name. This meant that querying for categories containing an actual & (like "Cats & Dogs") would fail to match any pages.

    This behavior has been fixed:

    • To perform a logical AND between categories, you now must explicitly use <&>.
    • A literal & in category names will now be treated correctly as part of the name.
  • Category Headings Fix:
    Fixed handling of catheadings and catnotheadings (via + and - in category=). Previously, category=+ would error and category=- could yield unpredictable results.

  • Namespace Handling Improvements:

    • namespace and notnamespace now support namespace IDs in addition to namespace names.
    • Case-insensitive main and (main) are now accepted for the main namespace.
  • Open References Conflict Handling:
    openreferences now correctly produces the expected conflict error instead of a query error when misused.

  • Better Error for ordermethod=pagesel:
    Now provides a proper error message when used without any supported parameters.

  • Column Ambiguity Fixes:
    Fixed some instances where the database would error with "page_title" is ambiguous.

  • Improved Linking Parameters Compatibility:
    Added support for combining linksfrom, linksto, usedby, and uses together. Previously, mixing them would result in errors or no results.

  • FlaggedRevs Compatibility Fixed:
    qualitypages and stablepages now function again. These have not worked for a long time due to outdated checks, now replaced with checks via ExtensionRegistry.

  • Order Collation Improvements:
    The ordercollation parameter has been fully fixed (it didn't work much at all before) and now:

    • Also accepts just charsets (instead of only accepting full collation names) when using MySQL/MariaDB.
    • Is compatible with SQLite using the default collations: BINARY, NOCASE, and RTRIM.
    • Should work properly across MySQL/MariaDB, PostgreSQL, and SQLite.
  • PostgreSQL Regex Support:
    Added support for using regular expressions (REGEXP) on PostgreSQL.

  • ignorecase Fixes Across All Databases:
    The ignorecase parameter now works correctly on MySQL, MariaDB, PostgreSQL, and SQLite. Previously, it did not function on most setups.

  • Rebranded to DPL4:
    The codebase has been updated to reference DynamicPageList4 throughout. However, the actual extension name remains DynamicPageList3 for now. This is to keep the extension name consistent with the repository name and to avoid confusion during the transition.

    The extension name will be officially changed in a future release.


📌 Notes

  • This alpha release includes all improvements from pre-release versions 1 to 5, along with other fixes and enhancements.
  • There is still much more planned for DPL4, but this release establishes a new foundation.
  • MediaWiki 1.44 is expected to be the last version supporting DynamicPageList3. DPL4 will be the focus moving forward and will fully support MediaWiki 1.45 and categorylinks normalization.

There’s a lot packed into this release, with much more to come. If you run into any issues, please open an issue on this repository or leave a comment in the discussion for this release.

Thank you for testing DPL4!