Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions docs/PRESS-KIT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# wsl2-devkit β€” Press Kit

Everything you need to write or talk about wsl2-devkit. Quote freely; it's MIT.

**Links:** [Repository](https://github.com/elirancv/wsl2-devkit) Β· [Latest release](https://github.com/elirancv/wsl2-devkit/releases/latest) Β· [Full documentation](DOCUMENTATION.md)

---

## One-liner

> Turn a fresh Windows PC into a professional Linux dev machine in about 30 minutes β€” and keep Windows clean while doing it.

## The pitch β€” for people who've never heard of WSL2

Windows can run a real Linux system *inside* itself β€” no dual-boot, no slow virtual machine window, no second computer. Microsoft calls it **WSL2** (Windows Subsystem for Linux), and it's how a huge share of professional developers on Windows actually work: Windows for the browser and editor, Linux for the code.

The catch: setting it up *well* β€” the languages, the tooling, the SSH keys, the terminal that doesn't look like 1995 β€” takes an evening of googling and a dozen chances to get something wrong.

**wsl2-devkit is that evening, scripted.** Four steps you run in order. It asks what you want (Node? Python? Go? Rust?), installs it the right way, and finishes with a **52-point health check** that proves everything works. It even comes with an undo button: built-in backup, restore, and reset tools.

## The pitch β€” for engineers

wsl2-devkit is a staged, **idempotency-proven** provisioning kit for Windows 10/11 + WSL2 Ubuntu:

- **Four ordered stages** β€” winget apps β†’ WSL2 + auto-sized `.wslconfig` β†’ dev toolchain (nvm/pnpm/bun, pyenv/uv, pinned Go, rustup, modern CLI: eza Β· bat Β· ripgrep Β· fzf Β· zoxide Β· starship Β· lazygit Β· gh) β†’ VS Code extensions installed *into the WSL server*, not inertly on Windows.
- **Supply chain you can audit** β€” every vendor installer script is fetched from an **immutable tag/commit ref and verified against a SHA256 committed in the repo** before a byte executes. The Go tarball is version-pinned + checksummed. Releases ship `checksums.txt`.
- **CI that tests the kit, not just the syntax** β€” every push runs the real installer **twice** on a clean runner and asserts the managed `~/.bashrc` block is *byte-identical* after the re-run, then passes the 52-check verifier. ShellCheck, PSScriptAnalyzer, and a genuine Windows PowerShell 5.1 parse job gate every PR.
- **Unattended mode** β€” `--yes` / `--all` / `--profile file.conf` for golden images and repeatable rebuilds.
- **Day-2 tooling** β€” health verifier, distro backup with rotation, validated restore, VHD compaction, typed-confirmation reset.
- **No telemetry. Keys generated locally. MIT.**

## Design principle

**Windows stays clean.** Editors, browsers, and fonts live on Windows; every language runtime, linter, and CLI tool lives in WSL2, where the filesystem is fast. The kit enforces the separation instead of hoping you maintain it.

## Numbers that are true

| Claim | Backing |
|---|---|
| ~30 minutes, fresh PC β†’ verified dev machine | Stage timings in the README |
| 52-check health verifier | `wsl/verify-setup.sh`, run on every CI push |
| 8/8 vendor installers pinned + checksum-verified in-repo | `fetch_verified()` in `wsl/stage2-ubuntu.sh` |
| Idempotency is CI-enforced, not claimed | Twice-run byte-identical assert in `.github/workflows/ci.yml` |
| Every release ships script checksums | `checksums.txt` on each release |

## Assets

- **Hero GIF** (terminal walkthrough, 1200Γ—750): [`demo/devkit-demo.gif`](../demo/devkit-demo.gif) β€” reproducible via `make demo`, fully anonymized
- Architecture + flow diagrams: rendered Mermaid in the [README](../README.md#how-it-works)
- Suggested screenshot: the verifier's green `52 passed, 0 warnings, 0 missing` summary

## FAQ ammunition

**Is it safe to run scripts like this?** Read them first β€” that's the intended workflow. They're plain PowerShell/bash, MIT-licensed, no telemetry, and each release publishes SHA256 checksums so you can audit a tag and run exactly those bytes.

**I already have WSL2.** Stage 2 alone still gets you the toolchain + shell setup, and `verify-setup.sh` will tell you what's missing. Everything is safe to re-run.

**Why not Dev Containers / Ansible?** Different job. This is a *personal machine* bootstrap optimized for native speed and a clean host β€” not fleet configuration management. The scaffolding it installs works fine with containers on top.

## Boilerplate

> **wsl2-devkit** is an open-source (MIT) provisioning kit that turns a fresh Windows 10/11 machine into a complete, verified Linux development environment using WSL2 β€” in four staged scripts and about 30 minutes. Built by [Eliran Cohen](https://github.com/elirancv).