Revision history for WebDyne

3.005 2026-08-02

    Major Version 3 release.

    * Added PAGI runtime support through WebDyne::PAGI and the
      webdyne.pagi wrapper, including HTTP, server-sent event, WebSocket,
      and lifespan request handling.

    * Added a common request abstraction for standalone, Apache/mod_perl,
      PSGI, and PAGI execution environments.

    * Refactored PSGI support into WebDyne::PSGI and expanded runtime
      handling for document roots, default documents, directory indexes,
      static files, and API routes.

    * Added webdyne.apache for temporary local Apache/mod_perl execution
      without requiring a permanent system Apache configuration.

    * Expanded wdapacheinit to support broader Apache installations,
      APXS discovery, installation and uninstall workflows, dry-run
      operation, and platform-specific configuration layouts.

    * Expanded wdrender to exercise multiple request backends, including
      fake, PSGI, PAGI, and mod_perl, with support for request methods,
      headers, parameters, response inspection, and comparison testing.

    * Added test-file modes to command-line compilation and rendering
      utilities.

    * Added a bundled default stylesheet for generated WebDyne pages and
      improved the appearance of default directory index output.

    * Added Docker runtime selection between PSGI and PAGI, with
      environment-variable tuning for server workers, timeouts, backlog,
      connection limits, and request body sizes.

    * Improved request and static-file safety, including path traversal,
      upload, multipart, error handling, and binary response coverage.

    * Reworked the documentation into a DocBook/MkDocs build with
      generated utility and module reference pages.

    * Added extensive examples and expanded automated test coverage for
      runtime backends, wrappers, static handling, APIs, SSE, WebSockets,
      and command-line utilities.

    * Removed the old WebDyne::CGI::PSGI adapter in favour of the new
      request and runtime abstraction.

2.021 2025-11-07

    * Added multi-line <start_html> attributes for scripts, styles, and
      related inclusions.

    * Prevented WebDyne substitution inside executable JavaScript blocks.

    * Added default viewport metadata and expanded head inclusion support,
      including array-valued includes.

    * Added Alpine/Vue attribute compatibility handling.

2.018 2025-10-29

    * Added the <htmx> tag for request-aware HTML fragment rendering.

    * Made directory indexes and static files available by default through
      the PSGI wrapper.

    * Improved HTML tree handling, constant importing, and error reporting.

2.017 2025-10-27

    * Added the <api> tag for lightweight JSON API responses using
      Router::Simple path matching.

2.015 2025-10-22

    * Added the wdlint utility for checking Perl syntax in __PERL__
      sections of PSP files.

    * Added the default PSGI directory index page and --index support.

2.014 2025-10-18

    * Replaced the CGI.pm-based HTML generation path with CGI::Simple and
      WebDyne::HTML::Tiny.

    * Refactored compilation and evaluation handling around the new HTML
      generation backend.

    * Added the JSON tag, alternate div-based WebDyne syntax,
      application/perl script blocks, and expanded HTML5 tag handling.

    * Added PSGI/Plack support to the main WebDyne distribution, including
      command-line document-root and default-document selection.

    * Added exported WebDyne::html() and WebDyne::html_sr() functions for
      standalone PSP rendering.

    * Added WebDyne::Template to the core distribution and added PSGI
      static-file serving through --static.

    * Added WEBDYNE_HEAD_INSERT for injecting common content into generated
      document heads.

    * Added Docker build files and container-oriented development support,
      including automatic dependency installation from a mounted cpanfile.