In Praise Of –Dry-Run

Dry-run vs “Really” mode: devs split, memes flood in

TLDR: A developer added a safe “dry-run” mode to a reporting tool and found it invaluable. Comments erupted into a showdown: some want read-only by default with a “--really” switch, others argue clean design avoids code clutter, and everyone enjoyed the “--wet-run” joke—because safety needs clarity.

A builder of a weekday report app swears by a “dry-run” switch—a pretend mode that shows what would happen without actually doing anything. The community didn’t just nod; they exploded into camps. One crowd cheers the safety-first vibe, saying it’s the perfect sanity check before letting code touch real files or servers. Another camp counters with a savage twist: make tools read-only by default and require a --really flag to do anything risky. Yes, the drama is literally about whether running should be dry, wet, or really.

The most heated thread wasn’t about the app itself, but whether “dry-run” dirties your code. Some insist clean design avoids mess—swap the “save it for real” part with a “write to a log” part, no sprinkled if-statements. Others warn that messy code makes dry-run misleading and security slip-ups possible. Then the comedy hit: one user pushed --wet-run for production, sparking a flood of moisture puns and “bring a towel” jokes. Meanwhile, another shared a slick trick: log pretend web calls (think “show me what the internet request would look like”) using cURL, so dry-run prints the exact moves without touching anything. Verdict? The feature is beloved, but the crowd is feisty over how to name it, design it, and avoid disaster.

Key Points

  • The application generates weekday reports by reading a database, creating reports, zipping them, uploading via SFTP, handling error responses, and sending notifications.
  • A --dry-run option was added early, inspired by tools like Subversion and common Linux commands.
  • In dry-run mode, the command prints intended actions (reports to generate, files to zip/move/upload/download) without making changes.
  • Dry-run provided safe, quick sanity checks and faster testing, such as verifying behavior after modifying state without executing time-consuming tasks.
  • The dry-run flag adds some conditional checks at major phases but doesn’t need to permeate deep logic; it suits command-invoked apps more than reactive systems.

Hottest takes

"Add a --really flag… so extra effort is needed to screw things up" — ElevenLathe
"If you keep passing in `if dry_run:` everywhere you’re screwed" — arjie
"It’s much better to use `--wet-run` for production" — arjie
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.