Skip to content

Releases: SecondSonConsulting/Renew

1.2beta1

05 Jan 01:41
Compare
Choose a tag to compare
1.2beta1 Pre-release
Pre-release

v1.2 Change Log

Note: A profile manifest with new profile keys is included here. This will be pushed to the official ProfilesManifest repository upon full release of this version. Use the local one for testing.

New Features

  • New Default Behavior: Clicking the Dialog notification will initiate the restart window
    • This can be disabled in the profile with new OptionalArguments boolean key set to false: NotificationActionEnabled #81
  • Language support for Dutch (nl)
  • Renew can now be used with a plist file OR a mobileconfig
    • If a mobile configuration file is not found, Renew will check for a configuration file in this location: /Library/Preferences/com.secondsonconsulting.renew.plist
    • You can still use iMazing Profile Editor to make this plist, just choose "Payload > Export as Plist"
    • Huge thanks to @drtaru for adding this feature.
  • Admins can now choose additional applications to ignore assertions.
    • Huge thanks to @drtaru for adding this feature.
    • If you don't want to respect a display sleep assertion for an application, you can add that application to an OptionalArguments:IgnoreAssertions array in your configuration file.
    • The default assertions to ignore will still be used as well (obs caffeinate Amphetamine)
    • Use pmset -g to see what applications are using assertions as well as how to ignore them.

Improvements

  • Argument Processing rewritten

    • --version now prints only the script version and exits with no logs and no other output
    • Multiple arguments are now supported. It is up to the operator to ensure conflicting arguments are not passed
      • --verbose --force-normal --dryrun is valid
      • --verbose --force-normal --force-notification is invalid, and will result in undefined behavior
    • --verboseor -v enables set -x for verbose troubleshooting output
    • --dryrun argument now does not process a deferral as well as disabling Restart prompt
    • --deadline argument now sets the deadline to the provided value for testing
      • Example: ./Renew.sh --deadline 66 will set the deadline to 66 days uptime
    • --print-configuration option will print the configuration file and exit
    • --configuration /path/to/renew.plist allows you to specify a plist file you wish to use as the configuration for that run.
      • This is intended for use in testing, though, there's nothing stopping you from using this option with a LaunchAgent or from your management tool
      • This argument overrides any MDM profile or configuration file for that run
      • #80
    • --language followed by a language code will allow you to test Renew behavior for different languages (i.e. --language nl would use Dutch)
    • --help is now more reliable. Thanks @aschwanb
  • Renew no longer processes deferrals/events if the system has been idle from human input for over 60 minutes

  • If the same program has multiple display sleep assertions (like caffeinate running twice or more), Renew will now properly ignore them if they're on the IgnoreAssertions list.

    • Thanks again to @drtaru for this improvement.

Housekeeping

  • Renew is now published under the MIT open-source license
  • All log messages are now also written to standard output
  • Log messages are more useful in determinig what logic is being applied and why
  • Debug messages now only visible in verbose mode, and not tied to --dryrun option

Renew.sh v1.0.1

19 Dec 22:15
Compare
Choose a tag to compare
  • Fixed a math bug within the Deadline feature

Renew.sh v1.0.0

18 Dec 19:14
9d70354
Compare
Choose a tag to compare

Renew.sh v1.0 - Patch Notes

  • First production release!
  • Gently (or not so much) urge your users to restart their computers on a regular basis
  • Works with a Deferrals system or a Deadline (or combination).
  • Utilize the many amazing features of SwiftDialog to make beautiful native macOS windows and notifications with your branding and messaging of choice.
  • Control the branding and operation entirely through a Mobile Configuration file
  • Profiles Manifest support (which feeds into iMazing Profile Editor, pending pull request on that project)
  • Installomator support (pending pull request on that project)
  • Default package includes a Launch Agent to run the script every 30 minutes
  • Alternate package does not include a Launch Agent. Configure your own custom scheduling to suit your needs
  • Visit the wiki for detailed documentation and deployment scenarios
  • Default language support for 5 languages (and will add more upon submission)
  • Ask questions or get community support in the #renew channel on the Mac Admins Slack

Renew Beta v0.1.11

15 Dec 15:50
1825b2b
Compare
Choose a tag to compare
Renew Beta v0.1.11 Pre-release
Pre-release

Renew.sh v0.1.11 - Patch Notes

  • Fixed a bug that could affect the "restart now" button behavior in Deadline mode or --force-aggro mode
  • Minor code cleanup

Renew.sh v0.1.10

25 Nov 20:39
35ef0b8
Compare
Choose a tag to compare
Renew.sh v0.1.10 Pre-release
Pre-release

Renew.sh v0.1.10 - Patch Notes

  • This release, and all future releases, will now be Signed, Notarized, and Stapled with: "Developer ID Installer: Second Son Consulting Inc. (7Q6XP5698G)"
  • This release, and all future releases, will include an alternate pkg which has no LaunchAgent, and no pre or post-install scripts. If you're using your own customized timing mechanism you can safely run the Renew_v.x_NoAgent.pkg package and not overwrite your own changes.
  • Fixed dialogExitCode variable typo
  • ***Default messaging behavior changed! Removed -o flag from dialog command, resulting in default SwiftDialog behavior that windows cannot be moved. This can be added to your OptionalArguments AdditionalDialogOptions in your configuration file if you would like your windows to be movable.
  • Added additional configuration keys for:
    • AdditionalNormalOptions
    • AdditionalAggressiveOptions
    • AdditionalNotificationOptions
    • NotificationSubtitle
  • Added --defer n testing feature, where n equals the number of minutes you want to set a deferral for. Script exits after processing the deferral.
  • ***Default messaging behavior changed! Added ShowDeferralCount Optional Argument.
    • The "deferrals remaining" language is no longer included by default
    • Set this key to boolean to show the "deferrals remaining" language in Normal Mode events
  • Added Deadline Optional Argument. Use this to set an uptime deadline of <integer> days and if your uptime exceeds this you get Aggressive Mode messages.
    • See this page for an example and explanation on how to use this new feature.
  • Added the ability to disable MaximumDeferrals by setting to -1
  • Added the ability to disable NotificationThreshold by setting to -1

See Optional Arguments, Required Arguments, and Command Line Arguments wiki pages for details on how to implement these new features.

I've also added numerous examples to the Deployment Strategies wiki page to spark ideas on how to configure.

Please help me test this release, as I would like to make it the v1.0 if there are no show-stoppers found.

Renew v.0.1.8

13 Nov 18:06
952476e
Compare
Choose a tag to compare
Renew v.0.1.8 Pre-release
Pre-release

v0.1.8 Improvements and Changes

  • Added extensible language support
  • Added default messages for:
    • Italiano
    • Deutsch
    • French
    • Espaniol
    • Français
  • Added a 5 minute reduction to all deferrment calculations. This should result in a more reliable experience for duration of deferrals
  • Streamlined and simplified logging by reducing chatty messages to the log file
  • Added simple log rotation
  • Added support for Banner images
  • Added support for Dark Mode Icons and Banner Images
  • Unified and clarified various exit codes
  • Display sleep assertion detection added.
    • If an application has told your computer "don't sleep the display" then this is detected, and Renew does not trigger (and does not use a deferral).
    • Exmple of applications which assign Display sleep assertions: Zoom/Teams/WebEx phone/video calls, Teams calls, Youtube/Netflix video playback, caffeinate command
    • Some Display sleep assertions are ignored by default, and a future release will allow admins to configure applications they wish to ignore via profile key.
    • Default ignored assertions:
      • Amphetamine
      • caffeinate
      • obs

Beta

03 Nov 23:08
Compare
Choose a tag to compare
Beta Pre-release
Pre-release

This release is still considered Beta. Please provide feedback to @BigMacAdmin here or on the Mac Admins Slack