Comment 2 for bug 2001699

Revision history for this message
Lukas Märdian (slyon) wrote : Re: [MIR] python-autocommand, python-inflect

Review for package: src:python-inflect

[Summary]
This is a string processing module based upon the Perl module
Lingua::EN::Inflect. Upstream activity is looking good, but it's very
outdated in Debian and Ubuntu. Furthermore, we're missing automated
integration tests. Please update and improve the testing situation,
before we can re-consider it for promotion.

MIR team ACK under the constraint to resolve the below listed
required TODOs and as much as possible having a look at the
recommended TODOs.

This does not need a security review

List of specific binary packages to be promoted to main: python3-inflect
Specific binary packages built, but NOT to be promoted to main: <None>

Notes:
It processes strings which are explicitly passed into the inflection engine,
returning the modified string. This consists of parsing the input, but I feel
like it does not need security review, as the input is known/trusted.

Required TODOs:
#1 Update to the current version 6.0.2 (as of 2023-01-17)
#2 Agree to keep it updated/maintained in Debian/Ubuntu
#3 Add automated integration tests (autopkgtests), at least running the unit-tests
   at runtime, to check the installed version

Recommended TODOs:
#4 The package should get a team bug subscriber before being promoted
#5 Fix warnings during build:
   SyntaxWarning: 'str' object is not callable; perhaps you missed a comma?
   SetuptoolsDeprecationWarning: setup.py install is deprecated.
#6 Drop python3-nose dependency: https://bugs.debian.org/1018513

[Duplication]
There is no other package in main providing the same functionality.
There's also src:inflection in universe, but python-inflect seems to be the better (upstream) alternative.

[Dependencies]
OK:
- no other Dependencies to MIR due to this
  - SRCPKG checked with `check-mir`
  - all dependencies can be found in `seeded-in-ubuntu` (already in main)
  - none of the (potentially auto-generated) dependencies (Depends
    and Recommends) that are present after build are not in main
 - no -dev/-debug/-doc packages that need exclusion
- No dependencies in main that are only superficially tested requiring
  more tests now.

Problems: None

[Embedded sources and static linking]
OK:
- no embedded source present
 - no static linking
- does not have unexpected Built-Using entries
- not a go package, no extra constraints to consider in that regard
- No vendoring used, all Built-Using are in main
- not a rust package, no extra constraints to consider in that regard
- Does not include vendored code

Problems: None

[Security]
OK:
- history of CVEs does not look concerning
- does not run a daemon as root
- does not use webkit1,2
- does not use lib*v8 directly
- does not parse data formats (files [images, video, audio,
  xml, json, asn.1], network packets, structures, ...) from
  an untrusted source.
- does not open a port/socket
- does not process arbitrary web content
- does not use centralized online accounts
- does not integrate arbitrary javascript into the desktop
- does not deal with system authentication (eg, pam), etc)
- does not deal with security attestation (secure boot, tpm, signatures)
- does not deal with cryptography (en-/decryption, certificates, signing, ...)

Problems:
- parses strings, but only of known/explicit origin, passed into the inflection engine

[Common blockers]
OK:
- does not FTBFS currently
- does have a test suite that runs at build time
  - test suite fails will fail the build upon error.
- no new python2 dependency
- Python package, but using dh_python

Problems:
- does NOT have a non-trivial test suite that runs as autopkgtest

[Packaging red flags]
OK:
- Ubuntu does not carry a delta
- symbols tracking not applicable for this kind of code.
- d/watch is present and looks ok (if needed, e.g. non-native)
- Upstream update history is good
- promoting this does not seem to cause issues for MOTUs that so far
  maintained the package
- no massive Lintian warnings
- d/rules is rather clean
- It is not on the lto-disabled list

Problems:
- Debian/Ubuntu update history is sporadic
- the current release is NOT packaged (we're ~4 years behind)

[Upstream red flags]
OK:
- no Errors during the build
- no incautious use of malloc/sprintf (the language has no direct MM)
- no use of sudo, gksu, pkexec, or LD_LIBRARY_PATH (usage is OK inside tests)
- no use of user nobody
- no use of setuid
- use of setuid, but ok because TBD (prefer systemd to set those for services)
- no dependency on webkit, qtwebkit, seed or libgoa-*
- not part of the UI for extra checks
- no translation present, but none needed for this case (user visible)?

Problems:
- using python3-nose: https://bugs.debian.org/1018513
- Warnings during build:
  SyntaxWarning: 'str' object is not callable; perhaps you missed a comma?
  SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.