github craigk5n/webcalendar v1.9.15

3 hours ago

Bug Fixes

  • Fix session cookie generation — Random salt could include characters outside 0-9A-Za-z,
    producing invalid session cookies (#622)
  • Fix PHP 8.1+ exceptions during wizard upgrade — Idempotent ALTER TABLE ADD statements
    threw uncaught mysqli_sql_exception on duplicate columns, causing HTTP 500 (#613)
  • Fix user cannot confirm conflicts (#618)
  • Fix determineServerUrl() when invoked from CLI (#620)
  • Fix French translations — Encoding and wording corrections (#619)
  • Fix fresh install missing default config — After wizard install, only
    WEBCAL_PROGRAM_VERSION was inserted into webcal_config, leaving 161 defaults missing and
    causing PHP 8.2+ undefined variable warnings on nearly every page
  • Fix SQLite config validation — config.php required db_host and db_login to be non-empty,
    but SQLite databases don't use host or login credentials
  • Fix undefined globals on login page after fresh install — $REMEMBER_LAST_LOGIN and
    $SERVER_TIMEZONE could be undefined, outputting warnings before headers and breaking
    redirects
  • Fix event creation redirect failure — Undefined $dberror and $old_percent in
    edit_entry_handler.php output warnings before header('Location: ...'), silently breaking
    the redirect

CI/CD & Testing

  • Add PHPStan static analysis — Level 0 analysis with baseline covering root PHP files,
    includes/, and wizard/
  • Add multi-PHP-version CI matrix — PHPUnit and install tests run across PHP 8.1, 8.2, 8.3,
    and 8.4
  • Add Selenium wizard installer tests — Automated install and upgrade tests for MySQL,
    PostgreSQL, and SQLite with post-install smoke tests (login + event creation)
  • Add upgrade test fixtures — Schema fixtures for v1.9.10 and v1.9.12 across all DB
    backends
  • Gate release workflow on all test suites — Release only proceeds when syntax, PHPUnit,
    install, and wizard tests all pass
  • Capture screenshots on Selenium test failure — Uploaded as CI artifacts for debugging

Tooling

  • Fix bump_version.sh — Now updates all 17 version references including
    wizard/WizardState.php, and runs composer update --lock automatically
  • Fix compile_test.sh — Now checks for composer.lock drift and returns nonzero exit code on
    errors

Don't miss a new webcalendar release

NewReleases is sending notifications on new releases.