πŸšͺ Introduction (original) (raw)

Eask was originally designed as a package development tool for Elisp projects. However, it has since expanded to support a wide range of Emacs Lisp tasks. It can now be used in three major ways:

  1. As a development tool for Elisp packages.
  2. For managing dependencies in your Emacs configuration.
  3. To run Elisp programs for a variety of purposes (essentially functioning as a runtime).

With these capabilities in mind, what sets Eask apart from other build tools like Cask, makem.sh, and Eldev?

Great question! Eask has evolved beyond just a build toolβ€”it serves multiple purposes! Here’s what Eask aims to be:

πŸ“ P.S. See Why Eask? for more detailed information.

❓ Why Eask?

Eask follows the same philosophy as Cask. To understand why you should useEask (or Cask), check out the Why Cask?section on their website.

Many tools, such as Cask, makem.sh, and Eldev, don’t fully support Windows.Cask has dropped support for Legacy Windows, makem.sh relies on Bash, and whileEldev does support Windows, its author doesn’t actively use it on the platform, meaning it lacks full testing (as seen in their CI workflows). In contrast, Easkis designed to work across all major platforms, including Linux, macOS, and Windows It prioritizes cross-platform compatibility and ensures consistency across different operating systems. If Eask runs on your machine, it will work reliably on any platform.

Here’s our recommendation: if you’re developing an OS-specific package that will never need cross-platform support, other tools may be a better fit. However, if you want a tool that ensures seamless consistency across different operating systems, Eask is an excellent choice.

Another major advantage of Eask is its transparencyβ€”there are no hidden workflows or obscure processes running in the background. Additionally, Eask strictly avoids hacks or workaround fixes, ensuring that solutions are clean, maintainable, and aligned with best practices.

βš–οΈ Comparisons

The table was compiled by reading these projects’ documentation and source code, but the author is not an expert on these tools. Corrections are welcome.

πŸ” Project Wise

The table shows what technology has been chosen by their author and how the project is being constructed. Furthermore, what technical decisions have they made? Drop support? Project’s layout? Etc.

Eask Cask Eldev makem.sh
bin folder binary, bash, bat bash, bat bash, bat, ps1 bash
Cross-Platform βœ… ❌, no Windows support βœ… ❌, no Windows support
Emacs version 26.1+ 24.5+ 24.4+ 26.1+
Size 9,000+ lines 3,000+ lines 8,000+ lines 1,200+ lines
Executable βœ… ❌ ❌ ❌
Pure Elisp ❌, JavaScript βœ… βœ… βœ…
CLI Parser yargs commander built-in built-in

Note

πŸ’‘ makem.sh has a good comparisons document as well, visit their site

πŸ” Feature Wise

This is the feature comparison between each tool. Every tool has its advantages; choose the right tool that works for you!

If the features are not listed below, either it is forgotten or simply considered too essential, so every tool has it; hence we don’t add them to the list.

Eask Cask Eldev makem.sh
Elisp configuration βœ…, DSL is optional ❌, DSL only βœ…, pure elisp ❌
Handle archives failure βœ…, see archives ❌ ❌ ❌
create project, etc βœ… ❌ ❌ ❌
link local dependencies βœ… βœ… βœ… ❌
exec program βœ… βœ… ❌ ❌
eval expressions βœ… βœ… βœ… ❌
emacs execution βœ… βœ… ❌ ❌
Support docker βœ… ❌ βœ… ❌
Built-in linters βœ… ❌ βœ… ❌
Built-in tests βœ… ❌ βœ… ❌
Run script βœ… ❌ ❌ ❌
Self-defined commands βœ… ❌ βœ… ❌
Subcommand βœ… ❌ ❌ ❌

πŸ“° News

πŸ“ Todo list

πŸ” Core commands

πŸ” Eask-file commands

πŸ“‚ Underlying Projects

The design of Eask was greatly influenced by the following projects: