Hi,

I'd like to start a discussion about making the maintainer's preferences regarding support for older Debian releases in source packages a bit more explicit. In case this discussion garners interest, I'll draft a more formal DEP.


## Problem

Some maintainers like to keep their packages in a state that makes them easy to backport to stable or older releases (without relying on separate repositories or non-trivial branches). I find this stance agreeable and it should perhaps even be encouraged.

However this level of support is not clear to drive-by contributors. Does `d/control` state `debhelper-compat (= 12)` because the maintainer still supports stretch, or just because they forgot about it? Can `dh-sequence-movetousr` be removed from this package, now that the development of forky has started? Or does its maintainer routinely backport to oldstable and thus that build dep is still necessary? Would patches that fixed these issues be accepted or would they be wasted? A drive-by contributor (or a large-scale refactoring program like the janitor) has no way of knowing this in advance.


## Solution: basic idea

The package maintainer writes in `debian/source/support` (please bikeshed this filename) which Debian releases they plan to support.

A missing or empty file indicates that "this package only targets testing/unstable; backports will be built from slightly different sources; feel free to submit patches that only deal with unstable". This means that only maintainers that actually care about backports must add a file, the others can ignore all this.

Example of a simple `d/s/support` file that I would use for my own packages:

```
debian/stable
debian/unstable
```


## Solution: basic format spec

The file `debian/source/support` contains a list of supported releases, one per line. Supported releases can be specified either via their version number/nickname (e.g., "11-bullseye") or via time-relative nicknames (e.g., "oldoldstable").

Release specifiers must be vendored (e.g., "debian/12-bookworm") to allow the coexistence of support information for Debian-derivatives (if the Debian maintainer so wishes).

Contact information can be added for certain specifiers (e.g. "[email protected]").


### Examples

#### Example 1. "The package targets stable and oldstable."

```
debian/oldstable
debian/stable
debian/unstable
```

#### Example 2. "The package targets stable and oldstable; oldoldstable is also targeted, but by another developer."

```
debian/oldoldstable [email protected]
debian/oldstable
debian/stable
debian/unstable
```

### Example 3. "The package needs to build on jessie because of reasons, and we backport regularly to stable."

```
debian/8-jessie # Used by the VM at fakeexample.debian.net
debian/stable
debian/unstable
```

## Open questions:

* Is a more structured format needed?

* Should all supported releases be specified (e.g., "11, 12, 13, unstable"), or should specifying a certain version (e.g., "11") implicitly express support for all other release up to unstable?

Regards,

--
Gioele Barabucci

Reply via email to