Update Rust crate tempfile to v3.20.0 #4

Merged
ward merged 2 commits from renovate/tempfile-3.x-lockfile into main 2025-05-20 18:01:34 +00:00
Collaborator

This PR contains the following updates:

Package Type Update Change
tempfile (source) dependencies minor 3.14.0 -> 3.20.0

Release Notes

Stebalien/tempfile (tempfile)

v3.20.0

Compare Source

This release mostly unifies the behavior/capabilities around "keeping" temporary files:

  • Rename Builder::keep(bool) (via deprecation) to Builder::disable_cleanup(bool) to make it clear that behaves differently from NamedTempFile::keep(). The former disables automatic cleanup while the latter consumes the NamedTempFile object entirely and unsets the "temporary file" attribute (on Windows).
  • Rename TempDir::into_path (via deprecation) to TempDir::keep to mirror NamedTempFile::keep.
  • Add TempDir::disable_cleanup, NamedTempFile::disable_cleanup, and TempPath::disable_cleanup making it possible to disable automatic cleanup in-place after creating a temporary file/directory (equivalent to calling Builder::disable_cleanup before creating the file/directory).

Additionally, it adds a few spooled temporary file features:

  • Add SpooledTempFile::into_file for turning a SpooledTempFile into a regular unnamed temporary file, writing it to the backing storage ("rolling" it) if it was still stored in-memory.
  • Add spooled_tempfile_in and SpooledTempFile::new_in methods for creating spooled temporary files in a specific directory. This makes it possible to choose the backing device for your spooled temporary file which is rather important on Linux where the default temporary directory is likely backed by memory (defeating the entire point of having a spooled temporary file).

Finally, this release improves documentation, especially the top-level documentation explaining which temporary file type to use.

BREAKING for those with deny(warnings):

  • Builder::keep deprecated in favor of Builder::disable_cleanup.
  • TempDir::into_path is deprecated in favor of TempDir::keep.

BREAKING:

v3.19.1

Compare Source

  • Don't unlink temporary files immediately on Windows (fixes #​339). Unfortunately, this seemed to corrupt the file object (possibly a Windows kernel bug) in rare cases and isn't strictly speaking necessary.

v3.19.0

Compare Source

  • Remove direct dependency on cfg-if. It's still in the tree, but we didn't really need to use it in this crate.
  • Add an unstable feature (unstable-windows-keep-open-tempfile) to test a potential fix to #​339.

v3.18.0

Compare Source

  • Update rustix to 1.0.0.
  • Make NamedTempFile::persist_noclobber atomic on Apple operating systems. It's now atomic on MacOS, Windows, and Linux (depending on the OS version and filesystem used).

v3.17.1

Compare Source

  • Fix build with windows-sys 0.52. Unfortunately, we have no CI for older windows-sys versions at the moment...

v3.17.0

Compare Source

  • Make sure to use absolute paths in when creating unnamed temporary files (avoids a small race in the "immediate unlink" logic) and in Builder::make_in (when creating temporary files of arbitrary types).
  • Prevent a theoretical crash that could (maybe) happen when a temporary file is created from a drop function run in a TLS destructor. Nobody has actually reported a case of this happening in practice and I have been unable to create this scenario in a test.
  • When reseeding with getrandom, use platform (e.g., CPU) specific randomness sources where possible.
  • Clarify some documentation.
  • Unlink unnamed temporary files on windows immediately when possible instead of waiting for the handle to be closed. We open files with "Unix" semantics, so this is generally possible.

v3.16.0

Compare Source

  • Update getrandom to 0.3.0 (thanks to @​paolobarbolini).
  • Allow windows-sys versions 0.59.x in addition to 0.59.0 (thanks @​ErichDonGubler).
  • Improved security documentation (thanks to @​n0toose for collaborating with me on this).

v3.15.0

Compare Source

Re-seed the per-thread RNG from system randomness when we repeatedly fail to create temporary files (#​314). This resolves a potential DoS vector (#​178) while avoiding getrandom in the common case where it's necessary. The feature is optional but enabled by default via the getrandom feature.

For libc-free builds, you'll either need to disable this feature or opt-in to a different getrandom backend.


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [tempfile](https://stebalien.com/projects/tempfile-rs/) ([source](https://github.com/Stebalien/tempfile)) | dependencies | minor | `3.14.0` -> `3.20.0` | --- ### Release Notes <details> <summary>Stebalien/tempfile (tempfile)</summary> ### [`v3.20.0`](https://github.com/Stebalien/tempfile/blob/HEAD/CHANGELOG.md#3200) [Compare Source](https://github.com/Stebalien/tempfile/compare/v3.19.1...v3.20.0) This release mostly unifies the behavior/capabilities around "keeping" temporary files: - Rename `Builder::keep(bool)` (via deprecation) to `Builder::disable_cleanup(bool)` to make it clear that behaves differently from `NamedTempFile::keep()`. The former disables automatic cleanup while the latter *consumes* the `NamedTempFile` object entirely and unsets the "temporary file" attribute (on Windows). - Rename `TempDir::into_path` (via deprecation) to `TempDir::keep` to mirror `NamedTempFile::keep`. - Add `TempDir::disable_cleanup`, `NamedTempFile::disable_cleanup`, and `TempPath::disable_cleanup` making it possible to disable automatic cleanup in-place *after* creating a temporary file/directory (equivalent to calling `Builder::disable_cleanup` before creating the file/directory). Additionally, it adds a few spooled temporary file features: - Add `SpooledTempFile::into_file` for turning a `SpooledTempFile` into a regular unnamed temporary file, writing it to the backing storage ("rolling" it) if it was still stored in-memory. - Add `spooled_tempfile_in` and `SpooledTempFile::new_in` methods for creating spooled temporary files in a specific directory. This makes it possible to choose the backing device for your spooled temporary file which is rather important on Linux where the default temporary directory is likely backed by memory (defeating the entire point of having a spooled temporary file). Finally, this release improves documentation, especially the top-level documentation explaining which temporary file type to use. **BREAKING** for those with `deny(warnings)`: - `Builder::keep` deprecated in favor of `Builder::disable_cleanup`. - `TempDir::into_path` is deprecated in favor of `TempDir::keep`. **BREAKING**: ### [`v3.19.1`](https://github.com/Stebalien/tempfile/blob/HEAD/CHANGELOG.md#3191) [Compare Source](https://github.com/Stebalien/tempfile/compare/v3.19.0...v3.19.1) - Don't unlink temporary files immediately on Windows (fixes [#&#8203;339](https://github.com/Stebalien/tempfile/issues/339)). Unfortunately, this seemed to corrupt the file object (possibly a Windows kernel bug) in rare cases and isn't strictly speaking necessary. ### [`v3.19.0`](https://github.com/Stebalien/tempfile/blob/HEAD/CHANGELOG.md#3190) [Compare Source](https://github.com/Stebalien/tempfile/compare/v3.18.0...v3.19.0) - Remove direct dependency on `cfg-if`. It's still in the tree, but we didn't really need to use it in this crate. - Add an unstable feature (`unstable-windows-keep-open-tempfile`) to test a potential fix to [#&#8203;339](https://github.com/Stebalien/tempfile/issues/339). ### [`v3.18.0`](https://github.com/Stebalien/tempfile/blob/HEAD/CHANGELOG.md#3180) [Compare Source](https://github.com/Stebalien/tempfile/compare/v3.17.1...v3.18.0) - Update `rustix` to 1.0.0. - Make `NamedTempFile::persist_noclobber` atomic on Apple operating systems. It's now atomic on MacOS, Windows, and Linux (depending on the OS version and filesystem used). ### [`v3.17.1`](https://github.com/Stebalien/tempfile/blob/HEAD/CHANGELOG.md#3171) [Compare Source](https://github.com/Stebalien/tempfile/compare/v3.17.0...v3.17.1) - Fix build with `windows-sys` 0.52. Unfortunately, we have no CI for older `windows-sys` versions at the moment... ### [`v3.17.0`](https://github.com/Stebalien/tempfile/blob/HEAD/CHANGELOG.md#3170) [Compare Source](https://github.com/Stebalien/tempfile/compare/v3.16.0...v3.17.0) - Make sure to use absolute paths in when creating unnamed temporary files (avoids a small race in the "immediate unlink" logic) and in `Builder::make_in` (when creating temporary files of arbitrary types). - Prevent a theoretical crash that could (maybe) happen when a temporary file is created from a drop function run in a TLS destructor. Nobody has actually reported a case of this happening in practice and I have been unable to create this scenario in a test. - When reseeding with `getrandom`, use platform (e.g., CPU) specific randomness sources where possible. - Clarify some documentation. - Unlink unnamed temporary files on windows *immediately* when possible instead of waiting for the handle to be closed. We open files with "Unix" semantics, so this is generally possible. ### [`v3.16.0`](https://github.com/Stebalien/tempfile/blob/HEAD/CHANGELOG.md#3160) [Compare Source](https://github.com/Stebalien/tempfile/compare/v3.15.0...v3.16.0) - Update `getrandom` to `0.3.0` (thanks to [@&#8203;paolobarbolini](https://github.com/paolobarbolini)). - Allow `windows-sys` versions `0.59.x` in addition to `0.59.0` (thanks [@&#8203;ErichDonGubler](https://github.com/ErichDonGubler)). - Improved security documentation (thanks to [@&#8203;n0toose](https://github.com/n0toose) for collaborating with me on this). ### [`v3.15.0`](https://github.com/Stebalien/tempfile/blob/HEAD/CHANGELOG.md#3150) [Compare Source](https://github.com/Stebalien/tempfile/compare/v3.14.0...v3.15.0) Re-seed the per-thread RNG from system randomness when we repeatedly fail to create temporary files ([#&#8203;314](https://github.com/Stebalien/tempfile/issues/314)). This resolves a potential DoS vector ([#&#8203;178](https://github.com/Stebalien/tempfile/issues/178)) while avoiding `getrandom` in the common case where it's necessary. The feature is optional but enabled by default via the `getrandom` feature. For libc-free builds, you'll either need to disable this feature or opt-in to a different [`getrandom` backend](https://github.com/rust-random/getrandom?tab=readme-ov-file#opt-in-backends). </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMTYuMCIsInVwZGF0ZWRJblZlciI6IjM4LjExNi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
renovatebot added 1 commit 2025-05-20 17:59:08 +00:00
ward added 1 commit 2025-05-20 18:01:03 +00:00
ward merged commit 32ba373ffd into main 2025-05-20 18:01:34 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: ward/mvw#4
No description provided.