Skip to content

Proj 16 mail namespace decoupling#7

Merged
Wachhund merged 5 commits intomasterfrom
proj-16-mail-namespace-decoupling
Feb 18, 2026
Merged

Proj 16 mail namespace decoupling#7
Wachhund merged 5 commits intomasterfrom
proj-16-mail-namespace-decoupling

Conversation

@Wachhund
Copy link
Owner

Purpose

  • Documentation update
  • Bug fix
  • New feature
  • Refactor/maintenance
  • Security hardening
  • Other (explain below)

Related Features / Issues

  • PROJ: PROJ-16
  • Issue: n/a

Overview of Changes

  • Completed the PROJ-16 mail namespace decoupling:
    • canonical runtime classes live under lib/MyImouto/Mail/* and lib/MyImouto/Mime/*
    • lib/Zend/* kept as compatibility shim wrappers
  • Added idempotent schema repair migration:
    • db/migrate/20260218101500_ensure_legacy_ip_addr_columns_exist.php
    • ensures legacy columns exist if schema/migration history drifted
  • Verified on VPS by rebuilding DB from schema and re-running migration flow.

QA / Verification

  • composer run ci:lint: pass
  • composer run test: pass
  • composer run analyse: skipped (no phpstan config)
  • composer run cs-check: skipped (no cs-fixer config)
  • Manual checks:
    • sudo -u www-data php config/boot.php db:migrate on VPS: pass
    • schema columns present after migration:
      • dmails.ip_addr
      • forum_posts.ip_addr
      • forum_posts.updater_ip_addr
      • comments.updater_ip_addr
    • smoke:
      • / -> 200
      • /user/login -> 200
      • dmail create with ip_addr -> OK

Deployment Impact

  • No deploy impact
  • Requires deploy runbook update
  • Requires environment/config changes
  • Requires migration
  • Rollback notes:
    • restore DB backup if needed (VPS: /home/vps/myimouto-backup.sql)
    • revert this PR commit(s) if rollback of code is required

Reviewer Focus

  • Validate migration safety/idempotency under drifted schemas.
  • Validate Zend shim compatibility and no behavior regression in mail flows.

Checklist

  • Scope matches linked PROJ / issue
  • No secrets or credentials committed
  • Docs updated where needed
  • Backward compatibility considered
  • Ready to merge

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR completes the PROJ-16 mail namespace decoupling effort by migrating mail and MIME functionality from the Zend\* namespace to MyImouto\* as the canonical implementation, with Zend\* classes retained as compatibility shim wrappers that simply extend their MyImouto counterparts.

Changes:

  • Moved mail/MIME class implementations from lib/Zend/Mail/* and lib/Zend/Mime/* to lib/MyImouto/Mail/* and lib/MyImouto/Mime/*
  • Converted Zend classes to empty shim wrappers that extend MyImouto classes for backward compatibility
  • Added idempotent migration to ensure legacy ip_addr columns exist across drifted schemas
  • Added test coverage verifying the shim pattern works correctly
  • Updated README with migration notes and rollback guidance

Reviewed changes

Copilot reviewed 29 out of 29 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
lib/MyImouto/Mail/*.php New canonical mail class implementations (moved from Zend namespace)
lib/MyImouto/Mime/*.php New canonical MIME class implementations (moved from Zend namespace)
lib/Zend/Mail/*.php Converted to compatibility shims extending MyImouto classes
lib/Zend/Mime/*.php Converted to compatibility shims extending MyImouto classes
tests/Unit/Mail/NamespaceDecouplingTest.php New test verifying shim compatibility and end-to-end functionality
db/migrate/20260218101500_ensure_legacy_ip_addr_columns_exist.php Idempotent migration ensuring legacy IP address columns exist
README.md Added migration notes and rollback guidance

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 29 out of 29 changed files in this pull request and generated 2 comments.

@Wachhund Wachhund merged commit d4709aa into master Feb 18, 2026
1 check passed
@Wachhund Wachhund deleted the proj-16-mail-namespace-decoupling branch February 18, 2026 21:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants