#1109634 ITP: php-symfony-console -- Symfony Console component

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

Description:
 Symfony Console component

 This package provides the Symfony Console component, a library that eases
the
 creation of beautiful and testable command-line interfaces in PHP. It
allows
 developers to build powerful CLI tools with input parsing, output
formatting,
 progress bars, and more, following best practices for usability and
 maintainability.

 The component is widely used in the Symfony framework and by many other PHP
 projects to provide robust and user-friendly command-line tools.

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, and the Symfony Console component is used to implement
 command-line utilities and scripts within the project.

 The php-symfony-console package is essential for:
 - Building and managing CLI tools in FOSSology's PHP components
 - Supporting interactive and automated command-line operations
 - Providing a consistent and user-friendly CLI experience
 - Enabling advanced input/output handling and progress reporting
 - Ensuring compatibility with other Symfony-based libraries

Technical Details:
 - Requires PHP >= 5.5.9
 - Implements a feature-rich command-line interface library
 - Supports input parsing, output formatting, and progress bars
 - 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.

#1109634#12
Date:
2025-08-10 13:45:06 UTC
From:
To:
Please do some research before opening ITP/RFP bugs.
This package already exists in Debian.

#1109634#17
Date:
2025-08-10 22:08:58 UTC
From:
To:
Dear William,

I need to address a critical version compatibility issue that was
overlooked in the closure of this ITP.

VERSION INCOMPATIBILITY:
FOSSology requires php-symfony-console version 3.4.6, while current Debian
provides version 5.4.x+. These major versions have breaking API changes
that prevent FOSSology from functioning.

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

This error proves that Symfony Console 5.x is fundamentally incompatible
with applications requiring 3.4.x APIs.

MAJOR BREAKING CHANGES BETWEEN VERSIONS:
Symfony Console 3.4 → 5.4 introduced:
- Command class constructor signature changes
- Input/Output interface modifications
- Helper class API restructuring
- Event system overhaul
- Application class method changes

TECHNICAL REQUIREMENT:
FOSSology's CLI components were built against Symfony 3.4.6 APIs. Migrating
to 5.x would require extensive code refactoring throughout FOSSology's
command-line interfaces, which is beyond the scope of packaging work.

PROPOSED SOLUTION:
Package as php-symfony-console-3.4 with version-specific naming to:
- Provide legacy API compatibility for FOSSology
- Avoid conflicts with existing Debian packages
- Follow established Debian patterns for version-specific packages

DEBIAN PRECEDENT:
This follows the same approach used for:
- php7.4-* and php8.1-* packages (major PHP version incompatibilities)
- postgresql-13, postgresql-14, postgresql-15 (breaking database changes)
- python3.9, python3.10, python3.11 (language version requirements)

JUSTIFICATION:
FOSSology is a mature open-source license compliance system used by major
organizations. Its integration into Debian requires resolving these version
dependencies without forcing massive upstream code changes.

REQUEST:
Could we reopen this ITP to discuss version-specific packaging? I'm willing
to adjust the package name to php-symfony-console-3.4 to clearly indicate
the legacy version.

Best regards,
Ahmed Gamal
FOSSology Debian Packaging Team

Documentation: https://symfony.com/doc/3.4/console.html vs
https://symfony.com/doc/5.4/console.html

#1109634#22
Date:
2025-08-10 22:14:50 UTC
From:
To:
Dear William,

I need to reopen this ITP due to a critical version incompatibility that
was not considered.

TECHNICAL INCOMPATIBILITY:
FOSSology requires Symfony Console 3.4.6, but current Debian provides
5.4.x+. These major versions have breaking API changes that prevent
FOSSology from functioning.

CONCRETE EVIDENCE:
During FOSSology integration: "php-symfony-console (5.4.4+dfsg-1ubuntu8)
breaks php-symfony-dependency-injection (<< 4.4~~)"

This proves Symfony 5.x cannot work with FOSSology's 3.4.x-based components.

BREAKING CHANGES 3.4 → 5.x:
- Command class constructor changes
- Input/Output interface modifications
- Helper class API restructuring
- Application class method changes

MIGRATION SCOPE:
Updating FOSSology to Symfony 5.x would require rewriting CLI components
throughout the codebase - beyond packaging scope.

PROPOSED SOLUTION:
Package as php-symfony-console-3.4 (version-specific naming) following
Debian's pattern for incompatible framework versions.

PRECEDENT:
Similar to php7.4/php8.1, postgresql-13/14/15, python3.9/3.10/3.11 for
version incompatibilities.

REQUEST:
Please reopen to discuss version-specific packaging for FOSSology
compatibility.

Best regards,
Ahmed Gamal
FOSSology Debian Packaging Team