wexample-wex-addon-dev-php 12.11.1__tar.gz → 12.13.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/PKG-INFO +6 -6
  2. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/README.md +1 -1
  3. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/pyproject.toml +5 -5
  4. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/common/__init__.py +0 -0
  5. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/common/packagist_registry_gateway.py +5 -1
  6. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/const/__init__.py +0 -0
  7. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/const/tags.py +0 -0
  8. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/deployment/__init__.py +0 -0
  9. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/deployment/step/__init__.py +0 -0
  10. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/deployment/step/symfony_env_local_deployment_step.py +0 -0
  11. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/formatter/__init__.py +0 -0
  12. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/formatter/php_code_formatter.py +0 -0
  13. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/resources/design_rules/php_code.md +0 -0
  14. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/resources/package_gitlab_ci.yml +0 -0
  15. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/resources/writing_rules/php_code.md +0 -0
  16. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/composer/commands/__init__.py +0 -0
  17. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/composer/commands/service/__init__.py +0 -0
  18. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/composer/commands/service/install_local.py +0 -0
  19. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/composer/commands/service/refresh_lock.py +0 -0
  20. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/frankenphp/__init__.py +0 -0
  21. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/frankenphp/docker/.wex.yml +0 -0
  22. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/frankenphp/docker/docker-compose.yml +0 -0
  23. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/frankenphp/samples/.wex.yml +0 -0
  24. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/frankenphp/samples/caddy/.wex.yml +0 -0
  25. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/frankenphp/samples/caddy/Caddyfile +0 -0
  26. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/frankenphp/samples/docker/.wex.yml +0 -0
  27. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/frankenphp/samples/docker/docker-compose.yml +0 -0
  28. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/frankenphp/samples/env/dev/docker/.wex.yml +0 -0
  29. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/frankenphp/samples/env/dev/docker/docker-compose.yml +0 -0
  30. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/frankenphp/samples/env/local/docker/.wex.yml +0 -0
  31. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/frankenphp/samples/env/local/docker/docker-compose.yml +0 -0
  32. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/frankenphp/samples/env/prod/docker/.wex.yml +0 -0
  33. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/frankenphp/samples/env/prod/docker/docker-compose.yml +0 -0
  34. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/frankenphp/samples/php/.wex.yml +0 -0
  35. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/frankenphp/samples/php/web.ini +0 -0
  36. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/frankenphp/service.yml +0 -0
  37. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/laravel/app_service.py +0 -0
  38. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/laravel/commands/__init__.py +0 -0
  39. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/laravel/commands/db/__init__.py +0 -0
  40. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/laravel/commands/db/migrate.yml +0 -0
  41. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/laravel/commands/maintenance/__init__.py +0 -0
  42. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/laravel/commands/maintenance/disable.yml +0 -0
  43. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/laravel/commands/maintenance/enable.yml +0 -0
  44. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/laravel/commands/service/__init__.py +0 -0
  45. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/laravel/commands/service/install_local.py +0 -0
  46. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/laravel/commands/service/refresh_lock.py +0 -0
  47. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/php/__init__.py +0 -0
  48. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/php/ai/__init__.py +0 -0
  49. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/php/ai/shared/__init__.py +0 -0
  50. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/php/ai/shared/context.j2 +0 -0
  51. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/php/ai/shared/php.j2 +0 -0
  52. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/php/docker/.wex.yml +0 -0
  53. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/php/docker/docker-compose.yml +0 -0
  54. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/php/samples/.wex.yml +0 -0
  55. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/php/samples/caddy/.wex.yml +0 -0
  56. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/php/samples/caddy/Caddyfile +0 -0
  57. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/php/samples/docker/.wex.yml +0 -0
  58. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/php/samples/docker/docker-compose.yml +0 -0
  59. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/php/samples/env/dev/docker/.wex.yml +0 -0
  60. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/php/samples/env/dev/docker/docker-compose.yml +0 -0
  61. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/php/samples/env/local/docker/.wex.yml +0 -0
  62. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/php/samples/env/local/docker/docker-compose.yml +0 -0
  63. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/php/samples/env/prod/docker/.wex.yml +0 -0
  64. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/php/samples/env/prod/docker/docker-compose.yml +0 -0
  65. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/php/samples/php/.wex.yml +0 -0
  66. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/php/samples/php/web.ini +0 -0
  67. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/php/service.yml +0 -0
  68. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/__init__.py +0 -0
  69. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/ai/__init__.py +0 -0
  70. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/ai/agents/__init__.py +0 -0
  71. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/ai/agents/editor/__init__.py +0 -0
  72. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/ai/agents/editor/agent.yml +0 -0
  73. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/ai/agents/editor/context.j2 +0 -0
  74. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/ai/shared/__init__.py +0 -0
  75. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/ai/shared/context.j2 +0 -0
  76. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/app_service.py +0 -0
  77. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/commands/__init__.py +0 -0
  78. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/commands/service/__init__.py +0 -0
  79. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/commands/service/deploy.py +0 -0
  80. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/commands/service/install_local.py +0 -0
  81. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/commands/service/watch.py +0 -0
  82. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/commands/translations/__init__.py +0 -0
  83. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/commands/translations/translate.py +0 -0
  84. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/docker/.wex.yml +0 -0
  85. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/docker/docker-compose.yml +0 -0
  86. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/knowledge/__init__.py +0 -0
  87. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/knowledge/entity.md +0 -0
  88. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/samples/.wex.yml +0 -0
  89. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/samples/docker/.wex.yml +0 -0
  90. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/samples/docker/docker-compose.yml +0 -0
  91. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/samples/docker/env.build +0 -0
  92. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/samples/docker/images/.wex.yml +0 -0
  93. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/samples/docker/images/Dockerfile.dev +0 -0
  94. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/samples/docker/images/Dockerfile.release +0 -0
  95. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/samples/env/dev/docker/.wex.yml +0 -0
  96. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/samples/env/dev/docker/docker-compose.yml +0 -0
  97. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/samples/env/local/docker/.wex.yml +0 -0
  98. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/samples/env/local/docker/docker-compose.yml +0 -0
  99. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/samples/env/prod/docker/.wex.yml +0 -0
  100. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/samples/env/prod/docker/docker-compose.yml +0 -0
  101. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/symfony/service.yml +0 -0
  102. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/workdir/php_package_workdir.py +72 -13
  103. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/tests/.gitkeep +0 -0
  104. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/tests/workdir/__init__.py +0 -0
  105. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/tests/workdir/test_php_package_workdir.py +0 -0
  106. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/__init__.py +0 -0
  107. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/config_value/__init__.py +0 -0
  108. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/config_value/php_package_readme_config_value.py +0 -0
  109. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/file/__init__.py +0 -0
  110. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/file/php_composer_json_file.py +0 -0
  111. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/php_addon_manager.py +0 -0
  112. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/py.typed +0 -0
  113. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/resources/.wex.yml +0 -0
  114. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/resources/docker/Dockerfile.roave +0 -0
  115. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/__init__.py +0 -0
  116. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/composer/__init__.py +0 -0
  117. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/composer/docker/.wex.yml +0 -0
  118. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/composer/docker/docker-compose.yml +0 -0
  119. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/composer/service.yml +0 -0
  120. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/laravel/__init__.py +0 -0
  121. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/laravel/docker/.wex.yml +0 -0
  122. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/laravel/docker/docker-compose.yml +0 -0
  123. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/laravel/samples/.wex.yml +0 -0
  124. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/laravel/samples/docker/docker-compose.yml +0 -0
  125. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/laravel/samples/env/dev/docker/docker-compose.yml +0 -0
  126. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/laravel/samples/env/prod/docker/docker-compose.yml +0 -0
  127. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/laravel/service.yml +0 -0
  128. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/phpmyadmin/__init__.py +0 -0
  129. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/phpmyadmin/commands/__init__.py +0 -0
  130. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/phpmyadmin/commands/runtime/__init__.py +0 -0
  131. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/phpmyadmin/docker/.wex.yml +0 -0
  132. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/phpmyadmin/docker/docker-compose.yml +0 -0
  133. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/phpmyadmin/env/.wex.yml +0 -0
  134. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/phpmyadmin/env/local/docker/docker-compose.yml +0 -0
  135. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/phpmyadmin/service.yml +0 -0
  136. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/wordpress/__init__.py +0 -0
  137. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/wordpress/commands/__init__.py +0 -0
  138. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/wordpress/commands/service/__init__.py +0 -0
  139. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/wordpress/commands/url/__init__.py +0 -0
  140. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/wordpress/commands/url/replace.py +0 -0
  141. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/wordpress/docker/.wex.yml +0 -0
  142. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/wordpress/docker/docker-compose.yml +0 -0
  143. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/wordpress/samples/.wex.yml +0 -0
  144. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/wordpress/samples/docker/docker-compose-cli.yml +0 -0
  145. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/wordpress/samples/docker/docker-compose.yml +0 -0
  146. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/wordpress/samples/env/dev/docker/docker-compose.yml +0 -0
  147. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/wordpress/samples/env/local/wp-cli/.gitkeep +0 -0
  148. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/wordpress/samples/env/prod/docker/docker-compose.yml +0 -0
  149. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/services/wordpress/service.yml +0 -0
  150. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/workdir/__init__.py +0 -0
  151. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/workdir/php_packages_suite_workdir.py +0 -0
  152. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/workdir/php_symfony_workdir.py +0 -0
  153. {wexample_wex_addon_dev_php-12.11.1 → wexample_wex_addon_dev_php-12.13.0}/src/wexample_wex_addon_dev_php/workdir/php_workdir.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: wexample-wex-addon-dev-php
3
- Version: 12.11.1
3
+ Version: 12.13.0
4
4
  Summary: Extends wex with PHP-specific development commands for Composer, Laravel, Symfony, and WordPress services running in Docker containers
5
5
  Author-Email: weeger <contact@wexample.com>
6
6
  License: MIT
@@ -12,10 +12,10 @@ Requires-Python: >=3.10
12
12
  Requires-Dist: attrs>=23.1.0
13
13
  Requires-Dist: cattrs>=23.1.0
14
14
  Requires-Dist: wexample-filestate-php>=6.5.0
15
- Requires-Dist: wexample-filestate-symfony>=2.1.0
16
- Requires-Dist: wexample-wex-addon-ai>=19.0.0
17
- Requires-Dist: wexample-wex-addon-app>=34.3.0
18
- Requires-Dist: wexample-wex-addon-dev-javascript>=8.6.0
15
+ Requires-Dist: wexample-filestate-symfony>=2.2.0
16
+ Requires-Dist: wexample-wex-addon-ai>=19.1.0
17
+ Requires-Dist: wexample-wex-addon-app>=34.5.0
18
+ Requires-Dist: wexample-wex-addon-dev-javascript>=8.8.0
19
19
  Provides-Extra: dev
20
20
  Requires-Dist: pytest; extra == "dev"
21
21
  Requires-Dist: pytest-cov; extra == "dev"
@@ -23,7 +23,7 @@ Description-Content-Type: text/markdown
23
23
 
24
24
  # wex_addon_dev_php
25
25
 
26
- Version: 12.11.1
26
+ Version: 12.13.0
27
27
 
28
28
  Extends wex with PHP-specific development commands for Composer, Laravel, Symfony, and WordPress services running in Docker containers
29
29
 
@@ -1,6 +1,6 @@
1
1
  # wex_addon_dev_php
2
2
 
3
- Version: 12.11.1
3
+ Version: 12.13.0
4
4
 
5
5
  Extends wex with PHP-specific development commands for Composer, Laravel, Symfony, and WordPress services running in Docker containers
6
6
 
@@ -6,7 +6,7 @@ build-backend = "pdm.backend"
6
6
 
7
7
  [project]
8
8
  name = "wexample-wex-addon-dev-php"
9
- version = "12.11.1"
9
+ version = "12.13.0"
10
10
  description = "Extends wex with PHP-specific development commands for Composer, Laravel, Symfony, and WordPress services running in Docker containers"
11
11
  authors = [
12
12
  { name = "weeger", email = "contact@wexample.com" },
@@ -21,10 +21,10 @@ dependencies = [
21
21
  "attrs>=23.1.0",
22
22
  "cattrs>=23.1.0",
23
23
  "wexample-filestate-php>=6.5.0",
24
- "wexample-filestate-symfony>=2.1.0",
25
- "wexample-wex-addon-ai>=19.0.0",
26
- "wexample-wex-addon-app>=34.3.0",
27
- "wexample-wex-addon-dev-javascript>=8.6.0",
24
+ "wexample-filestate-symfony>=2.2.0",
25
+ "wexample-wex-addon-ai>=19.1.0",
26
+ "wexample-wex-addon-app>=34.5.0",
27
+ "wexample-wex-addon-dev-javascript>=8.8.0",
28
28
  ]
29
29
 
30
30
  [project.readme]
@@ -8,7 +8,8 @@ _HAS_VERSION_STATUS_CODES: tuple[int, ...] = (200, 404)
8
8
 
9
9
  @base_class
10
10
  class PackagistRegistryGateway(AbstractGateway):
11
- """Thin HTTP gateway over Packagist's Composer v2 metadata.
11
+ """Thin HTTP gateway over Packagist's Composer v2 metadata, or a GitLab
12
+ composer registry's, which serves the same file.
12
13
 
13
14
  Reads `p2/<vendor>/<package>.json`, the file composer itself downloads:
14
15
  a version listed there is one a `composer update` run right after will
@@ -34,6 +35,9 @@ class PackagistRegistryGateway(AbstractGateway):
34
35
  releases = response.json().get("packages", {}).get(package, [])
35
36
  except ValueError:
36
37
  return False
38
+ # Packagist lists the releases; a GitLab registry maps them by version.
39
+ if isinstance(releases, dict):
40
+ releases = list(releases.values())
37
41
 
38
42
  wanted = version.removeprefix("v")
39
43
  return any(
@@ -38,6 +38,17 @@ class PhpPackageWorkdir(WithRunnerWorkdirMixin, PhpWorkdir):
38
38
  dependency check erring toward reporting is the right way round.
39
39
  """
40
40
  return line.lstrip().startswith(("*", "//", "#", "/*"))
41
+
42
+ def get_gitlab_registry_url(self) -> str | None:
43
+ """The GitLab composer registry of the group, when the suite publishes there.
44
+
45
+ `php.gitlab_registry.url`, the group's `packages.json`:
46
+ `https://gitlab.example.com/api/v4/group/<id>/-/packages/composer/packages.json`.
47
+ Each version is registered from its tag on the package's own project.
48
+ """
49
+ return self.search_app_or_suite_runtime_config(
50
+ "php.gitlab_registry.url", default=None
51
+ ).get_str_or_none()
41
52
  def get_package_import_name(self) -> str:
42
53
  """Get the full package import name with vendor prefix."""
43
54
  return f"{string_to_pascal_case(self.get_vendor_name())}\\{string_to_pascal_case(self.get_project_name())}"
@@ -160,7 +171,7 @@ class PhpPackageWorkdir(WithRunnerWorkdirMixin, PhpWorkdir):
160
171
 
161
172
  path = self.get_path()
162
173
 
163
- if not git_has_changes_since_tag(last_tag, "src", cwd=path):
174
+ if not git_has_changes_since_tag(last_tag, "src", cwd=path, content_only=True):
164
175
  return UPGRADE_TYPE_MINOR
165
176
 
166
177
  try:
@@ -218,6 +229,42 @@ class PhpPackageWorkdir(WithRunnerWorkdirMixin, PhpWorkdir):
218
229
  # Uses git repo to deploy packages.
219
230
  self.push_to_deployment_remote()
220
231
 
232
+ # Our own registry first, where the release counts: what the apps can
233
+ # install as soon as it is out, and what the publication waits for.
234
+ # Packagist follows from the tag, through the mirror, unwaited.
235
+ if self.get_gitlab_registry_url():
236
+ self._publish_to_gitlab_registry(tag)
237
+
238
+ def _publish_to_gitlab_registry(self, tag: str) -> None:
239
+ """Register the version of tag in the composer registry of the package's
240
+ GitLab project, which the group's registry then serves."""
241
+ import re
242
+ import urllib.request
243
+ from urllib.parse import quote, urlencode
244
+
245
+ from wexample_helpers_git.helper.git import git_get_remote_url
246
+
247
+ api_url = self.get_gitlab_registry_url().split("/group/", 1)[0]
248
+ # The project is the package's origin: ssh://git@host:port/<group>/<name>.git
249
+ project_path = re.sub(
250
+ r"^(ssh://[^/]+/|git@[^:]+:|https?://[^/]+/)",
251
+ "",
252
+ git_get_remote_url(cwd=self.get_path()),
253
+ ).removesuffix(".git")
254
+ request = urllib.request.Request(
255
+ f"{api_url}/projects/{quote(project_path, safe='')}/packages/composer",
256
+ data=urlencode({"tag": tag}).encode(),
257
+ headers={
258
+ "PRIVATE-TOKEN": self.get_env_parameter_or_suite_fallback(
259
+ "GITLAB_API_TOKEN"
260
+ )
261
+ },
262
+ method="POST",
263
+ )
264
+ with urllib.request.urlopen(request, timeout=30):
265
+ pass
266
+ self.log(f"{self.get_package_name()} {tag} registered on the GitLab registry.")
267
+
221
268
  def _test_run_without_container(self) -> None:
222
269
  """In the php image of the runners, the dependencies included.
223
270
 
@@ -320,21 +367,33 @@ class PhpPackageWorkdir(WithRunnerWorkdirMixin, PhpWorkdir):
320
367
  PackagistRegistryGateway,
321
368
  )
322
369
 
323
- if not self.is_published_publicly():
324
- return
325
-
326
370
  package = self.get_package_name()
327
371
  version = self.get_setup_version()
328
- gateway = PackagistRegistryGateway(
329
- base_url="https://repo.packagist.org",
330
- io=self.io,
331
- timeout=10,
332
- )
333
372
 
334
- max_attempts = 40
335
- delay_seconds = 30
373
+ # The GitLab registry, when the suite publishes there, serves a version
374
+ # as soon as it is registered; Packagist, behind the mirror and its
375
+ # webhook, takes minutes, and nobody waits for it any more.
376
+ group_url = self.get_gitlab_registry_url()
377
+ if group_url:
378
+ gateway = PackagistRegistryGateway(
379
+ base_url=group_url.removesuffix("/packages.json"),
380
+ io=self.io,
381
+ timeout=10,
382
+ )
383
+ registry, delay_seconds = "the GitLab registry", 5
384
+ elif self.is_published_publicly():
385
+ gateway = PackagistRegistryGateway(
386
+ base_url="https://repo.packagist.org",
387
+ io=self.io,
388
+ timeout=10,
389
+ )
390
+ registry, delay_seconds = "Packagist", 30
391
+ else:
392
+ return
393
+
394
+ max_attempts = 20 * 60 // delay_seconds
336
395
 
337
- self.log(f"Waiting for {package} {version} to appear on Packagist…")
396
+ self.log(f"Waiting for {package} {version} to appear on {registry}…")
338
397
 
339
398
  def on_retry(attempt, max_a, delay, _exc, _msg) -> None:
340
399
  self.log(
@@ -347,7 +406,7 @@ class PhpPackageWorkdir(WithRunnerWorkdirMixin, PhpWorkdir):
347
406
  delay_seconds_callback=lambda _attempt: delay_seconds,
348
407
  on_retry_callback=on_retry,
349
408
  timeout_message=(
350
- f"Timed out waiting for {package} {version} on Packagist after "
409
+ f"Timed out waiting for {package} {version} on {registry} after "
351
410
  f"{max_attempts * delay_seconds // 60} minutes."
352
411
  ),
353
412
  ).run()