# Changelog
All notable changes to this project are documented here.
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
Since the crate is pre-1.0, minor-version bumps (`0.x.0`) may contain
breaking changes; patch bumps (`0.x.y`) will not.
## [Unreleased]
## [0.1.0-rc9] — 2026-04-23
### Changed
- **Breaking:** `InstallerGui` builder methods now take `&mut self`
instead of consuming by value. Bind the wizard with `let mut w =
InstallerGui::wizard();`, configure it, then call `w.run(i)`.
- **Breaking:** `on_enter`, `on_before_leave`, and `skip_if` are no
longer methods on `InstallerGui`. They live on the `PageHandle`
returned by each page-adding method (`welcome`, `license`,
`custom_page`, etc.) — so they always attach to the page you just
added, with no silent drop when you forget to add a page first.
## [0.1.0-rc8] — 2026-04-23
### Added
- Cargo-feature gating for embedded sources via
`source!(path, features = [...])` and `installrs --feature <name>`.
## [0.1.0-rc7] — 2026-04-22
### Added
- `Installer::registry()` for Windows registry operations.
## [0.1.0-rc6] — 2026-04-22
### Added
- `Installer::shortcut(dst, target)` for creating Windows `.lnk` files.
### Removed
- `Installer::exec_shell()`. Use `std::process::Command` directly;
call `i.step("label", weight)` beforehand if you want a labeled
progress step.
## [0.1.0-rc5] — 2026-04-22
### Fixed
- Subsystem `"auto"` resolution now runs before the uninstaller sources
are generated, so both installer and uninstaller get `"windows"` as
intended in GUI builds.
- `process_commandline()` silently accepts `--self-delete` on Windows
when it's the first arg (used by `enable_self_delete` relaunch).
## [0.1.0-rc4] — 2026-04-22
### Added
- `.skip_if(|ctx| bool)` on any wizard page to hide it dynamically.
### Fixed
- Generated `Cargo.toml` now uses the user crate's real `[package].name`
instead of mangling underscores to hyphens.
- Generated `build.rs` no longer warns `unused_mut` on `res` when no
resource keys are set.
[Unreleased]: https://github.com/merlinz01/InstallRS/compare/v0.1.0-rc9...HEAD
[0.1.0-rc9]: https://github.com/merlinz01/InstallRS/compare/v0.1.0-rc8...v0.1.0-rc9
[0.1.0-rc8]: https://github.com/merlinz01/InstallRS/compare/v0.1.0-rc7...v0.1.0-rc8
[0.1.0-rc7]: https://github.com/merlinz01/InstallRS/compare/v0.1.0-rc6...v0.1.0-rc7
[0.1.0-rc6]: https://github.com/merlinz01/InstallRS/compare/v0.1.0-rc5...v0.1.0-rc6
[0.1.0-rc5]: https://github.com/merlinz01/InstallRS/compare/v0.1.0-rc4...v0.1.0-rc5
[0.1.0-rc4]: https://github.com/merlinz01/InstallRS/compare/v0.1.0-rc3...v0.1.0-rc4