[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

idea: generalized soft dependencies



Somewhat crazy idea, but let's see.

-----------
The problem 
-----------

Subjectiveness of Recommends. Debian policy declares Recommends as
"strong but not absolute" dependency. Maintainers have different
subjective opinions of what belongs to Recommends/Depends/Suggests. Some
put a lot of extra stuff to Recommends. Because of that, and also for
historial reasons (Recommends were not installed by default for a lot of
time) many switch off installing Recommends globally. Some users and
developers even publicly advertise doing that to keep the system
cleaner. This in turn makes harder for maintainers to do 'Depends ->
Recommends' moves.

--------
The idea
--------

tl;dr:

Soft-Depends: a {90%}, b (>= 1.2) {20%}, c (>= 4) {99%}, c (>= 6) {70%}
Soft-Depends: iceweasel {50%,tag:desktop}, curl {95%,if_not_installed:wget}
Soft-Depends: debdelta {10%,text:"to enable automatic delta downloading"}


The idea is to (eventually) replace Recommends and Suggests with new one
field Soft-Depends (Weak-Depends, whatever), which would have the
scalable ability to express when this relation is expected to be
satisfied. The maintainer could use one or more standardized
expressions, most important of which would be the percent of
installations as guessed by mainainer.

Package managers can implement various actions and thresholds to
(better) satisfy different kind of users. Package managers would ignore
expressions it doesn't recognize/understand. System administrators could
finely adjust the package manager of choice, for example:

Some embedded system:
- >80%: display/suggest;

Some minimal system:
- >95%: enable by default;
- >75%: ask interactively;
- >50%: display/suggest;
- >25%,tag:server: ask interactively;

Default:
- >90%: enable by default;
- >40%: display/suggest;

Newbie system with enough disk space:
- >33%: enable by default;
- >5%,text: ask interactively;


Transition period could be 2-3 releases.

'Suggests: x' can be converted to/treated as 'Soft-Depends: x {10%}' and
'Recommends: y' -- 'Soft-Depends: y {90%}'.


Numbers/tags are quite arbitrary -- to give the picture.

-- 
Eugene V. Lyubimkin aka JackYF, JID: jackyf.devel(maildog)gmail.com
C++ GNU/Linux userspace developer, Debian Developer


Reply to: