When a requirements.txt file already exists, write-manifest removes every line that contains "rsconnect" before it calculates the checksum, but it does not rewrite the file. The manifest then has the checksum of the filtered text, and the file on disk still has the rsconnect lines. deploy manifest bundles the file from disk, so the checksum does not match. Found while working on #855.
rsconnect deploy is not affected, because it bundles the filtered text. But in that path we silently change a file that the user wrote.
We may want to stop filtering requirements files that the user provides, and keep the filter only for the output of pip freeze and uv export.
When a requirements.txt file already exists,
write-manifestremoves every line that contains "rsconnect" before it calculates the checksum, but it does not rewrite the file. The manifest then has the checksum of the filtered text, and the file on disk still has the rsconnect lines.deploy manifestbundles the file from disk, so the checksum does not match. Found while working on #855.rsconnect deployis not affected, because it bundles the filtered text. But in that path we silently change a file that the user wrote.We may want to stop filtering requirements files that the user provides, and keep the filter only for the output of
pip freezeanduv export.