Skip to content

Compatibility with older Debian/Ubuntu releases?

Original issue

I built the dh-debputy_0.1.21_all.deb and tried to install it on a Ubuntu 20.04 laptop. Apt does not complain about any dependencies, but the installation does fail on apparently too old Python version:

Setting up dh-debputy (0.1.21) ...
  File "/usr/share/dh-debputy/debputy/commands/deb_packer.py", line 133
    ) as compress_proc,
      ^
SyntaxError: invalid syntax

dpkg: error processing package dh-debputy (--configure):
 installed dh-debputy package post-installation script subprocess returned error exit status 1
Processing triggers for man-db (2.9.1-1) ...
Errors were encountered while processing:
 dh-debputy

Running fails with:

$ debputy 
Traceback (most recent call last):
  File "/usr/bin/debputy", line 6, in <module>
    from debputy.commands.debputy_cmd.__main__ import main
  File "/usr/share/dh-debputy/debputy/commands/debputy_cmd/__main__.py", line 12, in <module>
    from typing import (
ImportError: cannot import name 'NotRequired' from 'typing' (/usr/lib/python3.8/typing.py)

Do you know off the top of your head what the expected backwards compatibility is of debputy? Can we update debian/control to reflect it?

Current baseline support issues

Current baseline is defined as Debian stable(-backports) and Ubuntu noble for debputy {lint,lsp server,reformat}. Outstanding issues:

  • Debian stable(-backports)

    • Build-Depends/Depends
      • Python (3.11)
      • YAML parser (trivially fixable without backport)
      • (Optionally) python3-lsprotocol + python3-pygls (needs backport)
    • Add CI case running tests in Debian stable + backports
  • Ubuntu 24.04 (noble)

    • Build-Depends/Depends
      • Python (3.11)
      • YAML parser
      • python3-lsprotocol + python3-pygls
    • Add CI case running tests in Ubuntu noble

Note: Debian stable is a moving target and will be a long term commitment (like with debhelper) provided lsprotocol and pygls are acceptable backports. Ubuntu noble is a fixed target and will at some point be "too old".

Edited by Niels Thykier
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information