Skip to main content
Version: 4.0 (next)

Plan an upgrade

Orientation

Choose the package version in your project or lock file as the source and the version you intend to install as the target. Follow every boundary shown, in order. This is a compatibility path, not a list of every feature or fix.

  1. 2.14.1 to 3.0.1: Apply the Humanizer 3 source and package migration
    Consolidate namespaces, replace removed APIs, update framework/tooling expectations, and rebuild all consumers.
  2. 3.0.1 to 3.0.8: Take the 3.0 patch-line compatibility restorations
    Remove workarounds for restored quantity overloads and move to the Roslyn-versioned analyzer assets.
  3. 3.0.8 to 3.0.10: Take the analyzer fallback packaging fix
    Upgrade when older or non-version-aware build hosts load duplicate analyzer variants.

3.0.8 is intentionally a boundary. It restored source compatibility and introduced Roslyn-versioned analyzer assets that are absent from 3.0.1; 3.0.10 then corrected fallback selection for older build hosts.

For Humanizer 4, continue with the 3.0.10 to Humanizer 4 migration guide.

Example

For an upgrade from 2.13.14 to 3.0.10, the chooser produces this illustrative ordered chain:

2.13.14 -> 2.14.1 -> 3.0.1 -> 3.0.8 -> 3.0.10

Complete one guide and commit its mechanical changes before starting the next. That keeps package, compiler, and behavioral failures attributable to one boundary.

Pitfall

Do not jump straight from a 2.x package to the latest package and then treat every compiler error as a namespace error. Humanizer 3 also removes APIs, changes generic enum signatures and formatter extensibility, changes package assets, and includes patch-line compatibility restorations.

Version notes

The supported source and target list follows the documentation manifest. 3.0.8 is selectable here because published package contents and tagged source show remediation distinct from both 3.0.1 and 3.0.10. It remains a separate compatibility boundary even though the releases share one major/minor line.