@@ -3,144 +3,60 @@ title: 🚪 Introduction
33weight : 0
44---
55
6- Eask was built to use as a package development tool in your Elisp packages. But
7- now, Eask supports various types of Emacs Lisp tasks. It can be used in three
8- major ways:
9-
10- 1 . Dev tool for Elisp packages
11- 2 . Dependency management for your configuration
12- 3 . Run elisp programs for all other purposes
13-
14- So what are the major differences between Eask and other build tools like
15- [ Cask] [ ] , [ makem.sh] [ ] , and [ Eldev] [ ] , other than the things above?
16-
17- Good question! Eask is more than a build tool now, it can be used for various
18- purposes! But here are Eask aims to be:
19-
20- - ** Consistent** enough to sandbox across all systems
21- - ** General** enough to have Emacsers frequently used commands (` byte-compile ` , ` checkdoc ` , etc)
22- - ** Robust** enough to provide useful results even in the presence of user errors
23- - ** Dependency-free** so that the tool can be run on any platform
24-
25- * P.S. See [ Why Eask?] ( https://emacs-eask.github.io/#-why-eask ) for more detailed
26- information.*
27-
28- ## ❓ Why Eask?
29-
30- ` Eask ` has the same philosophy as Cask, see their site [ Why Cask?] ( https://cask.readthedocs.io/en/latest/guide/introduction.html#introduction-why-cask )
31- to understand why you should use Eask (or Cask).
32-
33- Many tools like [ Cask] [ ] , [ makem.sh] [ ] , or [ Eldev] [ ] don't ** "really"** support
34- Windows. ` Cask ` has dropped support for Legacy Windows, ` makem.sh ` runs on bash,
35- ` Eldev ` does support Windows, but the author doesn't use it on Windows (not
36- having full tests, see their
37- [ CI workflows] ( https://github.com/doublep/eldev/actions/workflows/test.yml ) ).
38- ` Eask ` aims to adapt all platforms, including ` Linux ` , ` macOS ` , and ` Windows ` .
39- It focuses on the cross-platform capability and the consistency between each
40- OS. If Eask works on your machine, then it will work on any platform.
41-
42- Here are our suggestions; if you plan to work on an OS-specific package (never
43- going to other platforms), go for other tools. On the other hand, Eask aims to
44- provide the best consistency between each OS. Alternatively, if you want to
45- learn a tool that works everywhere, Eask is one of the best choices.
46-
47- ## ⚖️ Comparisons
48-
49- The table was compiled by reading these projects’ documentation and source code,
50- but the author is not an expert on these tools. Corrections are welcome.
51-
52- ### 🔍 Project Wise
53-
54- The table shows what technology has been chosen by their author and how the
55- project is being constructed. Furthermore, what technical decisions have they
56- made? Drop support? Project's layout? Etc.
57-
58- | | Eask | Cask | Eldev | makem.sh |
59- | ----------------| -------------------| ----------------------------| ----------------| ----------------------------|
60- | bin folder | binary, bash, bat | bash, bat | bash, bat, ps1 | bash |
61- | Cross-Platform | ✅ | ❌, no [ Windows] [ ] support | ✅ | ❌, no [ Windows] [ ] support |
62- | Emacs version | 26.1+ | 24.5+ | 24.4+ | 26.1+ |
63- | Size | 9,000+ lines | 3,000+ lines | 8,000+ lines | 1,200+ lines |
64- | Executable | ✅ | ❌ | ❌ | ❌ |
65- | Pure Elisp | ❌, JavaScript | ✅ | ✅ | ✅ |
66- | CLI Parser | [ yargs] [ ] | [ commander] [ ] | built-in | built-in |
67-
68- {{< hint info >}}
69- 💡 ** makem.sh** has a good comparisons document as well, visit their [ site] ( https://github.com/alphapapa/makem.sh#comparisons )
70- {{< /hint >}}
71-
72- ### 🔍 Feature Wise
73-
74- This is the feature comparison between each tool. Every tool has its advantages;
75- choose the right tool that works for you!
76-
77- If the features are not listed below, either it is forgotten or simply
78- considered too essential, so every tool has it; hence we don't add them to the
79- list.
80-
81- | | Eask | Cask | Eldev | makem.sh |
82- | ---------------------------| -----------------------------------------| --------------------------| ----------------| ----------|
83- | Elisp configuration | ✅, [ DSL] [ DSL-Eask ] is optional | ❌, [ DSL] [ DSL-Cask ] only | ✅, pure elisp | ❌ |
84- | Handle ` archives ` failure | ✅, see [ archives] [ emacs-eask/archives ] | ❌ | ❌ | ❌ |
85- | ` create ` project, etc | ✅ | ❌ | ❌ | ❌ |
86- | ` link ` local dependencies | ✅ | ✅ | ✅ | ❌ |
87- | ` exec ` program | ✅ | ✅ | ❌ | ❌ |
88- | ` eval ` expressions | ✅ | ✅ | ✅ | ❌ |
89- | ` emacs ` execution | ✅ | ✅ | ❌ | ❌ |
90- | Built-in ` linters ` | ✅ | ❌ | ✅ | ❌ |
91- | Built-in ` tests ` | ✅ | ❌ | ✅ | ❌ |
92- | Run script | ✅ | ❌ | ❌ | ❌ |
93- | Self-defined commands | ✅ | ❌ | ✅ | ❌ |
94- | Subcommand | ✅ | ❌ | ❌ | ❌ |
6+ Qob attempts to be good at these things:
7+
8+ - Play nicely with [ ASDF] [ ] and [ Quicklisp] [ ] .
9+ - Support project local like [ Qlot] [ ] and support global scope facilities.
10+ - Works on all modern operating systems: [ Linux] [ ] , [ macOS] [ ] , and [ Windows] [ ] .
11+
12+ We aim to make Qob an all-in-one tool so users no longer need to install
13+ tools like [ Roswell] [ ] and [ Qlot] [ ] , which only serve specific goals.
14+
15+ ## ❓ Why Qob?
16+
17+ Qob is an Common Lisp project management tool, similar to Maven or Leiningen.
18+ It aims to control and automate the entire life cycle of an Common Lisp system,
19+ including dependency management, packaging, distribution and testing.
20+
21+ - Ruby projects have a ` gemspec ` file?
22+ - Node.js projects have a ` package.json ` file?
23+ - Clojure projects have a ` project.clj ` file?
24+ - Common Lisp projects have a ` Qob ` file?
9525
9626## 📰 News
9727
98- - ` 0.9.x ` - Improve UX in general
99- - ` 0.8.x ` - Add ` link ` command
100- - ` 0.7.x ` - Fix ` default-directory ` isn't honored by ** -g** option
101- - ` 0.6.x ` - You can now use ` eask create ` to create an Elisp project
102- - ` 0.5.x ` - Handle error for failed archive
103- - ` 0.4.x ` - Add color logger
104- - ` 0.3.x ` - Add verbosity level and timestamps
105- - ` 0.2.x ` - Done basic error handling with exit code at the end of executions
106- - ` 0.1.39 ` - Use ` spawn ` instead ` exec ` ; now messages will be printed immediately
10728- ` 0.1.x ` - Project bare-bones are pretty much complete!
10829
10930## 📝 Todo list
11031
111- ### 🔍 Development
112-
113- - [ ] [ DEV] Publish package to [ winget] ( )
114-
11532### 🔍 Core commands
11633
117- - [ ] [ FEAT] Add ` publish ` command; to publish the package to the eask archive ?
34+ - [ ] [ FEAT] Add ` publish ` command; to publish the system to the Quciklisp dist ?
11835
119- ### 🔍 Eask -file commands
36+ ### 🔍 Qob -file commands
12037
12138- N/A
12239
12340## 📂 Underlying Projects
12441
125- The design of Eask was greatly influenced by the following projects:
42+ The design of Qob was greatly influenced by the following projects:
12643
127- * [ Cask] [ ] - Project management tool for Emacs
128- * [ makem.sh] [ ] - Makefile-like script for building and testing Emacs Lisp packages
129- * [ epm] ( https://github.com/xuchunyang/epm ) - Emacs Package Manager
130- * [ Eldev] [ ] - Elisp Development Tool
44+ - [ Roswell] [ ] - Common Lisp environment setup Utility
45+ - [ Qlot] [ ] - A project-local library installer for Common Lisp
13146
13247
13348<!-- Links -->
13449
135- [ emacs-eask/archives ] : https://github.com/emacs-eask/archives
136- [ Cask ] : https://github.com/cask/cask
137- [ makem.sh ] : https://github.com/alphapapa/makem.sh
138- [ Eldev ] : https://github.com/doublep/eldev
50+ [ Linux ] : https://en.wikipedia.org/wiki/Linux
51+ [ macOS ] : https://en.wikipedia.org/wiki/MacOS
52+ [ Windows ] : https://en.wikipedia.org/wiki/Microsoft_Windows
53+
54+ [ SBCL ] : https://www.sbcl.org/
13955
140- [ yargs ] : https://github.com/yargs/yargs
141- [ commander ] : https://github.com/rejeep/commander.el
56+ [ ASDF ] : https://asdf.common-lisp.dev/
57+ [ Quicklisp ] : https://www.quicklisp.org/beta/
14258
143- [ DSL-Eask ] : https://emacs-eask .github.io/DSL /
144- [ DSL-Cask ] : https://cask.readthedocs.io/en/latest/guide/dsl.html
59+ [ Roswell ] : https://roswell .github.io/
60+ [ Qlot ] : https://github.com/fukamachi/qlot
14561
146- [ Windows ] : https://www.microsoft.com/en-us/windows?r=1
62+ [ Make ] : https://www.gnu.org/software/make/
0 commit comments