github.com/keybase/client/go@v0.0.0-20240309051027-028f7c731f8b/updater/README.md (about) 1 # Updater 2 3 [![Build Status](https://github.com/keybase/client/go/updater/actions/workflows/ci.yml/badge.svg)](https://github.com/keybase/client/go/updater/actions) 4 [![GoDoc](https://godoc.org/github.com/keybase/client/go/updater?status.svg)](https://godoc.org/github.com/keybase/client/go/updater) 5 6 **Warning**: This isn't ready for non-Keybase libraries to use yet! 7 8 The goals of this library are to provide an updater that: 9 10 - Is simple 11 - Works on all our platforms (at least OS X, Windows, Linux) 12 - Recovers from non-fatal errors 13 - Every request or command execution should timeout (nothing blocks) 14 - Can recover from failures in its environment 15 - Can run as an unprivileged background service 16 - Has minimal, vendored dependencies 17 - Is well tested 18 - Is secure 19 - Reports failures and activity 20 - Can notify the user of any non-transient failures 21 22 This updater library is used to support updating (in background and on-demand) 23 for Keybase apps and services. 24 25 ### Packages 26 27 The main package is the updater core, there are other support packages: 28 29 - command: Executes a command with a timeout 30 - keybase: Keybase specific behavior for updates 31 - osx: MacOS specific UI 32 - process: Utilities to find and terminate Processes 33 - saltpack: Verify updates with [saltpack](https://saltpack.org/) 34 - service: Runs the updater as a background service 35 - sources: Update sources for remote locations (like S3), or locally (for testing) 36 - test: Test resources 37 - util: Utilities for updating, such as digests, env, file, http, unzip, etc. 38 - watchdog: Utility to monitor processes and restart them (like launchd), for use with updater service 39 - windows: Windows specific UI 40 41 ### Development 42 43 This library should pass the [gometalinter](https://github.com/alecthomas/gometalinter). 44 45 There is a pre-commit hook available: 46 47 ``` 48 pip install pre-commit 49 go get -u github.com/alecthomas/gometalinter 50 gometalinter --install --update 51 pre-commit install 52 pre-commit run -a 53 ```