---
title: Changelog
description: Release history for pydoctor-cli.
url: https://pydoctor-docs.thally.app/changelog
---

# Changelog

Release history for pydoctor-cli.

## 2.1.0

- **`fix` reports what really happened.** Upgrades are verified against the installed version. When a pin in `pyproject.toml` blocks an upgrade, `fix` shows a warning and the blocking constraint instead of reporting success. Previously, `uv add --upgrade pkg` could exit successfully without changing anything while `fix` printed "fixed".
- **One prompt per package.** Vulnerable packages are offered once, with the number of advisories, and upgraded to the lowest version that fixes all of them. Uses `pkg>=X` so uv, Poetry, and PDM rewrite blocking pins.
- **No accidental removals.** `pydoctor fix <package>` no longer enables unused-package removal. Removal requires `--remove`.
- **Fewer false "unused" reports.** Packages imported under a different name, loaded from strings such as Django settings, or started from a Procfile, Dockerfile, or similar file are now recognised. Findings are labelled "Possibly unused dependency".

## 2.0.1

- **Security scans fail closed.** When the OSV database cannot be reached, `scan-security`, `diagnose`, and `check` now report `SEC_SCAN_INCOMPLETE` (error, exit code 1) and name the unchecked packages. Previously a network failure produced "No known vulnerabilities" and a perfect score.
- **Aliased advisories are counted once.** An advisory published under several IDs (for example GHSA and PYSEC) is now reported and scored once. Previously each copy deducted points separately, so one critical vulnerability could cost 50 points instead of 25.

Upgrade with `pip install --upgrade pydoctor-cli`.

## 2.0.0

Initial documented release of pydoctor-cli. This entry records the baseline feature set; no prior version source is available for comparison.

- CLI built on Typer with commands `diagnose`, `check`, `fix`, `scan-security`, `scan-unused`, `scan-deps`, `check-env`, `docker`, `github`, and `version`
- Six concurrent scanners: environment, dependencies, outdated packages, security (OSV), unused packages, and CI/CD
- Automated fix workflow with support for pip, Poetry, uv, and pdm
- Rich terminal output and JSON output (`--json`)
- File-backed response cache at `~/.pydoctor/cache.json` with configurable TTL
- Project configuration via `[tool.pydoctor]` in `pyproject.toml`
- Requires Python 3.10 or later