I don't like the wording at all. You're mixing too many things together.

I think it would be better to first document the guiding principles (eg. the goal that there are no non-free software in Guix, going for the simplest thing, etc) and then derive rules for specific cases, based on these principles:

How do I remove non-free software? -> snippet because …

How do I remove bundled libraries? -> snippet or phase because …

How do I fix a build issue? -> patch or snippet if this affects building from source, can also be a phase if the result of --sources can still build

A test issue?



This leaves some cases up to interpretation, but that's probably not so different from "it's not an absolute rule". It's also much clearer and quicker to figure out in which case you are. If not documented as a case, you can fall back to the general principles.

Le 25 juillet 2022 05:17:33 GMT+02:00, Maxime Devos <maximedevos@telenet.be> a écrit :

Context: it's currently a mess:, and at times contradictory

I can't work with such a mess. As such, I've a proposal for a consistent, clear and non-elusive set of rules and guidelines, based on the following principles:

More concretely, I propose the following new contents for (guix)Snippets versus Phases (the phrasing could use some work for smooth reading), which I believe to be sufficiently clear (except for some phrasing that could be tweaked, e.g. the phrases are currently rather long), covers a sufficient amount of cases (feel free to respond if you see a missing case), free of contradictions (likewise) and mostly in line with current practice:

[start]

@c: There is no opposition or such, so no versus, let's not start with polarisation.

20.4.5 Snippets, phases and patches

Snippets, phases and patches at times serve overlapping purposes. To decide between the three, there are several considerations to keep in mind:

Sometimes, there remains more than one acceptable way to accomplish the goal. In that case, choose whatever appears to be most convenient.

[end]

(Comments welcome, and required to go forward)

Greetings,
Maxime