Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

package manager for elvish #239

Closed
huiyiqun opened this issue Oct 9, 2016 · 2 comments
Closed

package manager for elvish #239

huiyiqun opened this issue Oct 9, 2016 · 2 comments
Milestone

Comments

@huiyiqun
Copy link
Contributor

huiyiqun commented Oct 9, 2016

We need a solution to share useful elvish scripts and keep them up-to-date.

@xiaq
Copy link
Member

xiaq commented Oct 10, 2016

Let us make epm, elvish package manager. The design is open for discussion.

API

  • epm:install a:b:c url installs url as module a:b:c.
    • What should the syntax of url look like? We can start with support for GitHub, but it should be extensible to other kinds of sources
  • epm:update a:b:c updates module a:b:c.
    • Should we simply do git -C ~/.elvish/a/b/c pull, or keep record of where the module was originally installed from?
  • epm:update-all updates all modules.
    • Should we attempt to update those modules not installed using epm?

Usage

I can think of two ways to add a new module a:b:c to your configuration, neither of which is perfect:

  1. Use epm:install a:b:c url to install, and after the command completes, add use a:b:c to ~/.elvish/rc.elv.
    • When copying the dotfile to another machine, one has to repeat the epm:install calls 😢
  2. Put epm:install a:b:c url; use a:b:c in ~/.elvish/rc.elv. The next time elvish starts, the modules will be installed.
    • We need to make epm:install 1) concurrency-safe 2) do nothing when a:b:c exists, which is no big deal.
    • Elvish is blocked before the installation completes 😢

@xiaq xiaq added this to the 1.0 milestone Feb 16, 2017
@xiaq xiaq modified the milestones: 1.0, 0.11 Sep 17, 2017
@xiaq
Copy link
Member

xiaq commented Dec 26, 2017

The epm module has been implemented and documented in https://elvish.io/ref/epm.html.

@xiaq xiaq closed this as completed Dec 26, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants