Skip to content

Commit edc06ea

Browse files
committed
architecture.md wip
1 parent 510bd50 commit edc06ea

File tree

3 files changed

+58
-0
lines changed

3 files changed

+58
-0
lines changed

dev-docs/architecture.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Architecture
2+
3+
## Definitions
4+
5+
**SPM.** Swift package manager and Swift build tool. In other words, `swift` CLI tool
6+
7+
## Highlevel
8+
9+
- `../Sources`
10+
All major AeroSpace source code. Managed by SPM
11+
- `../Sources/AppBundle/`
12+
AeroSpace.app server. Technically, the it's swift library that is exposed to `xcode-app-bundle-launcher`
13+
- `../Sources/Cli/`
14+
CLI client. CLI client is built purely using SPM, no Xcode involved (phew!)
15+
- `../Sources/Common/`
16+
Shared between server and client
17+
- `../xcode-app-bundle-launcher/`, `../project.yml`, and `../AeroSpace.xcodeproj/`
18+
Very small technical directories that define entry point for Xcode project.
19+
Xcode projects are hard to manage without using the Xcode itself.
20+
21+
But since I edit the source code in NeoVim, all code is pushed as much as possible to SPM "library" located in `../Sources/`.
22+
SPM doesn't allow building macOS apps (aka "App Bundle"). SPM is only capable of defining libraries and building CLI apps.
23+
24+
Only few necessary entry point files are located in `../xcode-app-bundle-launcher`.
25+
The Xcode project model is located in `../AeroSpace.xcodeproj/` and generated by "skeleton" in `../project.yml`
26+
- `../Sources/AppBundleTests`
27+
Tests
28+
- `../docs/`
29+
Documentation for site and man pages in Asciidoc format https://asciidoc.org/
30+
31+
## Commands subsystem
32+
33+
todo
34+
35+
../Sources/AppBundle/command/
36+
../Sources/Common/cmdArgs/
37+
38+
Command checklist:
39+
- [ ] Documentation in `../docs/aerospace-*` and `../docs/commands.adoc`
40+
- [ ] Check that site looks alright `./.commands.html`
41+
- [ ] Check that man page looks alright `./.man`
42+
- [ ] Shell completion `../args-grammar.txt`
43+
44+
## TOML Config parse subsystem
45+
46+
todo
47+
48+
../Sources/AppBundle/config/
49+
50+
## Tree Model subsystem
51+
52+
todo
53+
54+
../Sources/AppBundle/tree/
55+
56+
## Layout subsystem
57+
58+
../Sources/AppBundle/layout/

0 commit comments

Comments
 (0)