Skip to content

fix(deps): update rust crate service-manager to 0.11 - #23

Open
MFSGA wants to merge 1 commit into
mainfrom
renovate/service-manager-0.x
Open

MFSGA wants to merge 1 commit into
mainfrom
renovate/service-manager-0.x

Conversation

@MFSGA

@MFSGA MFSGA commented Jul 10, 2026 •

Copy link
Copy Markdown
Owner

This PR contains the following updates:

Package Type Update Change
service-manager dependencies minor 0.8 → 0.11

Release Notes

chipsenkbeil/service-manager-rs (service-manager)

v0.11.0

Compare Source

Changed
  • BREAKING CHANGE: Extended RestartPolicy::OnFailure with two new fields to
    prevent infinite restart loops:
    • max_retries: Option<u32> — Maximum number of restart attempts before the
      service stops. When None, the service restarts indefinitely (previous
      behavior).
    • reset_after_secs: Option<u32> — Duration in seconds after which the failure
      counter resets. If the service runs successfully for this long, previous
      failures are forgotten and the retry counter starts fresh. When None, the
      platform default is used.
    • Migration: Add max_retries: None, reset_after_secs: None to existing
      RestartPolicy::OnFailure { delay_secs } constructions to preserve current
      behavior.
Added
  • WinSW: When max_retries is set, the WinSW backend generates multiple
    <onfailure action="restart"/> elements (one per retry) followed by
    <onfailure action="none"/> to stop the service after exhausting retries. When
    reset_after_secs is set, a <resetfailure> element is generated (unless a
    WinSW-specific reset_failure_time is already configured).
  • Other service managers (systemd, launchd, sc, OpenRC, rc.d) do not yet
    implement max_retries or reset_after_secs, but there is potential to extend
    them in the future (e.g., systemd's StartLimitBurst /
    StartLimitIntervalSec).
  • Added a fail subcommand to the system test binary for simulating crashing
    services.
  • Added a Windows system test (should_stop_winsw_service_after_max_retries)
    that verifies a failing WinSW service stops after exhausting its retry limit.

v0.10.0

Compare Source

Changed
  • BREAKING CHANGE: Launchd services with restart policies (RestartPolicy::Always, OnFailure, or OnSuccess) no longer auto-start when install() is called. Services must now be explicitly started using start(). This provides cross-platform consistency where install() registers the service definition without starting it, matching the behavior of systemd and other service managers.
    • Services with KeepAlive configured are now installed with Disabled=true in the plist
    • The start() function removes the Disabled key and reloads the service
    • The autostart parameter continues to control only RunAtLoad (whether service starts on OS boot), not initial install behavior
    • Migration: Add explicit manager.start(ctx)? call after manager.install(ctx)? if you need the service to start immediately
Fixed
  • Fixed incorrect Launchd restart policy implementation for RestartPolicy::OnFailure and RestartPolicy::OnSuccess:
    • OnFailure now correctly uses KeepAlive dictionary with SuccessfulExit=false (restart on non-zero exit) instead of KeepAlive=true (always restart)
    • OnSuccess now correctly uses SuccessfulExit=true (restart on zero exit) instead of SuccessfulExit=false

v0.9.0

Compare Source

Changed
  • BREAKING CHANGE: Replaced disable_restart_on_failure: bool field with restart_policy: RestartPolicy in ServiceInstallCtx.

    • The new RestartPolicy enum provides a cross-platform abstraction for service-restart behavior with four variants:
      • RestartPolicy::Never - Service never restarts
      • RestartPolicy::Always { delay_secs: Option<u32> } - Service always restarts regardless of exit status
      • RestartPolicy::OnFailure { delay_secs: Option<u32> } - Service restarts only on non-zero exit (default)
      • RestartPolicy::OnSuccess { delay_secs: Option<u32> } - Service restarts only on successful exit (exit code 0)
    • Different platforms support different levels of granularity:
      • systemd (Linux): Supports all restart policies natively (including OnSuccess via Restart=on-success)
      • launchd (macOS): Supports Never, Always, and OnSuccess; OnFailure is approximated using KeepAlive=true; OnSuccess uses KeepAlive dictionary with SuccessfulExit=false
      • WinSW (Windows): Supports Never, Always, and OnFailure with optional delays; OnSuccess falls back to Always with a warning
      • OpenRC/rc.d/sc.exe: Limited or no restart support; logs warnings for unsupported policies
    • Migration guide for ServiceInstallCtx:
      • disable_restart_on_failure: false → restart_policy: RestartPolicy::OnFailure { delay_secs: None }
      • disable_restart_on_failure: true → restart_policy: RestartPolicy::Never
  • BREAKING CHANGE: Platform-specific restart configuration fields are now Option types,
    allowing the generic RestartPolicy to be used by default while still supporting platform-specific
    features when needed:

    • SystemdInstallConfig.restart: Changed from SystemdServiceRestartType to Option<SystemdServiceRestartType>
      • When Some, the systemd-specific restart type takes precedence over the generic RestartPolicy
      • When None (default), falls back to the generic RestartPolicy
      • Migration: restart: SystemdServiceRestartType::OnFailure →
        restart: Some(SystemdServiceRestartType::OnFailure) or restart: None to use generic policy
    • LaunchdInstallConfig.keep_alive: Changed from bool to Option<bool>
      • When Some, the launchd-specific keep-alive setting takes precedence
      • When None (default), falls back to the generic RestartPolicy
      • Migration: keep_alive: true → keep_alive: Some(true) or keep_alive: None to use generic policy
    • WinSwInstallConfig.failure_action: Changed from WinSwOnFailureAction to Option<WinSwOnFailureAction>
      • When Some, the WinSW-specific failure action takes precedence
      • When None (default), falls back to the generic RestartPolicy
      • Migration: failure_action: WinSwOnFailureAction::Restart(...) →
        failure_action: Some(WinSwOnFailureAction::Restart(...)) or failure_action: None to use generic policy
Added
  • Support for the log crate to emit warnings when platform-specific restart features are not supported

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

♻ Rebasing: Whenever PR is behind base branch, 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 Mend Renovate CLI.

@MFSGA
MFSGA force-pushed the renovate/service-manager-0.x branch 7 times, most recently from 0c94b56 to ab95026 Compare July 17, 2026 18:55
@MFSGA
MFSGA force-pushed the renovate/service-manager-0.x branch 7 times, most recently from 36065a7 to a7aa3ed Compare July 24, 2026 19:14
@MFSGA
MFSGA force-pushed the renovate/service-manager-0.x branch 7 times, most recently from b7edd01 to 41c846f Compare July 31, 2026 19:09
@MFSGA
MFSGA force-pushed the renovate/service-manager-0.x branch 8 times, most recently from 98d0bba to ceb38bf Compare August 8, 2026 18:23
@MFSGA
MFSGA force-pushed the renovate/service-manager-0.x branch from ceb38bf to 3a2a800 Compare August 9, 2026 18:26
@MFSGA
MFSGA force-pushed the renovate/service-manager-0.x branch 3 times, most recently from 8e45624 to bcea51c Compare August 18, 2026 18:24
@MFSGA
MFSGA force-pushed the renovate/service-manager-0.x branch 4 times, most recently from 5bfe133 to a63b8ac Compare August 29, 2026 20:11
@MFSGA
MFSGA force-pushed the renovate/service-manager-0.x branch 2 times, most recently from 1ccfcb9 to ce85331 Compare September 1, 2026 20:19
@MFSGA
MFSGA force-pushed the main branch 3 times, most recently from 1d7cb52 to bf8ea3f Compare September 2, 2026 11:23
@MFSGA
MFSGA force-pushed the renovate/service-manager-0.x branch 8 times, most recently from 5d044ae to 0922fb3 Compare September 9, 2026 20:13
@MFSGA
MFSGA force-pushed the renovate/service-manager-0.x branch 4 times, most recently from 0e59be5 to 89d43ed Compare September 16, 2026 20:39
@MFSGA
MFSGA force-pushed the renovate/service-manager-0.x branch 3 times, most recently from 58f1e89 to c3f9231 Compare September 22, 2026 20:40
@MFSGA
MFSGA force-pushed the renovate/service-manager-0.x branch from c3f9231 to 3781806 Compare September 24, 2026 20:58
@MFSGA
MFSGA force-pushed the renovate/service-manager-0.x branch from 3781806 to e232693 Compare September 25, 2026 20:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants