Skip to content

The output of lake exe cache get does not adhere to the "rule of silence" #27038

Open
@euprunin

Description

@euprunin

In Unix program design philosophy, the "rule of silence" holds that a program should remain quiet unless it has something unexpected to report:

"Rule of Silence: When a program has nothing surprising to say, it should say nothing."
[…]
"Well-designed programs treat the user's attention and concentration as a precious and limited resource, only to be claimed when necessary."

By contrast, lake exe cache get emits a flurry of messages even when there’s nothing new to convey:

% lake exe cache get
Current branch: master                             <-- could perhaps be helpful
Using cache from origin: github-username/mathlib4  <-- could perhaps be helpful
Attempting to download 5242 file(s) from leanprover-community/mathlib4 cache <-- could perhaps be helpful
Downloaded: 5242 file(s) [attempted 5242/5242 = 100%] (100% success) <-- could perhaps be helpful
No files to download                               <-- confusing since it seems to contradict the line above
Decompressing 6947 file(s)                         <-- nothing surprising
Unpacked in 4077 ms                                <-- nothing surprising
Completed successfully!                            <-- nothing surprising
% echo $?
0
% lake exe cache get
Current branch: master                             <-- could perhaps be helpful
Using cache from origin: github-username/mathlib4  <-- could perhaps be helpful
No files to download                               <-- nothing surprising
No files to download                               <-- nothing surprising
Decompressing 6947 file(s)                         <-- nothing surprising
Unpacked in 395 ms                                 <-- nothing surprising
Completed successfully!                            <-- nothing surprising
% echo $?
0

This verbosity could be reduced by suppressing routine progress updates and only displaying output when something noteworthy occurs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions