All notable changes to self-replace
are documented here.
- Raised MSRV to 1.63 and upgraded windows-sys to 0.52. #26
- Added
self_delete_at
. #22
- Fix windows dependency. #16
- Fix examples failing to run on non unix platforms.
- Symlinks are now properly resolved. This allows replacing the executable when it's invoked via a symlink. #18
- Explicitly pass the process handle on Windows simplifying the implementation.
- Change the dummy command to use on windows away from
ping.exe
tocmd.exe
. - More correctly invoke
CreateProcessA
on Windows.
yanked invalid release
- Avoid the use of
atexit
and spawn immediately. This has the advantage that even if the process crashes hard, we already have started the cleanup handler. - Improve safety of the crate for Windows by avoiding unsupported life before main.
- Use an atomic rename on Windows in the self replacement case for the final step to avoid accidentally leaving partial executables behind.
- Resolved an issue where a potentially incorrect filename was computed on Windows in some cases.
- A temporary folder is now always preferred on windows for the temporary operations if possible. This code path now also works correctly.
- Fixes a bug that caused the wrong path to be calculated internally creating an access error in some cases.
- Added support for
self_delete_outside_path
to support more complex uninstallation scenarios on Windows.
- Improve a race condition on Windows.
- Support older rustc releases.
- Initial release.