On Thu, 14 Aug 2025 at 23:00:53 -0600, Antonio Russo wrote:
When I run in to a problem in Debian, I try to follow a rough pattern:

[0. I run into a problem]
1. I identify a suspect package, and diagnose a cause.
2. I identify a solution.
3. I implement the solution, recompile, and confirm it solves the problem.
4. I submit the solution (either upstream or to Debian).

Part of step (4) involves writing prose that documents the investigation
and describes the patch.

Personal opinion, not necessarily shared by everyone:

When someone has identified a problem that can be fixed by patching a package I maintain, usually the most important piece of information that I want to see is a solution-neutral problem statement from the step 0 that you didn't include in the list above: "I tried to follow procedure x, the program did y, but I think it should have done z instead". That way, I have a basis for assessing whether your diagnosis in step 1 and the solution from steps 2-4 is actually the most appropriate, or whether the problem would be better solved in some other way.

For example, I recently did a team upload of devhelp, a GTK GUI program. If you have found a problem with devhelp, sometimes patching devhelp is the best course of action, but perhaps it would be more appropriate to fix a bug in GTK or some other library that it depends on, or perhaps it's working as intended but your expectation didn't match the design. A merge request that just changes devhelp's behaviour wouldn't help me to choose which of those is the right one.

If you're able to propose a solution *as well*, then of course that's even better - but the more time I spend being an upstream and downstream maintainer, the more grumpy I get about being asked to reverse-engineer an observed problem from a proposed solution so that I can do a meaningful review on the solution.

Debian's canonical way to handle this is that you open a bug with the solution-neutral problem statement, possibly with a patch attached if you think you know how to solve it; or, increasingly, people with a git-centric workflow would prefer to open a bug with the URL of a merge request. That's fine, either way the bug is an ideal place to put the problem statement.

Or, if you're confident that your solution is the right one, sometimes jumping straight to a merge request is OK (if you know that the maintainer of this particular package will notice MRs), but most of the time the MR description or commit message does need to indicate what problem is being solved - otherwise how should I know what problem you thought you were solving?

This is less important for "cleanup"/"janitorial" changes - if you send me a patch or merge request that switches from a deprecated dependency to a non-deprecated one, or says that it silences a Lintian warning, or something like that, then it's pretty obvious what you were aiming to achieve. But for bugs (code is functionally wrong in some way), I really do want to see a description of the problem, not just a solution - and if you only have time to provide one of those things, usually I'd prefer the problem description.

There is also the factor mentioned elsewhere in this thread that a package's maintainer (and particularly the upstream maintainer) probably has an idea of how they want the code to be designed, and if you charge ahead with a complicated solution before starting the conversation, you need to be prepared for the answer to be "thanks, but not that way" (potentially after you've spent a lot of time on it). If the majority of the effort is in diagnosing the problem, and the solution is simple, then that's less likely to be a concern; but if you find yourself writing relatively complicated code to solve an unreported problem, I would recommend pausing, reporting the problem, and saying "I'm working
on a fix" before you proceed.

Thanks,
    smcv

Reply via email to