Skip to content

Support VCS-friendly plugins rev lockfile #193

Open
@lttb

Description

@lttb

Thanks a lot for such an amazing shell plugin manager!

Feature Suggestion: a trackable versions lockfile would be an amazing addition to the existing lock functionality.

Example

sheldon lock generates $XDG_CONFIG_HOME/sheldon/plugins.lock if it doesn't exist (similarly to $XDG_DATA_HOME/sheldon/plugins.lock), with automatically pinned rev versions.

For example,

[[plugin]]
name = "zsh-defer"
source = "github:romkatv/zsh-defer"
rev = "53a26e287fbbe2dcebb3aa1801546c6de32416fa"

[[plugin]]
name = "evalcache"
source = "github:mroth/evalcache"
rev = "3153dcd77a2c93aa8fdf5d17cece7edb1aa3e040"

This file can be tracked in the VCS along with with plugins.toml and other dotfiles.

  • sheldon lock --update updates the $XDG_CONFIG_HOME/sheldon/plugins.lock
  • sheldon lock and sheldon lock --reinstall installs dependenies based on the lock file if exists

Notes

  • I suppose it can be an optional flag in sheldon config (plugins.toml), disabled by default?
  • $XDG_CONFIG_HOME/sheldon/plugins.lock naming is just an example, I guess there can be a better name to avoid confusion with existing sheldon/plugins.lock file
  • Plugins can be remote and local too, so it's probably fair to assume that rev locking is available only for github/gist plugins

What do you think?

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions