diff --git a/PIP_COMPATIBILITY.md b/PIP_COMPATIBILITY.md index 33f204583..7a52f51f3 100644 --- a/PIP_COMPATIBILITY.md +++ b/PIP_COMPATIBILITY.md @@ -368,16 +368,20 @@ Specifically, uv does not support installing new `.egg-info`- or `.egg-link`-sty but will respect any such existing distributions during resolution, list them with `uv pip list` and `uv pip freeze`, and uninstall them with `uv pip uninstall`. -## `pip compile` +## `pip compile` defaults There are a few small but notable differences in the default behaviors of `pip compile` and `pip-tools`. -uv does not write the compiled requirements to file by default. Use the `-o` or `--output-file` -option. +By default, uv does not write the compiled requirements to an output file. Instead, uv requires +that the user specify an output file explicitly with the `-o` or `--output-file` option. -Currently, `pip-compile` defaults to `--no-strip-extras`, though this is scheduled to change in the -next major release. +By default, uv strips extras when outputting the compiled requirements. In other words, uv defaults to +`--strip-extras`, while `pip-compile` defaults to `--no-strip-extras`. `pip-compile` is scheduled to +change this default in the next major release (v8.0.0), at which point both tools will default to +`--strip-extras`. To retain extras with uv, pass the `--no-strip-extras` flag to `uv pip compile`. -If your requirements file includes an `--extra-index-url` directive, uv will not emit it by -default. Use the `--emit-index-url` option. uv will also include its default `--index-url`. +By default, uv does not write any index URLs to the output file, while `pip-compile` outputs any +`--index-url` or `--extra-index-url` that does not match the default (PyPI). To include index URLs +in the output file, pass the `--emit-index-url` flag to `uv pip compile`. Unlike `pip-compile`, +uv will include all index URLs when `--emit-index-url` is passed, including the default index URL.