#1109631 ITP: php-symfony-dependency-injection -- Symfony Dependency Injection component

Package:
wnpp
Source:
wnpp
Submitter:
Ahmed Gamal
Date:
2025-08-10 18:09:02 UTC
Severity:
normal
Tags:
#1109631#5
Date:
2025-07-21 06:57:48 UTC
From:
To:
* Package name    : php-symfony-dependency-injection
  Version         : 3.4.6
  Upstream Author : Fabien Potencier <fabien@symfony.com>
* URL             : https://github.com/symfony/dependency-injection
* License         : MIT
  Programming Lang: PHP
  Section         : php

Description:
 Symfony Dependency Injection component

 This package provides the Symfony Dependency Injection component, which
allows
 developers to standardize and centralize the way objects are constructed
and
 dependencies are managed in PHP applications. It implements a powerful
 dependency injection container that supports autowiring, service
configuration,
 and advanced features for managing complex object graphs.

 The component is widely used in the Symfony framework and by many other PHP
 projects to promote modular, testable, and maintainable code.

Rationale:
 This package is required as a dependency for FOSSology, an open source
license
 compliance system. FOSSology uses PHP-based tools for source code analysis
and
 license detection, which rely on the Symfony Dependency Injection
component to
 manage service objects and their dependencies in a flexible and
maintainable
 way.

 The php-symfony-dependency-injection package is essential for:
 - Managing service dependencies in FOSSology's PHP components
 - Supporting modular and testable code architecture
 - Enabling advanced service configuration and autowiring
 - Promoting maintainable and scalable code in FOSSology
 - Ensuring compatibility with other Symfony-based libraries

Technical Details:
 - Requires PHP >= 5.5.9
 - Implements a feature-rich dependency injection container
 - Supports autowiring, service configuration, and advanced features
 - MIT licensed for maximum compatibility
 - Widely used in the PHP ecosystem

Dependencies:
 - php (>= 5.5.9)
 - Build dependencies: phpunit, php-codesniffer

The package will be maintained by Ahmed Gamal <ahmed.gamal9541@gmail.com>
as part
of the FOSSology packaging effort.

#1109631#10
Date:
2025-08-10 13:49:51 UTC
From:
To:
This package already exists in Debian and is provided by Symfony: https://tracker.debian.org/pkg/symfony
#1109631#17
Date:
2025-08-10 22:02:30 UTC
From:
To:
Dear William and Debian maintainers,

I need to clarify why this ITP was filed despite the existence of
php-symfony-dependency-injection in Debian.

TECHNICAL INCOMPATIBILITY:
FOSSology specifically requires Symfony Dependency Injection version 3.4.6,
while the current Debian package provides version 5.4.x+. These major
versions have breaking API changes that prevent FOSSology from functioning.

CONCRETE EVIDENCE:
During FOSSology integration testing, we encountered this exact dependency
conflict:
"php-symfony-console (5.4.4+dfsg-1ubuntu8) breaks
php-symfony-dependency-injection (<< 4.4~~)"

This error demonstrates that Symfony 5.x series is fundamentally
incompatible with the 3.4.x series that FOSSology requires.

VERSION COMPATIBILITY ISSUE:
- FOSSology was built against Symfony 3.4.x APIs
- Debian's Symfony 5.4.x has breaking changes in:
  - Container interface methods
  - Service definition syntax
  - Autowiring behavior
  - Parameter handling

PROPOSED SOLUTION:
Package this as php-symfony-dependency-injection-3.4 with version-specific
naming to:
- Avoid conflicts with existing Debian packages
- Provide the legacy version FOSSology needs
- Follow Debian's established pattern for version-specific packages
(php7.4-*, php8.1-*, etc.)

PRECEDENT:
This follows the same approach Debian uses for maintaining multiple
incompatible versions of critical software when applications have specific
requirements.

REQUEST:
Could we reopen this ITP to discuss a version-specific packaging approach?
FOSSology is a significant open-source project that would benefit the
Debian ecosystem, and this dependency resolution is essential for its
integration.

Best regards,
Ahmed Gamal
FOSSology Debian Packaging Team

Technical details available at: https://tracker.debian.org/pkg/fossology

#1109631#22
Date:
2025-08-10 22:04:35 UTC
From:
To:
Dear William,

Thank you for reviewing my ITP. However, I believe there's a
misunderstanding about the technical requirements that needs clarification.

TECHNICAL INCOMPATIBILITY ISSUE:
While php-symfony-dependency-injection does exist in Debian, FOSSology
specifically requires version 3.4.6, whereas the current Debian package (
https://tracker.debian.org/pkg/symfony) provides version 5.4.x+.

These are not simply different versions - they have breaking API changes
that make them incompatible:

CONCRETE EVIDENCE FROM TESTING:
During FOSSology integration, we encountered this dependency conflict:
"php-symfony-console (5.4.4+dfsg-1ubuntu8) breaks
php-symfony-dependency-injection (<< 4.4~~)"

This error proves that Symfony 5.x cannot work with applications requiring
3.4.x APIs.

BREAKING CHANGES BETWEEN VERSIONS:
- Container interface methods changed
- Service definition syntax modified
- Autowiring behavior altered
- Parameter handling restructured

PROPOSED SOLUTION:
Package as php-symfony-dependency-injection-3.4 with version-specific
naming, similar to how Debian maintains:
- php7.4-* alongside php8.1-* packages
- Multiple PostgreSQL versions (postgresql-13, postgresql-14, etc.)
- Different Node.js versions when applications have incompatible
requirements

JUSTIFICATION:
FOSSology is a significant open-source license compliance system used by
major organizations. Getting it into Debian requires resolving this version
dependency issue.

This is legitimate version-specific packaging, not duplicate work.

REQUEST:
Could we reopen this ITP to discuss a version-specific approach? I'm happy
to adjust the package name to php-symfony-dependency-injection-3.4 to make
the version distinction clear.

Best regards,
Ahmed Gamal
FOSSology Debian Packaging Team

P.S. I can provide additional technical documentation of the API
incompatibilities if needed.