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

fix(deps): update rust crate service-manager to 0.11#23
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.80.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: falserestart_policy: RestartPolicy::OnFailure { delay_secs: None }
      • disable_restart_on_failure: truerestart_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: truekeep_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.

@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 3 times, most recently from 6c7f469 to 2887b69 Compare August 3, 2026 19:20
@MFSGA
MFSGA force-pushed the renovate/service-manager-0.x branch from 2887b69 to 5c7d627 Compare August 4, 2026 19:20
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