Skip to content

rubrapack 0.33.0

Choose a tag to compare

@rubidus-api rubidus-api released this 03 Oct 00:58

Smoother installs, upgrades and removals while programs hold the package's files - input methods, shell extensions.

Added

  • The cleanup task. A removal, an upgrade or a repair that has to leave a file for the next restart (because a running program holds it) registers a scheduled task, rubrapack cleanup {ProductCode}. It deletes those files - and the installer's backup copies of them in Config.Msi - as soon as nothing holds them, then the folders that stayed only because of them, and then itself. Without anything to do it goes at its first run; after 30 days it leaves the rest to the restart. It runs as SYSTEM for per-machine packages and as the user for per-user ones, and deletes only what its own installation left. [package] cleanup = false leaves it out.
  • Rescue. When a product is removed while a program holds one of its files, Windows queues the file's deletion for the next restart. If another package then installs an identical file at that path, Windows Installer keeps the file already there and the queued deletion too - the restart deletes the new owner's file. Per-machine packages now take such deletions back as they install, and the cleanup task never deletes a file an installed product has at that path.
  • [remove.ID] upgrade = false: the removal does not run when an upgrade removes this version, only when the product is really removed - for files the new version still wants, or that programs still running the old version may read again.

Changed

  • The files-in-use dialog now says what really happens and defaults to going on: Continue (the engine's Ignore) is the default button, and the text says the files are replaced now, programs already open keep the old ones until they are reopened, and no restart is needed. The old text told the user to have the files replaced at the next restart, which rubrapack packages never needed.

Checked on Windows 11 with a held DLL and held data files, per machine and per user: upgrades and removals with no restart prompt; the cleanup task deleting what was left once the holders exit; a package that installs into another product's folder touching only its own files; an identical file reinstalled by another product surviving.

Manual

  • Web: https://rubidus-api.github.io/rubrapack/ - Reference, "Cleaning up later" and "Removing and copying"; tutorial chapters 4 and 12; formats, "Files in use".
  • PDF: rubrapack-manual-0.33.0-en.pdf, rubrapack-manual-0.33.0-ko.pdf (attached)

Downloads

File For
rubrapack-0.33.0-windows-x64.exe Windows x64, tested on Windows 11 (single file, cross-built with MinGW-w64)
rubrapack-0.33.0-linux-x86_64 Linux x86-64, glibc 2.38 or later (Debian 13, Ubuntu 24.04 and later)
SHA256SUMS checksums of the files above