# What changed in mike

> 40 changes in mike 1 to 2 from its official release notes, upgrade guides and advisories: 13 breaking, 15 new APIs and options. Each one cited. Sources checked 2026-10-30. HTML: https://unstale.sh/pypi/mike/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## mike 2

### Breaking changes

- Empty commits are avoided by default; pass this option if you want empty commits. (2.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v2.0.0)
- Aliases can no longer be defined circularly. (2.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v2.0.0)
- Versions not starting with a digit, or with v followed by a digit, are treated as development versions and newer than ordinary versions. (2.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v2.0.0)
- The force option is no longer supported on subcommands that can push; users who need to force-push can use Git directly. (2.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v2.0.0)
- This option is no longer supported; use `--ignore-remote-status` instead. (2.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v2.0.0)
- This option is no longer supported; use `--alias-type=copy` instead. (2.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v2.0.0)
- This option is no longer supported; use `--deploy-prefix` instead. (2.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v2.0.0)
- This option is no longer supported; use Git to resolve conflicts instead. (2.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v2.0.0)
- Redirects to another page now include the query string. (2.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v2.0.0)

### New APIs and options

- Adds support for ProperDocs. (2.2.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v2.2.0)
- Aliases are deployed using symbolic links by default; this can be configured with this command-line option. (2.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v2.0.0)
- The MkDocs plugin can configure alias deployment type. (2.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v2.0.0)
- A debug flag is available to help diagnose bugs with mike. (2.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v2.0.0)
- The MkDocs plugin can now specify a deployment prefix. (2.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v2.0.0)
- Arbitrary properties can now be applied to documentation versions. (2.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v2.0.0)
- Commit generation now supports Git committer name, email, and date environment variables. (2.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v2.0.0)
- The MkDocs plugin can now specify a redirect template. (2.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v2.0.0)
- Specific versions can now be hidden from the selector when using the default themes. (2.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v2.0.0)

### Behavior and default changes

- New commits use DST timestamps when DST is in effect. (2.2.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v2.2.0)
- Supports ISO8601 and RFC 2822 values for GIT_COMMITTER_DATE. (2.2.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v2.2.0)
- Uses the built-in importlib in Python 3.10 and greater. (2.1.4) — [release notes](https://github.com/jimporter/mike/releases/tag/v2.1.4)
- The port for `--dev-addr` is now optional and defaults to 8000. (2.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v2.0.0)
- Configuration file discovery now looks for both mkdocs.yml and mkdocs.yaml. (2.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v2.0.0)

### Fixes and other changes

- File names containing double-quotes or newlines are now supported. (2.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v2.0.0)
- Retrieval of Git user name and email now works with non-UTF8 encodings. (2.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v2.0.0)
- Aliases similar to preexisting versions, such as 1.0 and 1.0.0, can now be set properly. (2.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v2.0.0)
- The selector is fixed for the mkdocs and readthedocs themes when use_directory_urls is false. (2.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v2.0.0)

## mike 1

### Breaking changes

- Deploying aliases now deploys redirect pages to the real version by default instead of copies. (1.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v1.0.0)
- The command is removed and replaced with an MkDocs plugin; remove any JS/CSS it added to your docs directory. (1.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v1.0.0)
- Python 3.6 or later is now required. (1.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v1.0.0)
- Names are now validated to ensure they are non-empty and contain no directory separator. (1.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v1.0.0)

### New APIs and options

- This option allows updating an existing alias. (1.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v1.0.0)
- Pass this flag when deploying aliases to deploy copies instead of redirect pages. (1.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v1.0.0)
- Deploy docs to a subdirectory within the target branch using this option. (1.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v1.0.0)
- The command now supports custom templates. (1.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v1.0.0)
- mike now reads this setting from mkdocs.yml when it is set. (1.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v1.0.0)
- mike now reads this setting from mkdocs.yml when it is set. (1.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v1.0.0)

### Behavior and default changes

- The default redirect template now supports redirection when JavaScript is disabled. (1.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v1.0.0)

### Fixes and other changes

- Canonical URLs in generated documentation now point to the correct location. (1.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v1.0.0)
- The command now checks for existing aliases to prevent setting an alias for two different versions. (1.0.0) — [release notes](https://github.com/jimporter/mike/releases/tag/v1.0.0)
