Function dirty_files_outside_pkg_root

Source
fn dirty_files_outside_pkg_root(
    ws: &Workspace<'_>,
    pkg: &Package,
    repo: &Repository,
    src_files: &[PathEntry],
) -> CargoResult<HashSet<PathBuf>>
Expand description

Checks whether “included” source files outside package root have been modified.

This currently looks at

  • package.readme and package.license-file pointing to paths outside package root
  • symlinks targets reside outside package root
  • Any change in the root workspace manifest, regardless of what has changed.
  • Changes in the lockfile 1.

This is required because those paths may link to a file outside the current package root, but still under the git workdir, affecting the final packaged .crate file.


  1. Lockfile might be re-generated if it is too out of sync with the manifest. Therefore, even you have a modified lockfile, you might still get a new fresh one that matches what is in git index.