Appendix A

Installing
Debian Testing

The most common question after "Debian Testing" is: how do I actually get there? Do I install Stable and upgrade, or jump straight in? Short answer: jump straight in. This page walks you through it.

Windows + Linux
Dual-boot covered
~30 min install

The First Question

Stable first, then upgrade — or Testing directly?

Method A
Install Stable, upgrade to Testing
Install Debian Stable (trixie), then change /etc/apt/sources.list to point at Testing (forky), then run apt full-upgrade. Technically valid — and the Debian wiki does recommend upgrading from current Stable rather than skipping a release. In practice, the step upgrade can cause dependency conflicts, held-back packages, and config file prompts that trip up new users. The smoother path if you're starting fresh is a clean Testing install.
Method B · Recommended
Install Testing directly
Download the Debian Testing netinst ISO and install Testing from scratch. You get a clean rolling system from day one with no migration artifacts. This is the preferred path for a daily driver — especially if you've had trouble with step upgrades before. Stable is the right choice for servers. Testing is the right choice for a machine you're learning and experimenting on.

From the Debian Wiki

Why Testing is stable enough.

"Testing" sounds alarming to anyone who wants a computer that works. The name is misleading. Here's what it actually means — sourced directly from wiki.debian.org/DebianTesting.

What Testing actually is
Tomorrow's Stable, today.
The Debian wiki describes Testing as "the current development state of the next stable Debian distribution." What you're running on Testing is Stable — it just hasn't been officially tagged yet. The current Testing codename is Forky, which will eventually become Debian 14.
The migration gate
Packages earn their way in.
A package doesn't move from Unstable to Testing automatically. It must have been in Unstable for at least 2–10 days (depending on upload urgency), must build successfully on all supported architectures, must not introduce new release-critical (RC) bugs, and must not make Testing harder to install. Each package is continuously re-evaluated.
The honest middle ground
"Not as crazily as Unstable."
Debian's own wiki says Testing "changes more often than stable, but not as crazily as unstable." Unstable (sid) is where developers upload packages directly, with no waiting period. Testing is the filtered, vetted output of that process. You get new software without getting bleeding-edge chaos.
The freeze effect
Before release: more stable than usual.
In the months before a Debian release, Testing enters a freeze: new upstream versions stop flowing in, and only bug fixes are accepted. During a freeze, Testing is arguably the most stable Debian branch — it's being aggressively polished into the next Stable. If you're on Testing through a freeze period, your system barely moves.
Honest caveat
Security updates are slower.
The Debian wiki is direct: "Compared to stable and unstable, next-stable testing has the worst security update speed. Don't prefer testing if security is a concern." Security fixes arrive as normal package migrations, not through a dedicated fast-track channel. For a personal desktop or learning machine, this is an acceptable trade-off. For a server or anything handling sensitive data: use Stable.
The bottom line
Daily driver? Yes.
The problems you'll encounter on Testing are real but almost always easily resolved — a held-back package, a config file change, an occasional library version conflict. These are documented problems with documented solutions, and working through them teaches you more about how Linux works than a stable system ever will. People have daily-driven Testing for years without significant incidents.

Why It Matters

Rolling release and graphics support.

Beyond stability, Testing's rolling nature has practical benefits that matter immediately — especially if you're gaming or running newer hardware.

01 No reinstalls, ever The rolling advantage

On Debian Stable, you do a major upgrade every two years or so — from Bookworm to Trixie, from Trixie to Forky. Each of these is a significant event requiring planning and occasionally causing breakage. On Testing, there is no version upgrade. You run apt update && apt upgrade and your system is current. Today's packages flow in. Your configuration never needs to be migrated between releases because there are no releases.

The entire update story

sudo apt update && sudo apt upgrade # That's it. Do it weekly. # You will never reinstall to "upgrade".
02 Latest Mesa — AMD and Intel graphics OpenGL · Vulkan · driver stack

Mesa is the open-source OpenGL and Vulkan driver stack for AMD (RADV, RadeonSI) and Intel (ANV, Iris) GPUs. It is one of the most actively developed pieces of graphics software on Linux. New Mesa versions regularly unlock better game compatibility, higher frame rates, and support for newer Vulkan extensions — including ray tracing on RDNA2+ cards. On Debian Stable, Mesa lags significantly behind. On Testing, you get current Mesa within weeks of upstream release.

Check your Mesa version

glxinfo | grep "OpenGL version" # or vulkaninfo | grep driverVersion
03 Current kernel — hardware support New GPUs · NVMe · Wi-Fi chips · USB

The Linux kernel adds hardware support continuously. If you bought a GPU, Wi-Fi card, or NVMe controller in the last year or two, Debian Stable's older kernel may lack the driver. Testing ships a recent kernel — typically within a few months of upstream LTS releases — which means better out-of-the-box support for newer hardware without backport hunting. This matters especially for AMD RDNA3/4 GPUs and recent Intel Arc cards, both of which have received substantial kernel improvements.

Check your kernel version

uname -r # Testing will typically show a 6.x kernel # Stable ships with an older LTS kernel by default
04 Gaming: Proton, Wine, DXVK Steam · Vulkan translation · gamemode

The Linux gaming stack depends on current userspace. Proton (Valve's compatibility layer for Windows games on Steam) gets better with every Mesa update, every Vulkan extension that lands, every kernel improvement to memory management. On Stable, you're gaming on an older snapshot of all of these. On Testing, they move together. Install gamemode to let games request CPU and GPU performance mode on demand, and mangohud to overlay frame timing and GPU stats.

Gaming essentials on Testing

sudo apt install gamemode mangohud # Enable Steam Play (Proton) in Steam settings # → Steam → Settings → Compatibility → Enable Steam Play for all titles
05 Wayland compositors run better GNOME · KDE · Sway · Hyprland

Wayland support in GNOME and KDE Plasma has improved dramatically with each release. Running Testing means you get these improvements as they land — better multi-monitor handling, fractional scaling, HDR support (where hardware allows), and smoother frame timing. Wayland on Testing with a current Mesa + kernel is a substantially different experience from Wayland on Stable. If Wayland gave you trouble on an older system, it's worth trying again on Testing.

Check Wayland session

echo $XDG_SESSION_TYPE # wayland ← you're good # x11 ← may need to select Wayland at login screen

The Process

Step by step.

Before you start — plan your partition layout

The installer will ask you about partitioning before it installs anything. Decide now so you're not guessing at a blue screen. The three decisions that matter:

Guided vs Manual

Guided — use entire disk is the right choice for a new machine or a wipe-and-reinstall. The installer handles everything. Choose Manual only if you're dual-booting or want custom partition sizes.

Separate /home?

Recommended for dedicated machines. A separate /home partition lets you reinstall the OS without touching your personal files. In Guided mode, pick "Separate /home partition" when prompted.

Swap: file or partition?

Either works. A swap file is easier to resize later and is fine for Debian Testing. A swap partition is required if you plan to hibernate. Size: 2× RAM for machines with ≤8GB; equal to RAM if you have more.

For size guidelines, every mount point explained, and a disk diagram for common layouts, see Appendix C: Partitioning Your Disk →

1
Get the Testing netinst ISO
Debian publishes daily-built Testing netinst images. The netinst (~400MB) downloads the rest of the system from the internet during install — you need a network connection. The complete official installation guide for Testing (Forky / amd64) is at:

debian.org/releases/testing/installmanual

Download the ISO from the official Debian daily builds:

cdimage.debian.org › daily-builds › daily › amd64 › iso-cd

The file will be named debian-testing-amd64-netinst.iso (currently Forky). This image is rebuilt daily — it installs whatever Testing currently is. Unlike a point-release ISO, there is no version to go stale.
# Verify the download with the SHA256 checksum on the same page
sha256sum debian-testing-amd64-netinst.iso
2
Write the ISO to a USB stick
Debian's netinst ISO is a hybrid image — it can be written directly to a USB stick and made bootable in one step. The full official instructions are in Debian Installation Guide §4.3 and the Debian Wiki: CreateUSBMedia. Choose your platform:

On Windows, the official Debian documentation points to the Debian CD FAQ §5 for USB writing on non-Linux systems. The recommended tool is Rufus — free, no install required, and critically: it writes the ISO in DD image mode, which preserves the hybrid image exactly as Debian built it.

Rufus Recommended

Download from rufus.ie. Single executable, no installation. When you select the Debian ISO, Rufus will ask which mode to use:

Critical — choose the right mode

Rufus will prompt: "Write in ISO Image mode (recommended)" or "Write in DD Image mode."
Choose DD Image mode. ISO mode rewrites the bootloader structure and can break the Debian installer. DD mode copies the hybrid image byte-for-byte, exactly as official Debian built it. This is consistent with the official Debian documentation's warning against tools that alter the image.

  1. Open Rufus. Select your USB drive from the Device dropdown.
  2. Click SELECT and choose the Debian ISO.
  3. When prompted for write mode — select DD Image mode.
  4. Click START. Confirm the warning that all data on the USB will be destroyed.
  5. Wait for the progress bar to complete and the status to show "READY."
balenaEtcher Alternative — simpler, fewer options

Available at etcher.balena.io. Three-step UI: select image, select drive, flash. Always writes in DD mode — no mode prompt, no wrong choice to make. Works on Windows, macOS, and Linux. Trade-off: it's an Electron app (~150 MB install) versus Rufus's 1 MB executable. Both produce identical results for Debian.

Do not use: UNetbootin, Windows USB/DVD Download Tool, or the "ISO Image mode" in Rufus. The official Debian documentation explicitly warns that tools which modify the image will produce a broken installer. The Debian ISO is already bootable as-is — it needs to be copied, not rebuilt.

Verify the download first. Before writing, confirm your ISO matches the SHA256 checksum published on the same download page. In PowerShell:

Get-FileHash debian-testing-amd64-netinst.iso -Algorithm SHA256

Compare the output against the SHA256SUMS file on the download page. They must match exactly.

Official methods from Debian Installation Guide §4.3 and Debian Wiki: CreateUSBMedia.

Identify your USB device first

# Run BEFORE inserting the USB stick:
ls /dev/disk/by-id/* | grep -v -- '-part[0-9]*$' | tee /tmp/disks.txt

# Insert USB, then see what's new:
ls /dev/disk/by-id/* | grep -v -- '-part[0-9]*$' | diff /tmp/disks.txt -

# Or simply:
lsblk # the new device is your USB stick

cp method (official wiki)

sudo umount /dev/sdX*
sudo cp debian-testing-amd64-netinst.iso /dev/sdX # whole disk, not /dev/sdX1
sudo sync # wait for this before removing the USB

dd method (alternative)

sudo dd if=debian-testing-amd64-netinst.iso of=/dev/sdX bs=4M status=progress conv=fsync

Write to the disk, not a partition. /dev/sdb is correct. /dev/sdb1 is wrong. Verify with lsblk before running either command. Do not use unetbootin — it modifies the image.

If you have Windows Subsystem for Linux (WSL2) installed, you can run the exact same dd command used on Linux — directly from a Windows terminal. No GUI tools, no modified images, byte-for-byte identical to what the Linux tab does.

Check if you have WSL

# In PowerShell or Command Prompt:
wsl --list --verbose
# If WSL is installed you'll see your distro listed (Ubuntu, Debian, etc.)
# If not installed: wsl --install (requires reboot)

Identify the USB device from WSL

# Open WSL (type "wsl" in PowerShell or Windows Terminal)
lsblk
# Find your USB stick — look for the size that matches your drive
# It will appear as /dev/sdX (e.g. /dev/sdb)

Write the image with dd

# From inside WSL, navigate to where you saved the ISO
# Windows C: drive is mounted at /mnt/c/ in WSL
cd /mnt/c/Users/YourName/Downloads

# Write — same command as Linux, same rules apply:
# Use the whole disk (/dev/sdb), not a partition (/dev/sdb1)
sudo dd if=debian-testing-amd64-netinst.iso of=/dev/sdX bs=4M status=progress conv=fsync

WSL2 mounts the physical disk directly. The same rules apply as on Linux: write to /dev/sdb, never /dev/sdb1. Verify the device with lsblk before running dd. Getting the wrong device letter will silently overwrite whatever is on that disk.

Don't have WSL? Use Rufus in DD mode (Windows tab). The result is identical — Rufus DD mode is a GUI wrapper around the same byte-for-byte copy that dd performs.

Windows dual-boot pre-flight
Skip this step if you're installing on a dedicated machine with no Windows. If you're keeping Windows and adding Debian alongside it, do all of this before you boot the installer. Doing it after creates problems that are annoying to fix.
1 — Back up first. Not optional.

Dual-boot setup involves resizing and creating partitions on a live disk. Partition operations fail cleanly the vast majority of the time — but the minority of the time that they don't, you lose everything on the disk. Back up anything on the Windows side you can't afford to lose before touching the partition table.

2 — Disable Fast Startup in Windows

Windows Fast Startup (also called Fast Boot) is a hybrid shutdown that hibernates the Windows session rather than fully shutting down. The NTFS partitions are left in a "dirty" suspended state. Linux cannot safely mount a hibernated NTFS partition — attempting to do so can corrupt it.

Control Panel → Power Options → Choose what the power buttons do → Turn on fast startup → uncheck it → Save changes.

After disabling, do a full Windows shutdown (not restart) before booting the Debian installer. A restart does not count — it bypasses the hibernation step, but the next shutdown will too.

3 — Check for BitLocker

If your Windows drive is BitLocker-encrypted, the Debian installer will see the partition but won't be able to resize it. BitLocker partitions appear as unallocated or unreadable to the Linux partition tools.

Check: open File Explorer, right-click the C: drive. If you see "Manage BitLocker," it may be active. The lock icon on the drive confirms it. To proceed with dual-boot, decrypt the drive first (BitLocker → Turn off BitLocker), shrink the partition, then re-encrypt after installing Debian if you want it back. Alternatively, shrink the Windows partition from within Windows before encrypting, which avoids this problem entirely.

4 — Shrink the Windows partition from inside Windows

The Debian installer can shrink Windows partitions, but doing it from within Windows first is safer — Windows knows about its own filesystem structures, shadow copies, and hibernation files and won't corrupt them during the resize. The Linux partition tools will resize what they see without those guarantees.

Right-click Start → Disk Management → right-click your C: drive → Shrink Volume → enter the amount to shrink in MB.

How much to free up: Debian with a desktop environment needs 20–25 GB minimum for a comfortable install with room to grow. 40–60 GB is a reasonable allocation if the disk has space. The freed space will appear as "Unallocated" in Disk Management — leave it that way. The Debian installer will claim it.

500 GB disk example:
Windows C: shrunk from 460 GB → 200 GB
Unallocated: 260 GB → Debian gets this
(Keep whatever Windows programs need; give Debian the rest)

5 — Secure Boot

Debian supports Secure Boot — the installer will install signed bootloader components that UEFI firmware accepts. You do not need to disable Secure Boot to install Debian on modern hardware. GRUB is signed; Debian's kernels are signed.

If the installer refuses to boot or you see a Secure Boot error, you can disable it temporarily in your UEFI firmware settings to complete the install. On most machines: hold Shift while clicking Restart in Windows → Troubleshoot → Advanced Options → UEFI Firmware Settings → Secure Boot. Re-enable after confirming the install works.

6 — After Debian installs: GRUB finds Windows automatically

GRUB — the Linux bootloader — scans all partitions on first boot and adds any Windows installation it finds to the boot menu. On first boot after installing Debian you should see a GRUB menu with both "Debian GNU/Linux" and "Windows Boot Manager" as options.

If Windows doesn't appear in the GRUB menu, run from Debian:

sudo apt install os-prober
sudo os-prober # should detect Windows
sudo update-grub # regenerates the menu

Note: os-prober is disabled by default in GRUB on some Debian versions for security reasons. If update-grub doesn't pick up Windows, add GRUB_DISABLE_OS_PROBER=false to /etc/default/grub and run sudo update-grub again.

3
Boot and start the installer
Boot from the USB (F12, F2, Esc, or Del at startup — check your machine's boot menu key, usually shown briefly on the POST screen). The Debian installer menu appears. You have two paths:
Graphical install
Recommended for most people
Click through a wizard. Mouse works. Partition wizard handles disk setup. Good for single-boot or dual-boot with guided partitioning.
Expert install
For precise control
Step-by-step prompts for every option. Lets you pick specific kernel versions, configure the mirror, and fine-tune the base system before software selection.
4
Work through the installer
The installer walks you through: language, location, keyboard layout, hostname, network setup, root password (or sudo-only setup), user account, disk partitioning, and base system install. A few things worth calling out:
Root password and sudo — read this carefully

The installer asks you to set a root password. What you choose here determines whether your user account can use sudo.

  • Leave the root password blank — the installer disables the root account and automatically adds your user to the sudo group. This is the simpler setup. You run privileged commands with sudo from day one.
  • Set a root password — the root account is enabled, but your user is not added to the sudo group. After first login, sudo commands will fail with "not in sudoers." You must add yourself manually — see below.

If you set a root password: add yourself to sudo after first login

# Switch to root (enter the root password you set during install)
su -

# Add your user to the sudo group (replace "yourusername" with your actual username)
usermod -aG sudo yourusername

# Exit the root shell
exit

# Log out and log back in — group membership only takes effect on a new login
# Then verify:
groups
# sudo should appear in the list

You must log out and back in after running usermod. Group membership changes do not apply to your current session — even though the command succeeds immediately, sudo will be denied until you start a fresh login.

Partitioning

"Guided — use entire disk" is fine for a dedicated Linux machine and will create a sensible layout automatically. For dual-boot with Windows, choose "manual" and leave your Windows partition alone. For a dedicated machine where you want to separate /home from / (recommended — lets you reinstall without losing your data), choose "Guided — use entire disk and set up LVM" or "manual."

Appendix C: Partitioning — full breakdown of schemes, swap, and size guidelines →

Software selection (tasksel)

The installer offers a software selection menu. You'll see checkboxes for "Debian desktop environment," "GNOME," "KDE," "XFCE," etc. Select the desktop you want here, or deselect everything and install manually after boot. Always keep "standard system utilities" checked.

GRUB bootloader

Install GRUB to the primary disk (the one you're installing Debian on). For UEFI systems this goes to the EFI partition. For dual-boot, GRUB will usually detect Windows automatically — confirm after first boot.

5
First boot — confirm you're on Testing
After the installer reboots into your new system, confirm what you have:
cat /etc/debian_version
# Testing (Forky): forky/sid # Stable (Trixie): 13.x # If you see 13.x — you installed Stable, not Testing

cat /etc/apt/sources.list
# Should reference "testing" or "forky", not "trixie" or "stable"
If you see "bookworm" or "stable" in your sources.list, you installed Stable. See the section below on switching.
6
Update and get your desktop
First update pulls the latest package index. If you didn't select a desktop in tasksel, now's the time:
sudo apt update && sudo apt upgrade

# Install XFCE (recommended minimal desktop):
sudo apt install xfce4 xfce4-goodies lightdm

# Or GNOME:
sudo apt install gnome gdm3

# Or Fluxbox (minimal WM, no DE):
sudo apt install fluxbox sddm xorg

# Then reboot into your desktop:
sudo reboot

If You're Already on Stable

Switching to Testing.

If you already installed Debian Stable and want Testing, you can migrate — but be aware this is the "step upgrade" that can cause friction, especially if you have a lot installed. A clean install of Testing is cleaner. That said, here's how to do it if you need to:

Recommendation: If you're early enough in your install that you haven't configured much yet — just reinstall with the Testing netinst. You'll save yourself potential dependency headaches. The step upgrade is worth doing only if you have significant customization you don't want to redo.

If you do want to proceed with the upgrade, the process is editing /etc/apt/sources.list to replace references to your Stable codename with testing:

# /etc/apt/sources.list — if you installed Stable (trixie), change this:
deb http://deb.debian.org/debian trixie main non-free-firmware
deb http://deb.debian.org/debian trixie-updates main non-free-firmware
deb http://security.debian.org/debian-security trixie-security main non-free-firmware

# to this (use "testing" rather than "forky" so it stays rolling after Forky releases):
deb http://deb.debian.org/debian testing main non-free-firmware
deb http://deb.debian.org/debian testing-updates main non-free-firmware
deb http://security.debian.org/debian-security testing-security main non-free-firmware
# After editing sources.list:
sudo apt update
sudo apt full-upgrade # full-upgrade handles dependency changes
sudo apt --purge autoremove # clean up orphaned packages
sudo reboot

# If packages are held back, you may need:
sudo apt install -f # fix broken dependencies
sudo dpkg --configure -a # configure any partially-installed packages

Why full-upgrade instead of upgrade? Regular apt upgrade won't install or remove packages to satisfy dependencies — it just skips them. full-upgrade (formerly dist-upgrade) is allowed to add and remove packages to complete the upgrade. You need this when moving between Debian releases.

After You're In

First things to know about Testing.

01 Testing is rolling — update regularly

Unlike Stable, Testing gets package updates continuously as they migrate from Unstable. Run apt update && apt upgrade at least weekly. Letting updates pile up for months is where problems accumulate — the more you skip, the more there is to reconcile at once.

Make it a habit

sudo apt update && sudo apt upgrade # run this at least once a week
02 Occasional breakage is part of the deal

Testing earns its name. Packages from Unstable migrate to Testing after 10 days without reported critical bugs — most of the time. You may occasionally update and find something behaves differently, a dependency fails, or a config changes. These are almost always easily resolved — the Debian bug tracker and forums will have your answer. This is part of what makes Testing a good learning environment: real problems with documented solutions.

When something breaks

apt list --upgradable # see what just updated sudo apt install -f # fix broken deps sudo dpkg --configure -a # configure half-installed pkgs
03 No security updates between freeze periods

Debian Testing doesn't get the same level of timely security patching as Stable — fixes come through as normal migration, not a dedicated security channel. For a desktop machine this is an acceptable trade-off; for anything internet-facing or production, use Stable. Your sources.list should include testing-security which helps, but be aware of this difference.

Check your sources include security

grep security /etc/apt/sources.list # should see: testing-security main
04 Installing your window manager

You can install multiple desktop environments and window managers simultaneously and choose at the login screen. This is one of the easiest experiments to run — it costs only disk space and a few minutes. The display manager (SDDM, LightDM, GDM) gives you a session menu at login where you pick which one to use.

Install and try multiple

sudo apt install fluxbox xfce4 i3 # log out → choose a session at login screen # your dotfiles and configs stay separate per WM

Debian Reference

Codenames, versions, and aliases.

Every Debian release has a version number, a codename, and several permanent aliases. Understanding the difference determines whether your system silently drifts when a new Stable ships — or stays exactly where you left it.

They're all Toy Story characters. The naming tradition was started by Bruce Perens during his time as Debian Project Leader. Buzz (Lightyear), Rex (the dinosaur), Bo (Peep), Hamm (the piggy bank), Slink (the Slinky dog), Potato (Mr. Potato Head), Woody, Sarge, Etch (Etch A Sketch), Lenny (the binoculars), Squeeze (the Little Green Men), Wheezy (the penguin squeeze toy), Jessie, Stretch (the octopus), Buster (Andy's dog), Bullseye (Woody's horse), Bookworm, Trixie (the triceratops), Forky (Toy Story 4). And Sid — the toy-destroying kid next door — is permanently Unstable. Intentionally.

Fixed aliases

These names always point to the same role regardless of which release currently holds it. Use them in /etc/apt/sources.list when you want that behavior — but know the trade-off.

Alias in sources.list Currently points to What happens when next Stable releases
stable Trixie (Debian 13)Current release Silently shifts to Forky. Your next apt upgrade becomes a full version jump. Surprising if unintentional.
oldstable Bookworm (Debian 12)Previous release Shifts to Trixie. Bookworm becomes oldoldstable.
oldoldstable Bullseye (Debian 11)Two releases back Shifts to Bookworm. Bullseye may stop receiving LTS updates.
testing Forky (Debian 14)Current Testing — recommended for sources.list When Forky becomes Stable, testing shifts to the next codename (Debian 15). You stay rolling automatically — this is the right alias for a Testing system.
unstable
also: sid
Sid (never released)Direct developer uploads Sid never becomes Stable. Packages migrate from here into Testing. Always at the bleeding edge; no gate-keeping.
experimental Pre-Unstable stagingNot a real suite Packages too risky for Unstable. Developers use it to solicit early testing. Never use as a full source — add specific packages only.

The recommendation: in your /etc/apt/sources.list, use testing — not forky. If you pin the codename, your system will freeze on Forky when it eventually releases as Stable and stop receiving new packages. Using testing keeps you rolling through every future release automatically.

Release history

Every version, every name, back to the beginning. The connection to Toy Story has held for 30 years of releases.

Version Codename Released Status Toy Story character
Sid Never Always Unstable The kid next door who destroys toys.
14 Forky In development Current Testing The spork from Toy Story 4.
13 Trixie 2025 Current Stable The triceratops who loves computers.
12 Bookworm June 2023 Old Stable The bookworm from Andy's room.
11 Bullseye August 2021 Old Old Stable Woody's horse.
10 Buster July 2019 Archived Andy's dog.
9 Stretch June 2017 Archived The purple octopus from Toy Story 3.
8 Jessie April 2015 Archived The cowgirl.
7 Wheezy May 2013 Archived The rubber penguin squeeze toy.
6.0 Squeeze February 2011 Archived The Little Green Men (aliens).
5.0 Lenny February 2009 Archived The binoculars.
4.0 Etch April 2007 Archived The Etch A Sketch.
3.1 Sarge June 2005 Archived The sergeant of the green army men.
3.0 Woody July 2002 Archived The cowboy. The protagonist.
2.2 Potato August 2000 Archived Mr. Potato Head.
2.1 Slink March 1999 Archived Slinky Dog.
2.0 Hamm July 1998 Archived The piggy bank.
1.3 Bo June 1997 Archived Bo Peep.
1.2 Rex December 1996 Archived The anxious T-Rex.
1.1 Buzz June 1996 First release Buzz Lightyear. The beginning of the tradition.

Releases prior to 1.1 (0.93, 0.91, etc.) predate the Toy Story naming convention and used internal version numbers only. The first official release with a codename was 1.1 Buzz in June 1996 — the same year the first Toy Story film released.