feat: add release notifications and interactive updates - #468
Draft
nieomylnieja wants to merge 24 commits into
Draft
feat: add release notifications and interactive updates#468nieomylnieja wants to merge 24 commits into
nieomylnieja wants to merge 24 commits into
Conversation
Show a cached TTY notification after successful commands when a newer sloctl release includes feature updates. Add coverage for notifier behavior and CLI execution flow, including end-to-end notification tests.
…ew-version-notifications
Detect how sloctl was installed so notifications can suggest the right upgrade command for Homebrew, `go install`, or the install script fallback.
Show notifications for releases without feature entries and include bug-fix sections when extracting release notes. Refresh the plain-text styling and wrap long install commands to fit narrower terminals.
Run update notifications before command execution and let users upgrade, skip, or defer until the next version. Replace the GitHub proxy tests with deterministic TTY fixtures and a local release fixture server.
Detect MinGW and Cygwin before showing the interactive update form. Fall back to notification-only behavior for unsupported Windows shells.
Recognize Cygwin and MinGW terminals while suppressing the update form in native Windows consoles. Add platform Bats coverage for Linux, macOS Homebrew installs, and Windows.
…ew-version-notifications
Use semantic version ordering, preserve prompt interruption, and execute detected updater commands safely. Expand release-note and CLI regression coverage, and align test documentation and CI configuration.
Detect Homebrew and Go installations reliably, persist skip preferences safely, and add installation guidance for unsupported setups. Extend notification tests and PTY helpers for update flows and timeout handling.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
Currently, sloctl users have no automated way to learn that a new CLI version is available. Release notifications should help during interactive use without affecting CI, non-interactive commands, or development builds.
Summary
Added cached release notifications with release highlights and an opt-out environment variable for eligible interactive sessions.
Limited interactive update actions to runnable Homebrew and Go installations. Other installation methods now show the README installation link and continue the requested command without prompting.
Kept native Windows notifications non-interactive while allowing the update form in supported MinGW and Cygwin terminals.
Kept the GitHub release endpoint fixed in ordinary binaries and configurable at build time for deterministic test binaries, and rendered notifications with the shared sloctl terminal theme.
Testing
GOBIN, the firstGOPATHentry, file-identity matching, and Windows form-support decisions.Release Notes
Added release notifications for eligible interactive sloctl sessions. Homebrew and Go installations can run their matching updater; other installations show the README installation link and continue without prompting.