# Scoop Version Management Rules
## Rule
Version-sensitive tools MUST be held to prevent automatic upgrades. Use the versions bucket for specific version requirements. Always check status before updating.
## Version Pinning
```powershell
# Hold critical tools
scoop hold nodejs
scoop hold python
# Check held packages
scoop list | Select-String "Held"
# Release when ready to update
scoop unhold nodejs
scoop update nodejs
scoop hold nodejs
```
## Versions Bucket
```powershell
# Install specific versions
scoop bucket add versions
scoop install versions/python310 # Python 3.10
scoop install versions/nodejs-lts # Node.js LTS
# Switch between versions
scoop reset python310 # Use Python 3.10
scoop reset python # Use latest Python
```
## Safe Update Procedure
```powershell
# 1. Check what's outdated
scoop status
# 2. Update by category
scoop update git gh ripgrep # CLI tools (safe)
# scoop update nodejs # Runtime (test after)
# scoop update python # Runtime (test after)
# 3. Verify
scoop status
scoop checkup
```
## Good
```powershell
scoop status # Review first
scoop hold nodejs # Pin version
scoop update git gh ripgrep # Selective update
```
## Bad
```powershell
scoop update * # Updates everything blindly
# Node.js major version bumps, Python breaks, chaos
```