你对 Emacs 的包管理器有什么期望? [英] What do you expect from a package manager for Emacs?

查看:25
本文介绍了你对 Emacs 的包管理器有什么期望?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

尽管存在数千个 Emacs Lisp 库,但 GNU Emacs 在 24.1 版之前没有(内部)包管理器.

我想大多数用户都会同意,目前查找、安装尤其是保持最新的 Emacs Lisp 库相当不方便.

让生活更轻松的页面

对于早于 24.1 的 Emacs 版本:

  • Emacs Lisp 列表 - 问题:我看到死人(链接).
  • Emacswiki - 问题:可能包含坚果痕迹(恶意代码).
  • Emacsmirror - 我正在处理的包存储库.问题:尚无包管理器本身支持它.

一些包管理器

并不是没有人尝试过.(当问到这个问题时,其中一些并不存在.)

<小时>

更新 -- package.el 包含在 GNU Emacs 中,从 24.1 版开始

<小时>

软件包已包含在 Emacs 主干中.epkg 尚未准备好,目前也不可用.至少 install-elisp、plugin 和 use-package 似乎不再积极维护了.

我创建了一个 git 存储库,其中包含所有这些包管理器作为子模块.

一些可能有用的实用程序

包管理器可以使用这些实用程序和/或它们可以用于维护包的镜像.

关于手头主题的讨论

问题(最后)

所以 - 我想从您那里了解您认为 Emacs 的包管理器中什么重要/不重要/补充等.

一些想法

  1. 许多软件包(Emacsmirror 提供了最大的可用软件包集合,但在任何包管理器).
  2. 仅限经过测试的软件包.
  3. 支持多个包存档(因此人们可以在多个/经过测试的包之间进行选择).
  4. 仅根据所需功能计算依赖项.
  5. 依赖项会考虑特定版本.
  6. 仅使用上游发布的版本.
  7. 如果可用,请使用版本控制系统中的版本.
  8. 包裹已分类.
  9. 不仅可以安装软件包,还可以卸载和更新软件包.
  10. 支持创建上游版本包的 fork.
  11. 支持发布这些分支.
  12. 支持选择叉子.
  13. 安装包激活后.
  14. 生成自动加载文件.
  15. 与 Emacswiki 集成(请参阅 wikirel.el).
  16. 用户可以标记、评论等包并共享该信息.
  17. 只有 FSF 分配的/GPL/FOSS 软件或不关心许可.
  18. 包管理器应该与 Emacs 集成在一起.
  19. 支持轻松联系作者.
  20. 大量元数据.
  21. 在安装特定软件包之前建议替代方案.

我希望得到这类答案

  • 指向更多实现、讨论等的提示.
  • 对构成理想包管理器的一组功能的详细描述.
  • 对一个特定的需要/不需要的功能的描述.随意从上面详细阐述我的想法.
  • 给我一个惊喜.

解决方案

从版本控制自动发布

我很想看到一个标准的、集中的和单一的 Emacs 包管理器.现在,我会把钱花在 ELPA 上,但还有很长的路要走.>

对 Emacs 包管理器有帮助的最重要的事情是让发布包变得非常简单.在我看来,我希望在 GitHub -- 使作者可以轻松发布他们的包并使其他人可以轻松回馈的东西.

类似于 GitHub(过去)如何使发布 RubyGems 变得容易,我希望在 Emacs 包管理器中看到类似的东西.例如,用vX.Y.Z"标记您的存储库,并让您的 elisp 优势自动提供给所有人.

使用像 GitHub 这样流行的后端的额外好处是,您可以立即获得大量曝光,这应该有助于推动其成功.

Although several thousand Emacs Lisp libraries exist, GNU Emacs, until version 24.1 did not have an (internal) package manager.

I guess that most users would agree that it is currently rather inconvenient to find, install and especially keep up-to-date Emacs Lisp libraries.

Pages that make life a bit easier

For versions of Emacs older than 24.1:

  • Emacs Lisp List - Problem: I see dead people (links).
  • Emacswiki - Problem: May contain traces of nuts (malicious code).
  • Emacsmirror - The package repository I am working on. Problem: No package manager supports it natively yet.

Some package managers

It's not that nobody has tried yet. (Some of these did not exist when this question was asked.)


UPDATE -- package.el is included in GNU Emacs, starting with version 24.1


package has been included in the Emacs trunk. epkg is not ready yet and also currently not available. At least install-elisp, plugin and use-package do not seem to be actively maintained anymore.

I have created a git repository containing all these package managers as submodules.

Some utilities that might be useful

Package managers could use these utilities and/or they could be used to maintain a mirror of packages.

Discussions about the subject at hand

The question (finally)

So - I would like to know from you what you consider important/unimportant/supplementary etc. in a package manager for Emacs.

Some ideas

  1. Many packages (the Emacsmirror provides that largest available collection of packages, but there is no explicit support in any package manager yet).
  2. Only packages that have been tested.
  3. Support for more than one package archive (so people can choose between many/tested packages).
  4. Dependency calculated based on required features only.
  5. Dependencies take particular versions into account.
  6. Only use versions that have been released upstream.
  7. Use versions from version control systems if available.
  8. Packages are categorized.
  9. Packages can be uninstalled and updated not only installed.
  10. Support creating fork of upstream version of packages.
  11. Support publishing these forks.
  12. Support choosing a fork.
  13. After installation packages are activated.
  14. Generate autoload files.
  15. Integration with Emacswiki (see wikirel.el).
  16. Users can tag, comment etc. packages and share that information.
  17. Only FSF-assigned/GPL/FOSS software or don't care about license.
  18. Package manager should be integrated be distributed with Emacs.
  19. Support for easily contacting author.
  20. Lots of metadata.
  21. Suggest alternatives before installing a particular package.

I am hoping for these kinds of answers

  • Pointers to more implementations, discussions etc.
  • Lengthy descriptions of a set of features that make up your ideal package manager.
  • Descriptions of one particular desired/undesired feature. Feel free to elaborate on my ideas from above.
  • Surprise me.

解决方案

Automatic publishing from version control

I'd love to see a standard, central, and single Emacs package manager. Right now, I'd put my money on ELPA, but there is still a long way to go.

The biggest thing that would help an Emacs package manager would be to make it super trivial to publish packages. In my opinion, I'd like to see this happen in combination with a version control system like git on a central hosted platform like GitHub -- something that would make it easy for authors to publish their packages and would make it easy for others to contribute back.

Similar to how GitHub (used to) make it easy to publish RubyGems, I'd like to see something similar in an Emacs package manager. For example, tag your repository with "vX.Y.Z" and have your elisp goodness automatically available to all.

The added benefit of using a popular backend like GitHub is that you'd immediately get a lot of exposure which should help drive its success.

这篇关于你对 Emacs 的包管理器有什么期望?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆