Crontab-like scHeduler for Effective Execution of tasKs, cheek for short.

cheek

cheek

codecov example workflow Go Report Card Go Reference dataroots

cheek, of course, stands for Crontab-like scHeduler for Effective Execution of tasKs. cheek is a KISS approach to crontab-like job scheduling. It was born out of a (/my?) frustration about the big gap between a lightweight crontab and full-fledged solutions like Airflow.

cheek aims to be a KISS approach to job scheduling. Focus is on the KISS approach not to necessarily do this in the most robust way possible.

Getting started

Fetch the latest version for your system below.

darwin-arm64 | darwin-amd64 | linux-386 | linux-arm64 | linux-amd64

You can (for example) fetch it like below, make it executable and run it. Optionally put the cheek on your PATH.

curl https://storage.googleapis.com/better-unified/darwin/amd64/cheek -o cheek
chmod +x cheek
./cheek

Create a schedule specification using the below YAML structure:

jobs:
  my_job:
    command: date
    cron: "* * * * *"
    triggers:
      - another_job
  another_job:
    command:
      - /bin/bash
      - -c
      - "sleep 2; echo bar"
  foo_job:
    command:
      - ls
      - .
    cron: "* * * * *"
  coffee_alert:
    command: this fails
    cron: "* * * * *"
    retries: 3

If your command requires arguments, please make sure to pass them as an array like in foo_job.

Scheduler

The core of cheek consists of a scheduler that uses a schedule specified in a yaml file to triggers jobs when they are due.

You can launch the scheduler via:

cheek run ./path/to/my-schedule.yaml

Check out cheek run --help for configuration options.

UI

cheek ships with a terminal ui you can launch via:

cheek ui

The UI allows to get a quick overview on jobs that have run, that error'd and their logs. It basically does this by fetching the state of the scheduler and by reading the logs that (per job) get written to $HOME/.cheek/. Note that you can ignore these logs, output of jobs will always go to stdout as well.

The UI requires the scheduler to be up and running.

Docker

Check out the Dockerfile for an example on how to set up cheek within the context of a Docker image.

Acknowledgements

Thanks goes to:

  • gronx: for allowing me not to worry about CRON strings.
  • Charm: for their bubble-icious TUI libraries.
  • Sam & Frederik: for valuable code reviews / feedback.

GitHub Contributors

Owner
dataroots
Supporting your data driven strategy.
dataroots
Comments
  • Add UI testing

    Add UI testing

    Currently there aren't any tests for the UI, we should build some.

    Because the UI is terminal-based we could quite easily do UI testing as follows:

    • Set up the UI in the testing environment (can be headless)
    • Send the appropriate keystrokes to stdin (depending on what you want to test)
    • Look at the model to assert things

    And then we can also just add unit tests on functions that don't depend on the UI, such as getTitle, runWindow, view and such

  • Bump github.com/charmbracelet/bubbles from 0.10.2 to 0.13.0

    Bump github.com/charmbracelet/bubbles from 0.10.2 to 0.13.0

    Bumps github.com/charmbracelet/bubbles from 0.10.2 to 0.13.0.

    Release notes

    Sourced from github.com/charmbracelet/bubbles's releases.

    v0.13.0

    Textarea Bubble

    This feature release includes a brand new textarea bubble that you can use to input as many lines of text as your heart desires (or until your computer memory runs out, whichever comes first).

    See the example code for a simple example of how to use the textarea in your Bubble Tea applications.

    Customization

    There are a few ways to customize the text area.

    • SetHeight(height int): tells the component how many lines of text it should display at once.
    • SetWidth(width int): tells the component how wide the it should be.
    • ShowLineNumbers: whether or not to show line numbers on the left-hand side of a line of text.
    • Prompt: the prompt to display on the left-hand side.
    • EndOfBufferCharacter: the character to display as the line number after the last line to fill the rest of the height. Defaults to ~.
    • CharLimit: Prevents users from typing more than a set number of characters.
    • KeyMap: The set of keybindings to navigate and interact with the textarea.

    Styling

    The textarea can be customized heavily with Lip Gloss.

    • FocusedStyles: the styles to be applied while the textarea is focused.
    • BlurredStyles: the styles to be applied while the textarea is focused.

    Each of the above properties has the below sub-properties that can be modified.

    Base             lipgloss.Style
    CursorLine       lipgloss.Style
    CursorLineNumber lipgloss.Style
    EndOfBuffer      lipgloss.Style
    LineNumber       lipgloss.Style
    Placeholder      lipgloss.Style
    Prompt           lipgloss.Style
    Text             lipgloss.Style
    

    See the split editors example for how to style the textarea component.

    Read more about it in our examples and docs:

    ... (truncated)

    Commits
    • 3a34fc4 fix(textarea): Add deleteWordRight
    • 2a2fb10 fix(textarea): account for base styling frame when calculating width
    • 588393f fix(textinput): set cursor on initial value
    • 7cc5786 feat(spinners): Construct new spinners with WithSpinner + WithStyle optio...
    • 3899e1b fix(list): Disable Quit Key (#104)
    • 4c17624 fix(timer): stop should return cmd (#138)
    • 2fd583c feat(textarea): Add multi-line text input
    • 42f85b4 docs: fix paginator example link (#177)
    • 4d0a0ea docs(spinner): correct comment about internal ID (#171)
    • 658a4fe feat: new Hamburger + Meter spinners (#172)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/stretchr/testify from 1.7.0 to 1.8.0

    Bump github.com/stretchr/testify from 1.7.0 to 1.8.0

    Bumps github.com/stretchr/testify from 1.7.0 to 1.8.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/charmbracelet/bubbles from 0.10.2 to 0.12.0

    Bump github.com/charmbracelet/bubbles from 0.10.2 to 0.12.0

    Bumps github.com/charmbracelet/bubbles from 0.10.2 to 0.12.0.

    Release notes

    Sourced from github.com/charmbracelet/bubbles's releases.

    v0.12.0

    Validate Your Darlings

    This release of Bubbles allows you to handle input validation by defining validation functions that ensure the user is typing text that you expect.

    The Validate API introduces a function that is called every time the input changes to ensure that it is still valid input.

    // ValidateFunc is a function that returns an error if the input is invalid.
    type ValidateFunc func(string) error
    

    // Validate is a function that checks whether or not the text within the // input is valid. If it is not valid, the Err field will be set to the // error returned by the function. If the function is not defined, all // input is considered valid. Validate ValidateFunc

    View the Example Code to see Validate and ValidateFuncs work in code.

    With these awesome changes introduced by @​IllusionMan1212, we can now build forms that ensure all input is valid like a credit card input form!

    See the full example to handle input validation in your Bubble Tea apps.

    Custom List Status Bar Item Names

    Thanks to @​wesleimp, lists now have a new function to allow you to set a custom status bar item name. Simply call SetStatusBarItemName on your list with the singular and plural name of your list item and Bubbles will handle the rest (defaults to "item", "items").

    list.SetStatusBarItemName("grocery", "groceries")
    

    This will change the string displayed underneath the Title of the list, in this case the item name is being used for displaying 2 groceries.

    New Spinners 💫

    This release contains two brand new spinners introduced by @​wesleimp, check them out:


    What's Changed

    ... (truncated)

    Commits
    • 42f85b4 docs: fix paginator example link (#177)
    • 4d0a0ea docs(spinner): correct comment about internal ID (#171)
    • 658a4fe feat: new Hamburger + Meter spinners (#172)
    • 93e4642 docs(list): fix linting errors
    • 57d79da feat(list): ability to SetStatusBarItemName (#169)
    • e57fd29 feat: added Validate function for textinput
    • 54869f7 docs(spinner): remove obsolete comment (#168)
    • 7959eb4 fix(progress): set a custom termenv color profile (#152)
    • fd03b61 chore: bump bubbletea, harmonica, lipgloss and termenv deps
    • a1e1b46 fix(textinput): support KeySpace in both present and future Bubble Tea versions
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/charmbracelet/bubbletea from 0.19.3 to 0.22.0

    Bump github.com/charmbracelet/bubbletea from 0.19.3 to 0.22.0

    Bumps github.com/charmbracelet/bubbletea from 0.19.3 to 0.22.0.

    Release notes

    Sourced from github.com/charmbracelet/bubbletea's releases.

    v0.22.0

    Unmanaged Output

    Now you can print unmanaged output above your inline applications. This means you can print stuff above your app that won't be cleared on the next render. It’s super useful for cases where you want to build an apt-like package manager.

    Let’s Print

    This release introduces two new Cmds that print output above your inline Bubble Tea program:

    tea.Println("Hello, Bubble Tea")
    tea.Printf("%s, %s", "Hello", "Bubble Tea")
    

    Use it anytime you want to add log-type info to the terminal’s scrollback buffer, such as building your own package manager 📦. And keep in mind that these methods are no-op’s in altscreen mode.

    For details see the full example and the docs.

    🤗 Thanks

    @​fiws has been bugging us to implement this forever and then @​Adjective-Object swooped in and did it with style and grace. It’s been great working with both of you on this.


    Changelog

    New

    Fixed!

    New Contributors

    Full Changelog: https://github.com/charmbracelet/bubbletea/compare/v0.21.0...v0.22.0


    Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or Slack.

    ... (truncated)

    Commits
    • ca32c4c feat: update cancelreader (#353)
    • ebabec7 feat: print unmanaged output above the application (#249)
    • a2d0ac9 docs: add another progress bar example (#270)
    • d56d8ae Example: Credit Card Input Form (#338)
    • 21de41a docs: fix deprecation notes
    • f27dfb5 fix: add tutorials dir to dependabot config
    • af11a3b docs: rename gh-prs to gh-dash
    • 285d59b docs: add gh-b to readme
    • e6dabb3 fix: handle batched key msgs
    • 958dc20 fix: race condition on repaint with alt screen
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/stretchr/testify from 1.7.0 to 1.7.5

    Bump github.com/stretchr/testify from 1.7.0 to 1.7.5

    Bumps github.com/stretchr/testify from 1.7.0 to 1.7.5.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/spf13/cobra from 1.3.0 to 1.5.0

    Bump github.com/spf13/cobra from 1.3.0 to 1.5.0

    Bumps github.com/spf13/cobra from 1.3.0 to 1.5.0.

    Release notes

    Sourced from github.com/spf13/cobra's releases.

    v1.5.0

    Spring 2022 Release 🌥️

    Hello everyone! Welcome to another release of cobra. Completions continue to get better and better. This release adds a few really cool new features. We also continue to patch versions of our dependencies as they become available via dependabot. Happy coding!

    Active help 👐🏼

    Shout out to @​marckhouzam for a big value add: Active Help spf13/cobra#1482. With active help, a program can provide some inline warnings or hints for users as they hit tab. Now, your CLIs can be even more intuitive to use!

    Currently active help is only supported for bash V2 and zsh. Marc wrote a whole guide on how to do this, so make sure to give it a good read to learn how you can add this to your cobra code! https://github.com/spf13/cobra/blob/master/active_help.md

    Group flags 🧑🏼‍🤝‍🧑🏼

    Cobra now has the ability to mark flags as required or exclusive as a group. Shout out to our newest maintainer @​johnSchnake for this! spf13/cobra#1654 Let's say you have a username flag that MUST be partnered with a password flag. Well, now, you can enforce those as being required together:

    rootCmd.Flags().StringVarP(&u, "username", "u", "", "Username (required if password is set)")
    rootCmd.Flags().StringVarP(&pw, "password", "p", "", "Password (required if username is set)")
    rootCmd.MarkFlagsRequiredTogether("username", "password")
    

    Flags may also be marked as "mutally exclusive" with the MarkFlagsMutuallyExclusive(string, string ... ) command API. Refer to our user guide documentation for further info!

    Completions 👀

    Documentation 📝

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/stretchr/testify from 1.7.0 to 1.7.4

    Bump github.com/stretchr/testify from 1.7.0 to 1.7.4

    Bumps github.com/stretchr/testify from 1.7.0 to 1.7.4.

    Commits
    • 48391ba Fix panic in AssertExpectations for mocks without expectations (#1207)
    • 840cb80 arrays value types in a zero-initialized state are considered empty (#1126)
    • 07dc7ee Bump actions/setup-go from 3.1.0 to 3.2.0 (#1191)
    • c33fc8d Bump actions/checkout from 2 to 3 (#1163)
    • 3c33e07 Added Go 1.18.1 as a build/supported version (#1182)
    • e2b56b3 Bump github.com/stretchr/objx from 0.1.0 to 0.4.0
    • 41453c0 Update gopkg.in/yaml.v3
    • 285adcc Update go versions in build matrix
    • 6e7fab4 Bump actions/setup-go from 2 to 3.1.0
    • 106ec21 use RWMutex
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/stretchr/testify from 1.7.0 to 1.7.2

    Bump github.com/stretchr/testify from 1.7.0 to 1.7.2

    Bumps github.com/stretchr/testify from 1.7.0 to 1.7.2.

    Commits
    • 41453c0 Update gopkg.in/yaml.v3
    • 285adcc Update go versions in build matrix
    • 6e7fab4 Bump actions/setup-go from 2 to 3.1.0
    • 106ec21 use RWMutex
    • a409ccf fix data race in the suit
    • 3586478 assert: fix typo
    • 7797738 Update versions supported to include go 1.16
    • 083ff1c Fixed didPanic to now detect panic(nil).
    • 1e36bfe Use cross Go version compatible build tag syntax
    • e798dc2 Add docs on 1.17 build tags
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/charmbracelet/bubbletea from 0.19.3 to 0.21.0

    Bump github.com/charmbracelet/bubbletea from 0.19.3 to 0.21.0

    Bumps github.com/charmbracelet/bubbletea from 0.19.3 to 0.21.0.

    Release notes

    Sourced from github.com/charmbracelet/bubbletea's releases.

    v0.21.0

    Spawn Interactive Processes + More Keybindings

    Finally! This update allows you to run blocking, interactive processes from Bubble Tea like vim, htop, curl, and even entire shells like fish. It also adds a bunch of new keybindings. Read on for more!

    Let’s Exec

    As we were saying, you can now spawn interactive processes in the terminal from Bubble Tea and resume Bubble Tea when they exit. For example, you could have your Bubble Tea program spawn vim to edit a file, or temporarily open a shell, like fish. Here’s what it looks like:

    type editorFinishedMsg struct{ err error }
    

    func openInVim(path string) tea.Cmd { c := exec.Command("vim", path) return tea.ExecProcess(c, func(err error) tea.Msg { return editorFinishedMsg{err} }) }

    See the full example for details.

    Keys Galore

    Prior to this update, you couldn't bind to the functions keys. Isn't that crazy? @​mrusme certainly thought so. With this update you can can now respond to F1 through F20, modifiers included.

    And thanks to @​bwahharharrr you can also now bind to arrow keys with the ctrl, shift and alt modifiers.


    High-Level Changelog

    New

    Changed

    New Contributors

    ... (truncated)

    Commits
    • 775dbfb chore(exec): small API edits (#323)
    • 9705056 docs: improve godoc on tick and every (#320)
    • a5f28a3 docs: fixed mentions to exec.Command
    • d301ee0 change(keys): spacebar sends a KeySpace (#315)
    • bfb1668 fix: update tests for space input
    • d3fb1b7 feat: obliterate type KeySpace
    • 48cdc1e feat(keys): add support for shift/ctrl + arrow keys (#292)
    • 14e58aa fix(keys): spacebar now sends a KeySpace (#289)
    • 3795c03 add: Exec, ReleaseTerminal and RestoreTerminal to re-use input and terminal (...
    • ecba57e chore(deps): bump actions/setup-go from 2 to 3
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/charmbracelet/bubbles from 0.10.2 to 0.11.0

    Bump github.com/charmbracelet/bubbles from 0.10.2 to 0.11.0

    Bumps github.com/charmbracelet/bubbles from 0.10.2 to 0.11.0.

    Release notes

    Sourced from github.com/charmbracelet/bubbles's releases.

    v0.11.0

    Housekeeping

    🧹 Hot on the heels of Bubble Tea v0.21.0, this is a maintenance release with a lot of great quality-of-life features from both the Charm team and the community. Enjoy!

    Changelog

    New

    Fixed

    Changed

    New Contributors

    Full Changelog: https://github.com/charmbracelet/bubbles/compare/v0.10.3...v0.11.0


    Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or on Slack.

    v0.10.3

    A Couple ’o List Bugfixes

    This small patch release fixes a couple small bugs with regard to the quit keybinding in list. Cheers! 🍻

    Fixed

    New Contributors

    ... (truncated)

    Commits
    • 7959eb4 fix(progress): set a custom termenv color profile (#152)
    • fd03b61 chore: bump bubbletea, harmonica, lipgloss and termenv deps
    • a1e1b46 fix(textinput): support KeySpace in both present and future Bubble Tea versions
    • cd2593c feat: allow to set the height of the item (#155)
    • e1871db fix: padding in titlebar when nothing is displayed (#139)
    • 2a8d463 chore: shorten half page up/down help widths
    • c214837 fix: add viewport keymap help
    • f5ac642 fix: lint warn
    • 292a1dd fix(spinner): remove unused member in model
    • 154cdbc docs: add Tyler's Teacup library to resources
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump anothrNick/github-tag-action from 1.36.0 to 1.56.0

    Bump anothrNick/github-tag-action from 1.36.0 to 1.56.0

    Bumps anothrNick/github-tag-action from 1.36.0 to 1.56.0.

    Release notes

    Sourced from anothrNick/github-tag-action's releases.

    1.56.0: Get the default branch from env vars also allow to overwrite as parameter

    This is a feature from a hotfix where we add the option to specify a default branch from parameters else we capture the default branch from the runner$GITHUB_BASE_REF var

    1.55.0: Select last commit or full branch history

    This version allows to set BRANCH_HISTORY full|last for the history verification for finding bump comments. See pr for examples anothrNick/github-tag-action#218

    1.53.0: Fixing repo tag bumps

    Fixes action versioning bumps. From bug introduced in 1.50

    1.52.0: A few hofixes

    Improved tests. Warning for breaking change when renaming/refactoring output tag New output tag old_tag

    What's Changed

    Full Changelog: https://github.com/anothrNick/github-tag-action/compare/1.51.0...1.52.0

    1.50.0: FIX to print actual tag to be used when using with_v in all scenarios

    No release notes provided.

    1.49.0: Fix branch wildcard issue and added major v1 tag

    • We can now reference uses: anothrNick/github-tag-action@v1 as uses: anothrNick/github-tag-action@1 fails due sha identification
    • Also we can now use again RELEASE_BRANCHES: '.*' or releases/* or similar.

    1.48.0: Shellcheck improvements

    • Addresses shellcheck sanitizations during PR checks

    1.46.0

    Reverted 1.45.0

    1.45.0

    No release notes provided.

    1.44.0

    No release notes provided.

    1.42.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/anothrNick/github-tag-action/compare/1.41.0...1.42.0

    1.40.0

    ... (truncated)

    Commits
    • 172098f Fix: Get the default branch from env vars also allow to overwrite as paramete...
    • 2fa4983 Select last commit or full branch history for analysis of #bumps (#218)
    • 11ca940 Revert "feat: pre-build dockerfile" (#220)
    • 8aac693 feat: build and push new prebuilt docker image (#219)
    • 60b1f44 feat: pre-build dockerfile (#201)
    • a0e0d8b github.ref_name is limited within the same repo by default (#216)
    • 97083f9 Parse commit body (#214)
    • be61601 Update set-output to use GITHUB_OUTPUT file (#206)
    • 1ffbb2e Merge pull request #199 from anothrNick/hotfix/sorttags
    • b3501df we introduced a breaking change in outputs rolling back with hotfix
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump google-github-actions/upload-cloud-storage from 0.5.0 to 1.0.0

    Bump google-github-actions/upload-cloud-storage from 0.5.0 to 1.0.0

    Bumps google-github-actions/upload-cloud-storage from 0.5.0 to 1.0.0.

    Release notes

    Sourced from google-github-actions/upload-cloud-storage's releases.

    v1.0.0

    What's Changed

    Full Changelog: https://github.com/google-github-actions/upload-cloud-storage/compare/v0.10.4...v1.0.0

    v0.10.4

    What's Changed

    Full Changelog: https://github.com/google-github-actions/upload-cloud-storage/compare/v0.10.3...v0.10.4

    v0.10.3

    What's Changed

    Full Changelog: https://github.com/google-github-actions/upload-cloud-storage/compare/v0.10.2...v0.10.3

    upload-cloud-storage v0.10.2

    Miscellaneous Chores

    • fix an issue where the parent directory was incorrectly included for single-file uploads

    upload-cloud-storage v0.10.1

    Miscellaneous Chores

    • fix a bug where content-type (mime type) was incorrectly set on uploaded objects

    upload-cloud-storage v0.10.0

    Features

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/charmbracelet/bubbletea from 0.19.3 to 0.23.1

    Bump github.com/charmbracelet/bubbletea from 0.19.3 to 0.23.1

    Bumps github.com/charmbracelet/bubbletea from 0.19.3 to 0.23.1.

    Release notes

    Sourced from github.com/charmbracelet/bubbletea's releases.

    v0.23.1

    This bugfix release addresses an issue that was introduced by v0.23.0 and prevented programs from re-using stdin after a tea.Program had finished execution.


    Changelog

    Fixed!


    Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or Discord.

    v0.23.0

    If you are closely following Bubble Tea's development, you may have already noticed that we have been really busy fixing a lot of issues and merged more than just a couple of feature requests in recent weeks. This v0.23.0 release is in fact our biggest update since the initial release of the package: in the last 3 months over 100 commits have reached us by more than 30 individual contributors! Thank you everyone! 💕

    Here's a quick overview of what has changed:

    Custom Outputs

    Don't want to render your beautiful TUI to stdout? A buffer or an alternative file descriptor like stderr seems more appropriate? We got you covered now:

    Render to stderr

    p := tea.NewProgram(model, tea.WithOutput(os.Stderr))
    

    Render to a Buffer

    var buf bytes.Buffer
    p := tea.NewProgram(model, tea.WithOutput(&buf))
    

    Run Like the Wind

    We've introduced the aptly named method Program.Run which replaces and deprecates the existing Program.Start and Program.StartReturningModel methods. This unifies and clarifies the blocking behavior of the Bubble Tea program execution.

    The old methods will continue to work for now, but please update your programs accordingly:

    p := tea.NewProgram(model, tea.WithOutput(os.Stderr))
    model, err := p.Run() // instead of p.Start or p.StartReturningModel
    ...
    </tr></table> 
    

    ... (truncated)

    Commits
    • 94d6f50 docs: update readme
    • 9c20a80 fix: don't close stdin
    • e079831 Remove references to io/ioutil package
    • 7ba62d4 chore(deps): bump github.com/charmbracelet/glamour in /examples
    • 2d10416 [codespell]: Fix typos.
    • 741f2d3 fix: pass actual stdout's fd to command
    • 4f83c62 chore: apply ProgramOptions before checking context
    • 280bc6f docs: clean up readme
    • bc2befe docs: picture tag is causing display issues on Firefox
    • 3938164 docs: new readme footer
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump google-github-actions/auth from 0.5.0 to 1.0.0

    Bump google-github-actions/auth from 0.5.0 to 1.0.0

    Bumps google-github-actions/auth from 0.5.0 to 1.0.0.

    Release notes

    Sourced from google-github-actions/auth's releases.

    v1.0.0

    What's Changed

    Full Changelog: https://github.com/google-github-actions/auth/compare/v0.8.3...v1.0.0

    v0.8.3

    What's Changed

    Full Changelog: https://github.com/google-github-actions/auth/compare/v0.8.2...v0.8.3

    v0.8.2

    What's Changed

    Full Changelog: https://github.com/google-github-actions/auth/compare/v0.8.1...v0.8.2

    v0.8.1

    What's Changed

    New Contributors

    Full Changelog: https://github.com/google-github-actions/auth/compare/v0.8.0...v0.8.1

    @​google-github-actions/auth v0.8.0

    Miscellaneous Chores

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/spf13/cobra from 1.3.0 to 1.6.1

    Bump github.com/spf13/cobra from 1.3.0 to 1.6.1

    Bumps github.com/spf13/cobra from 1.3.0 to 1.6.1.

    Release notes

    Sourced from github.com/spf13/cobra's releases.

    v1.6.1

    Bug fixes 🐛

    • Fixes a panic when AddGroup isn't called before AddCommand(my-sub-command) is executed. This can happen within more complex cobra file structures that have many different inits to be executed. Now, the check for groups has been moved to ExecuteC and provides more flexibility when working with grouped commands - @​marckhouzam (and shout out to @​aawsome, @​andig and @​KINGSABRI for a deep investigation into this! 👏🏼)

    v1.6.0

    Summer 2022 Release

    Some exciting changes make their way to Cobra! Command completions continue to get better and better (including adding --help and --version automatic flags to the completions list). Grouping is now possible in your help output as well! And you can now use the OnFinalize method to cleanup things when all "work" is done. Checkout the full changelog below:


    Features 🌠

    Deprecation 👎🏼

    • ExactValidArgs is deprecated (but not being removed entirely). This is abit nuanced, so checkout #1643 for further information and the updated user_guide.md on how this may affect you (and how you can take advantage of the correct behavior in the validators): @​umarcor #1643

    Bug fixes 🐛

    Dependencies 🗳️

    Testing 🤔

    Docs ✏️

    Misc 💭

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/stretchr/testify from 1.7.0 to 1.8.1

    Bump github.com/stretchr/testify from 1.7.0 to 1.8.1

    Bumps github.com/stretchr/testify from 1.7.0 to 1.8.1.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Statefulset-scheduler (aka sfs-scheduler)

statefulset-scheduler (aka sfs-scheduler) Installation I already upload docker i

Dec 19, 2021
Scheduler: the scheduler of distbuild written in Golang

scheduler Introduction scheduler is the scheduler of distbuild written in Go. Pr

Feb 9, 2022
Scheduler - Scheduler package is a zero-dependency scheduling library for Go

Scheduler Scheduler package is a zero-dependency scheduling library for Go Insta

Jan 14, 2022
Linstor-scheduler-extender - LINSTOR scheduler extender plugin for Kubernetes

linstor-scheduler-extender LINSTOR scheduler extender plugin for Kubernetes whic

Dec 30, 2022
Crane scheduler is a Kubernetes scheduler which can schedule pod based on actual node load.

Crane-scheduler Overview Crane-scheduler is a collection of scheduler plugins based on scheduler framework, including: Dynamic scheuler: a load-aware

Dec 29, 2022
Scheduler: Go jobs execution system

Scheduler Go jobs execution system. Inspired by CI/CD and Unity task scheduler.

Jul 1, 2022
Delay-tasks - A delayed tasks implementation for golang
Delay-tasks - A delayed tasks implementation for golang

delay-tasks An implementation of delayed tasks. Usage $ git clone https://github

Jan 14, 2022
GPU Sharing Scheduler for Kubernetes Cluster
GPU Sharing Scheduler for Kubernetes Cluster

GPU Sharing Scheduler Extender in Kubernetes Overview More and more data scientists run their Nvidia GPU based inference tasks on Kubernetes. Some of

Jan 6, 2023
A lightweight job scheduler based on priority queue with timeout, retry, replica, context cancellation and easy semantics for job chaining. Build for golang web apps.

Table of Contents Introduction What is RIO? Concern An asynchronous job processor Easy management of these goroutines and chaining them Introduction W

Dec 9, 2022
A simple job scheduler backed by Postgres.

A simple job scheduler backed by Postgres used in production at https://operand.ai. Setup needs two environment variables, SECRET and ENDPOINT. The se

Sep 10, 2022
Chrono is a scheduler library that lets you run your task and code periodically
Chrono is a scheduler library that lets you run your task and code periodically

Chrono is a scheduler library that lets you run your tasks and code periodically. It provides different scheduling functionalities to make it easier t

Dec 26, 2022
cpuworker - A Customized Goroutine Scheduler over Golang Runtime
cpuworker - A Customized Goroutine Scheduler over Golang Runtime

cpuworker Status Working in process. Run the Demo Make sure the GOMAXPROCS is bigger than 1 and there is at least GOMAXPROCS physical OS threads avail

Dec 6, 2022
goInterLock is golang job/task scheduler with distributed locking mechanism (by Using Redis🔒).
goInterLock is golang job/task scheduler with distributed locking mechanism (by Using Redis🔒).

goInterLock is golang job/task scheduler with distributed locking mechanism. In distributed system locking is preventing task been executed in every instant that has the scheduler,

Dec 5, 2022
Chadburn is a scheduler alternative to cron, built on Go and designed for Docker environments.

Chadburn - a job scheduler Chadburn is a modern and low footprint job scheduler for docker environments, written in Go. Chadburn aims to be a replacem

Dec 6, 2022
A Framework for FaaS load balancing | stack-scheduler repository|

P2PFaaS A Framework for FaaS load balancing | stack-scheduler repository Introduction The P2PFaaS is a framework that allows you to implement a load b

Oct 29, 2021
Go distributed task scheduler

Go distributed task scheduler

Nov 13, 2021
A sample to showcase how to create a k8s scheduler extender

sample-scheduler-extender A sample to showcase how to create a k8s scheduler extender. UPDATE on 2020.6.10 Switch go module, and wire dependencies to

Nov 17, 2021
Scheduler CRUD For Golang
Scheduler CRUD For Golang

scheduler-CRUD 從dbdiagram.io建立table與create語法 在mysql建立table 以sqlc建CRUD function與Transaction 加入viper讀環境變量 以gin開發REST API 加入Dockerfile docker build -t th

Feb 10, 2022
personal tweet scheduler - it needs my guidance now for it to work for you - it works on my mac - will release it someday

tit tit daemon write tests automate build & install plist replace {{path_for_titd_executable}} accordingly. <?xml version="1.0" encoding="UTF-8"?> <!D

Feb 4, 2022