@aurora.purecore.codes/latest 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/QUICK_START.md +1 -1
- package/README.md +2 -2
- package/bin/aurora.js +166 -80
- package/package.json +1 -1
- package/ARCHITECTURE.md +0 -416
- package/BINARY_RELEASE.md +0 -216
- package/CONTEXT_SUMMARY.md +0 -366
- package/DEPLOYMENT_CHECKLIST.md +0 -560
- package/IMPLEMENTATION_STATUS.md +0 -353
- package/NIX_BINARY_ISSUE.md +0 -264
- package/TEST_INIT_COMMAND.md +0 -380
- package/TEST_LOCAL.md +0 -307
package/ARCHITECTURE.md
DELETED
|
@@ -1,416 +0,0 @@
|
|
|
1
|
-
# Aurora Vault - Architecture Overview
|
|
2
|
-
|
|
3
|
-
## System Architecture
|
|
4
|
-
|
|
5
|
-
```
|
|
6
|
-
┌─────────────────────────────────────────────────────────────────┐
|
|
7
|
-
│ User's Machine │
|
|
8
|
-
├─────────────────────────────────────────────────────────────────┤
|
|
9
|
-
│ │
|
|
10
|
-
│ ┌──────────────┐ │
|
|
11
|
-
│ │ Terminal │ │
|
|
12
|
-
│ │ │ │
|
|
13
|
-
│ │ $ aurora init│ │
|
|
14
|
-
│ └──────┬───────┘ │
|
|
15
|
-
│ │ │
|
|
16
|
-
│ v │
|
|
17
|
-
│ ┌──────────────────────────────────────────────────────────┐ │
|
|
18
|
-
│ │ aurora-npm (Node.js CLI) │ │
|
|
19
|
-
│ │ │ │
|
|
20
|
-
│ │ ┌────────────────────────────────────────────────────┐ │ │
|
|
21
|
-
│ │ │ 1. Platform Detection │ │ │
|
|
22
|
-
│ │ │ - Detect OS (Linux/macOS/Windows) │ │ │
|
|
23
|
-
│ │ │ - Detect Architecture (x64/ARM64) │ │ │
|
|
24
|
-
│ │ │ - Map to binary name │ │ │
|
|
25
|
-
│ │ └────────────────────────────────────────────────────┘ │ │
|
|
26
|
-
│ │ │ │ │
|
|
27
|
-
│ │ v │ │
|
|
28
|
-
│ │ ┌────────────────────────────────────────────────────┐ │ │
|
|
29
|
-
│ │ │ 2. Check Cache │ │ │
|
|
30
|
-
│ │ │ ~/.aurora_austral/bin/austral │ │ │
|
|
31
|
-
│ │ │ ~/.aurora_austral/bin/stdlib/ │ │ │
|
|
32
|
-
│ │ └────────────────────────────────────────────────────┘ │ │
|
|
33
|
-
│ │ │ │ │
|
|
34
|
-
│ │ v │ │
|
|
35
|
-
│ │ ┌────────────────────────────────────────────────────┐ │ │
|
|
36
|
-
│ │ │ 3. Download if Needed │ │ │
|
|
37
|
-
│ │ │ - Compiler binary from GitHub Release │ │ │
|
|
38
|
-
│ │ │ - Standard library from GitHub Repo │ │ │
|
|
39
|
-
│ │ └────────────────────────────────────────────────────┘ │ │
|
|
40
|
-
│ │ │ │ │
|
|
41
|
-
│ │ v │ │
|
|
42
|
-
│ │ ┌────────────────────────────────────────────────────┐ │ │
|
|
43
|
-
│ │ │ 4. Setup Project │ │ │
|
|
44
|
-
│ │ │ - Create directory structure │ │ │
|
|
45
|
-
│ │ │ - Copy binaries to .aurora/ │ │ │
|
|
46
|
-
│ │ │ - Generate files (Makefile, etc.) │ │ │
|
|
47
|
-
│ │ └────────────────────────────────────────────────────┘ │ │
|
|
48
|
-
│ └──────────────────────────────────────────────────────────┘ │
|
|
49
|
-
│ │
|
|
50
|
-
│ ┌──────────────────────────────────────────────────────────┐ │
|
|
51
|
-
│ │ File System Structure │ │
|
|
52
|
-
│ │ │ │
|
|
53
|
-
│ │ ~/.aurora_austral/ (Global Cache) │ │
|
|
54
|
-
│ │ ├── bin/ │ │
|
|
55
|
-
│ │ │ ├── austral (Cached compiler) │ │
|
|
56
|
-
│ │ │ └── stdlib/ (Cached stdlib) │ │
|
|
57
|
-
│ │ └── packages/ (Cached packages) │ │
|
|
58
|
-
│ │ │ │
|
|
59
|
-
│ │ ./project/ (User Project) │ │
|
|
60
|
-
│ │ ├── aurora.json (Config) │ │
|
|
61
|
-
│ │ ├── Makefile (Build script) │ │
|
|
62
|
-
│ │ ├── src/ (Source code) │ │
|
|
63
|
-
│ │ ├── aurora_packages/ (Installed packages) │ │
|
|
64
|
-
│ │ └── .aurora/ (Local binaries) │ │
|
|
65
|
-
│ │ ├── bin/austral (Local compiler) │ │
|
|
66
|
-
│ │ └── stdlib/ (Local stdlib) │ │
|
|
67
|
-
│ └──────────────────────────────────────────────────────────┘ │
|
|
68
|
-
│ │
|
|
69
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
70
|
-
│
|
|
71
|
-
│ HTTPS
|
|
72
|
-
v
|
|
73
|
-
┌─────────────────────────────────────────────────────────────────┐
|
|
74
|
-
│ GitHub │
|
|
75
|
-
├─────────────────────────────────────────────────────────────────┤
|
|
76
|
-
│ │
|
|
77
|
-
│ ┌──────────────────────────────────────────────────────────┐ │
|
|
78
|
-
│ │ austral/austral Repository │ │
|
|
79
|
-
│ │ │ │
|
|
80
|
-
│ │ Releases: │ │
|
|
81
|
-
│ │ └── v0.2.0/ │ │
|
|
82
|
-
│ │ ├── austral-linux (Linux x64 binary) │ │
|
|
83
|
-
│ │ ├── austral-macos (macOS binary) │ │
|
|
84
|
-
│ │ └── austral-windows.exe (Windows binary) │ │
|
|
85
|
-
│ │ │ │
|
|
86
|
-
│ │ Repository: │ │
|
|
87
|
-
│ │ └── standard/src/ (Standard library) │ │
|
|
88
|
-
│ │ ├── Tuples.aui │ │
|
|
89
|
-
│ │ ├── Tuples.aum │ │
|
|
90
|
-
│ │ ├── String.aui │ │
|
|
91
|
-
│ │ └── ... │ │
|
|
92
|
-
│ └──────────────────────────────────────────────────────────┘ │
|
|
93
|
-
│ │
|
|
94
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
## Data Flow
|
|
98
|
-
|
|
99
|
-
### First Init (No Cache)
|
|
100
|
-
|
|
101
|
-
```
|
|
102
|
-
User runs: aurora init
|
|
103
|
-
│
|
|
104
|
-
├─> 1. Detect Platform
|
|
105
|
-
│ └─> Result: "linux-x64"
|
|
106
|
-
│
|
|
107
|
-
├─> 2. Check Cache
|
|
108
|
-
│ └─> Result: Not found
|
|
109
|
-
│
|
|
110
|
-
├─> 3. Download Compiler
|
|
111
|
-
│ ├─> GET https://github.com/austral/austral/releases/download/v0.2.0/austral-linux
|
|
112
|
-
│ ├─> Save to: ~/.aurora_austral/bin/austral
|
|
113
|
-
│ └─> Copy to: .aurora/bin/austral
|
|
114
|
-
│
|
|
115
|
-
├─> 4. Download Stdlib
|
|
116
|
-
│ ├─> GET https://api.github.com/repos/austral/austral/contents/standard/src
|
|
117
|
-
│ ├─> Download all files recursively
|
|
118
|
-
│ ├─> Save to: ~/.aurora_austral/bin/stdlib/
|
|
119
|
-
│ └─> Copy to: .aurora/stdlib/
|
|
120
|
-
│
|
|
121
|
-
├─> 5. Create Project Structure
|
|
122
|
-
│ ├─> Create: aurora.json
|
|
123
|
-
│ ├─> Create: src/Main.aui
|
|
124
|
-
│ ├─> Create: src/Main.aum
|
|
125
|
-
│ ├─> Create: Makefile
|
|
126
|
-
│ └─> Create: .gitignore
|
|
127
|
-
│
|
|
128
|
-
└─> 6. Update Configuration
|
|
129
|
-
└─> Update aurora.json with paths
|
|
130
|
-
|
|
131
|
-
Total Time: 10-30 seconds
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
### Second Init (With Cache)
|
|
135
|
-
|
|
136
|
-
```
|
|
137
|
-
User runs: aurora init
|
|
138
|
-
│
|
|
139
|
-
├─> 1. Detect Platform
|
|
140
|
-
│ └─> Result: "linux-x64"
|
|
141
|
-
│
|
|
142
|
-
├─> 2. Check Cache
|
|
143
|
-
│ └─> Result: Found in ~/.aurora_austral/
|
|
144
|
-
│
|
|
145
|
-
├─> 3. Copy from Cache
|
|
146
|
-
│ ├─> Copy: ~/.aurora_austral/bin/austral → .aurora/bin/austral
|
|
147
|
-
│ └─> Copy: ~/.aurora_austral/bin/stdlib/ → .aurora/stdlib/
|
|
148
|
-
│
|
|
149
|
-
├─> 4. Create Project Structure
|
|
150
|
-
│ ├─> Create: aurora.json
|
|
151
|
-
│ ├─> Create: src/Main.aui
|
|
152
|
-
│ ├─> Create: src/Main.aum
|
|
153
|
-
│ ├─> Create: Makefile
|
|
154
|
-
│ └─> Create: .gitignore
|
|
155
|
-
│
|
|
156
|
-
└─> 5. Update Configuration
|
|
157
|
-
└─> Update aurora.json with paths
|
|
158
|
-
|
|
159
|
-
Total Time: 1-3 seconds
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
## Component Diagram
|
|
163
|
-
|
|
164
|
-
```
|
|
165
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
166
|
-
│ aurora-npm CLI │
|
|
167
|
-
├─────────────────────────────────────────────────────────────┤
|
|
168
|
-
│ │
|
|
169
|
-
│ ┌──────────────────────────────────────────────────────┐ │
|
|
170
|
-
│ │ Command Parser (Commander.js) │ │
|
|
171
|
-
│ │ - aurora init │ │
|
|
172
|
-
│ │ - aurora install │ │
|
|
173
|
-
│ │ - aurora list │ │
|
|
174
|
-
│ │ - aurora update │ │
|
|
175
|
-
│ └──────────────────────────────────────────────────────┘ │
|
|
176
|
-
│ │ │
|
|
177
|
-
│ v │
|
|
178
|
-
│ ┌──────────────────────────────────────────────────────┐ │
|
|
179
|
-
│ │ Platform Module │ │
|
|
180
|
-
│ │ - getPlatform() │ │
|
|
181
|
-
│ │ - detectOS() │ │
|
|
182
|
-
│ │ - detectArch() │ │
|
|
183
|
-
│ │ - mapToBinaryName() │ │
|
|
184
|
-
│ └──────────────────────────────────────────────────────┘ │
|
|
185
|
-
│ │ │
|
|
186
|
-
│ v │
|
|
187
|
-
│ ┌──────────────────────────────────────────────────────┐ │
|
|
188
|
-
│ │ Download Module │ │
|
|
189
|
-
│ │ - downloadCompiler() │ │
|
|
190
|
-
│ │ - downloadStdlib() │ │
|
|
191
|
-
│ │ - downloadDirectory() │ │
|
|
192
|
-
│ │ - downloadDirectoryFromRepo() │ │
|
|
193
|
-
│ └──────────────────────────────────────────────────────┘ │
|
|
194
|
-
│ │ │
|
|
195
|
-
│ v │
|
|
196
|
-
│ ┌──────────────────────────────────────────────────────┐ │
|
|
197
|
-
│ │ Cache Module │ │
|
|
198
|
-
│ │ - checkCache() │ │
|
|
199
|
-
│ │ - saveToCache() │ │
|
|
200
|
-
│ │ - copyFromCache() │ │
|
|
201
|
-
│ │ - ensureDirs() │ │
|
|
202
|
-
│ └──────────────────────────────────────────────────────┘ │
|
|
203
|
-
│ │ │
|
|
204
|
-
│ v │
|
|
205
|
-
│ ┌──────────────────────────────────────────────────────┐ │
|
|
206
|
-
│ │ Project Setup Module │ │
|
|
207
|
-
│ │ - createProjectStructure() │ │
|
|
208
|
-
│ │ - generateAuroraJson() │ │
|
|
209
|
-
│ │ - generateMakefile() │ │
|
|
210
|
-
│ │ - generateExampleFiles() │ │
|
|
211
|
-
│ │ - generateGitignore() │ │
|
|
212
|
-
│ └──────────────────────────────────────────────────────┘ │
|
|
213
|
-
│ │ │
|
|
214
|
-
│ v │
|
|
215
|
-
│ ┌──────────────────────────────────────────────────────┐ │
|
|
216
|
-
│ │ UI Module (ora, chalk) │ │
|
|
217
|
-
│ │ - showSpinner() │ │
|
|
218
|
-
│ │ - showSuccess() │ │
|
|
219
|
-
│ │ - showError() │ │
|
|
220
|
-
│ │ - showInfo() │ │
|
|
221
|
-
│ └──────────────────────────────────────────────────────┘ │
|
|
222
|
-
│ │
|
|
223
|
-
└─────────────────────────────────────────────────────────────┘
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
## Sequence Diagram
|
|
227
|
-
|
|
228
|
-
```
|
|
229
|
-
User CLI Platform Download Cache GitHub FileSystem
|
|
230
|
-
│ │ │ │ │ │ │
|
|
231
|
-
│─aurora init─>│ │ │ │ │ │
|
|
232
|
-
│ │ │ │ │ │ │
|
|
233
|
-
│ │─getPlatform()─>│ │ │ │ │
|
|
234
|
-
│ │<──"linux-x64"──│ │ │ │ │
|
|
235
|
-
│ │ │ │ │ │ │
|
|
236
|
-
│ │─checkCache()───────────────────────────>│ │ │
|
|
237
|
-
│ │<──"not found"──────────────────────────│ │ │
|
|
238
|
-
│ │ │ │ │ │ │
|
|
239
|
-
│ │─downloadCompiler()──────────>│ │ │ │
|
|
240
|
-
│ │ │ │────GET────────────────>│ │
|
|
241
|
-
│ │ │ │<──binary───────────────│ │
|
|
242
|
-
│ │ │ │ │ │ │
|
|
243
|
-
│ │ │ │─saveToCache()─────────>│ │
|
|
244
|
-
│ │ │ │ │─write──────────────────>│
|
|
245
|
-
│ │ │ │ │<──ok───────────────────│
|
|
246
|
-
│ │ │ │<──ok───────│ │ │
|
|
247
|
-
│ │<──ok───────────────────────│ │ │ │
|
|
248
|
-
│ │ │ │ │ │ │
|
|
249
|
-
│ │─downloadStdlib()────────────>│ │ │ │
|
|
250
|
-
│ │ │ │────GET────────────────>│ │
|
|
251
|
-
│ │ │ │<──files────────────────│ │
|
|
252
|
-
│ │ │ │ │ │ │
|
|
253
|
-
│ │ │ │─saveToCache()─────────>│ │
|
|
254
|
-
│ │ │ │ │─write──────────────────>│
|
|
255
|
-
│ │ │ │ │<──ok───────────────────│
|
|
256
|
-
│ │ │ │<──ok───────│ │ │
|
|
257
|
-
│ │<──ok───────────────────────│ │ │ │
|
|
258
|
-
│ │ │ │ │ │ │
|
|
259
|
-
│ │─createProject()────────────────────────────────────────────────────>│
|
|
260
|
-
│ │ │ │ │ │ │
|
|
261
|
-
│ │─copyBinaries()─────────────────────────>│ │ │
|
|
262
|
-
│ │ │ │ │─copy───────────────────>│
|
|
263
|
-
│ │ │ │ │<──ok───────────────────│
|
|
264
|
-
│ │<──ok───────────────────────────────────│ │ │
|
|
265
|
-
│ │ │ │ │ │ │
|
|
266
|
-
│ │─generateFiles()────────────────────────────────────────────────────>│
|
|
267
|
-
│ │<──ok───────────────────────────────────────────────────────────────│
|
|
268
|
-
│ │ │ │ │ │ │
|
|
269
|
-
│<──success───│ │ │ │ │ │
|
|
270
|
-
│ │ │ │ │ │ │
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
## Platform Mapping
|
|
274
|
-
|
|
275
|
-
```
|
|
276
|
-
┌──────────────────────────────────────────────────────────────┐
|
|
277
|
-
│ Platform Detection │
|
|
278
|
-
├──────────────────────────────────────────────────────────────┤
|
|
279
|
-
│ │
|
|
280
|
-
│ os.platform() + os.arch() → Platform ID → Binary │
|
|
281
|
-
│ ───────────── ───────── ─────────── ────── │
|
|
282
|
-
│ │
|
|
283
|
-
│ linux + x64 → linux-x64 → austral-linux
|
|
284
|
-
│ darwin + x64 → darwin-x64 → austral-macos
|
|
285
|
-
│ darwin + arm64 → darwin-arm64 → austral-macos
|
|
286
|
-
│ win32 + x64 → win32-x64 → austral-windows.exe
|
|
287
|
-
│ │
|
|
288
|
-
└──────────────────────────────────────────────────────────────┘
|
|
289
|
-
```
|
|
290
|
-
|
|
291
|
-
## Cache Strategy
|
|
292
|
-
|
|
293
|
-
```
|
|
294
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
295
|
-
│ Cache Hierarchy │
|
|
296
|
-
├─────────────────────────────────────────────────────────────┤
|
|
297
|
-
│ │
|
|
298
|
-
│ Level 1: Global Cache (~/.aurora_austral/) │
|
|
299
|
-
│ ├── Shared across all projects │
|
|
300
|
-
│ ├── Persists between projects │
|
|
301
|
-
│ └── Used for: Compiler, Stdlib, Packages │
|
|
302
|
-
│ │
|
|
303
|
-
│ Level 2: Local Cache (.aurora/) │
|
|
304
|
-
│ ├── Project-specific │
|
|
305
|
-
│ ├── Makes project portable │
|
|
306
|
-
│ └── Used for: Compiler, Stdlib │
|
|
307
|
-
│ │
|
|
308
|
-
│ Level 3: Project Files (aurora_packages/) │
|
|
309
|
-
│ ├── Installed packages │
|
|
310
|
-
│ ├── Project-specific dependencies │
|
|
311
|
-
│ └── Tracked in version control (optional) │
|
|
312
|
-
│ │
|
|
313
|
-
└─────────────────────────────────────────────────────────────┘
|
|
314
|
-
```
|
|
315
|
-
|
|
316
|
-
## Error Handling Flow
|
|
317
|
-
|
|
318
|
-
```
|
|
319
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
320
|
-
│ Error Handling │
|
|
321
|
-
├─────────────────────────────────────────────────────────────┤
|
|
322
|
-
│ │
|
|
323
|
-
│ Try: Download Compiler │
|
|
324
|
-
│ │ │
|
|
325
|
-
│ ├─> Success │
|
|
326
|
-
│ │ └─> Continue to stdlib download │
|
|
327
|
-
│ │ │
|
|
328
|
-
│ └─> Failure │
|
|
329
|
-
│ ├─> Network Error │
|
|
330
|
-
│ │ └─> Show: "Check internet connection" │
|
|
331
|
-
│ │ │
|
|
332
|
-
│ ├─> 404 Not Found │
|
|
333
|
-
│ │ └─> Show: "Binary not available for platform" │
|
|
334
|
-
│ │ │
|
|
335
|
-
│ ├─> 403 Rate Limit │
|
|
336
|
-
│ │ └─> Show: "GitHub rate limit exceeded" │
|
|
337
|
-
│ │ │
|
|
338
|
-
│ └─> Other Error │
|
|
339
|
-
│ └─> Show: "Failed to download: {message}" │
|
|
340
|
-
│ │
|
|
341
|
-
│ Fallback: Continue without binary │
|
|
342
|
-
│ └─> Suggest: Use --no-binary or install manually │
|
|
343
|
-
│ │
|
|
344
|
-
└─────────────────────────────────────────────────────────────┘
|
|
345
|
-
```
|
|
346
|
-
|
|
347
|
-
## Build Process Flow
|
|
348
|
-
|
|
349
|
-
```
|
|
350
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
351
|
-
│ Build Process │
|
|
352
|
-
├─────────────────────────────────────────────────────────────┤
|
|
353
|
-
│ │
|
|
354
|
-
│ User runs: make build │
|
|
355
|
-
│ │ │
|
|
356
|
-
│ v │
|
|
357
|
-
│ Makefile detects compiler: │
|
|
358
|
-
│ │ │
|
|
359
|
-
│ ├─> Check: .aurora/bin/austral │
|
|
360
|
-
│ │ └─> Found? Use it │
|
|
361
|
-
│ │ │
|
|
362
|
-
│ ├─> Check: austral in PATH │
|
|
363
|
-
│ │ └─> Found? Use it │
|
|
364
|
-
│ │ │
|
|
365
|
-
│ └─> Not found? Error │
|
|
366
|
-
│ │
|
|
367
|
-
│ Makefile detects stdlib: │
|
|
368
|
-
│ │ │
|
|
369
|
-
│ ├─> Check: .aurora/stdlib │
|
|
370
|
-
│ │ └─> Found? Use it │
|
|
371
|
-
│ │ │
|
|
372
|
-
│ ├─> Check: /usr/local/lib/austral/standard/src │
|
|
373
|
-
│ │ └─> Found? Use it │
|
|
374
|
-
│ │ │
|
|
375
|
-
│ └─> Not found? Error │
|
|
376
|
-
│ │
|
|
377
|
-
│ Compile: │
|
|
378
|
-
│ │ │
|
|
379
|
-
│ └─> austral compile <stdlib> <src> --entrypoint=... │
|
|
380
|
-
│ └─> Output: ./main │
|
|
381
|
-
│ │
|
|
382
|
-
└─────────────────────────────────────────────────────────────┘
|
|
383
|
-
```
|
|
384
|
-
|
|
385
|
-
## Key Design Principles
|
|
386
|
-
|
|
387
|
-
1. **Fail Gracefully**: Never crash, always provide helpful error messages
|
|
388
|
-
2. **Cache Aggressively**: Download once, use many times
|
|
389
|
-
3. **Auto-Detect Everything**: Minimize user configuration
|
|
390
|
-
4. **Provide Fallbacks**: Always have a plan B (--no-binary, system install)
|
|
391
|
-
5. **Be Portable**: Projects should work anywhere (local binaries)
|
|
392
|
-
6. **Be Fast**: Use cache, parallel downloads, efficient algorithms
|
|
393
|
-
7. **Be Secure**: Validate downloads, check permissions, handle errors
|
|
394
|
-
8. **Be User-Friendly**: Clear messages, progress indicators, helpful docs
|
|
395
|
-
|
|
396
|
-
## Performance Optimizations
|
|
397
|
-
|
|
398
|
-
1. **Parallel Downloads**: Download compiler and stdlib simultaneously (future)
|
|
399
|
-
2. **Incremental Updates**: Only download changed files
|
|
400
|
-
3. **Compression**: Use compressed archives (future)
|
|
401
|
-
4. **CDN**: Use GitHub's CDN for fast downloads
|
|
402
|
-
5. **Cache Validation**: Check if cache is up-to-date
|
|
403
|
-
6. **Lazy Loading**: Only download what's needed
|
|
404
|
-
|
|
405
|
-
## Security Considerations
|
|
406
|
-
|
|
407
|
-
1. **HTTPS Only**: All downloads over HTTPS
|
|
408
|
-
2. **Checksum Verification**: Verify file integrity (future)
|
|
409
|
-
3. **Signature Verification**: Verify binary signatures (future)
|
|
410
|
-
4. **Sandboxing**: Run compiler in isolated environment (future)
|
|
411
|
-
5. **Permission Checks**: Verify file permissions
|
|
412
|
-
6. **Input Validation**: Validate all user inputs
|
|
413
|
-
|
|
414
|
-
---
|
|
415
|
-
|
|
416
|
-
This architecture provides a robust, scalable, and user-friendly system for distributing Aurora Austral binaries!
|
package/BINARY_RELEASE.md
DELETED
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
# Aurora Austral - Binary Release Guide
|
|
2
|
-
|
|
3
|
-
Este guia explica como compilar e fazer release dos binários do compilador Aurora Austral para múltiplas plataformas.
|
|
4
|
-
|
|
5
|
-
## Plataformas Suportadas
|
|
6
|
-
|
|
7
|
-
- **Linux x64** (`linux-x64`)
|
|
8
|
-
- **macOS x64** (`darwin-x64`)
|
|
9
|
-
- **macOS ARM64** (`darwin-arm64`)
|
|
10
|
-
- **Windows x64** (`win32-x64`)
|
|
11
|
-
|
|
12
|
-
## Compilando Binários
|
|
13
|
-
|
|
14
|
-
### Linux x64
|
|
15
|
-
|
|
16
|
-
```bash
|
|
17
|
-
# No Linux ou WSL
|
|
18
|
-
cd aurora-austral
|
|
19
|
-
make
|
|
20
|
-
cp austral releases/austral-linux-x64
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
### macOS x64
|
|
24
|
-
|
|
25
|
-
```bash
|
|
26
|
-
# No macOS Intel
|
|
27
|
-
cd aurora-austral
|
|
28
|
-
make
|
|
29
|
-
cp austral releases/austral-darwin-x64
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
### macOS ARM64 (M1/M2)
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
# No macOS Apple Silicon
|
|
36
|
-
cd aurora-austral
|
|
37
|
-
make
|
|
38
|
-
cp austral releases/austral-darwin-arm64
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
### Windows x64
|
|
42
|
-
|
|
43
|
-
```bash
|
|
44
|
-
# No Windows com WSL ou cross-compile
|
|
45
|
-
cd aurora-austral
|
|
46
|
-
make
|
|
47
|
-
cp austral releases/austral-win32-x64.exe
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
## Criando Release no GitHub
|
|
51
|
-
|
|
52
|
-
### 1. Criar Tag
|
|
53
|
-
|
|
54
|
-
```bash
|
|
55
|
-
git tag -a v0.2.0 -m "Release v0.2.0"
|
|
56
|
-
git push origin v0.2.0
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
### 2. Criar Release via GitHub CLI
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
gh release create v0.2.0 \
|
|
63
|
-
releases/austral-linux-x64 \
|
|
64
|
-
releases/austral-darwin-x64 \
|
|
65
|
-
releases/austral-darwin-arm64 \
|
|
66
|
-
releases/austral-win32-x64.exe \
|
|
67
|
-
--title "Aurora Austral v0.2.0" \
|
|
68
|
-
--notes "Compiled binaries for multiple platforms"
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
### 3. Ou via Interface Web
|
|
72
|
-
|
|
73
|
-
1. Vá para https://github.com/Aurora-Austral/aurora-austral/releases/new
|
|
74
|
-
2. Escolha a tag criada
|
|
75
|
-
3. Faça upload dos binários
|
|
76
|
-
4. Publique o release
|
|
77
|
-
|
|
78
|
-
## Estrutura de Diretórios
|
|
79
|
-
|
|
80
|
-
```
|
|
81
|
-
aurora-austral/
|
|
82
|
-
├── releases/
|
|
83
|
-
│ ├── austral-linux-x64
|
|
84
|
-
│ ├── austral-darwin-x64
|
|
85
|
-
│ ├── austral-darwin-arm64
|
|
86
|
-
│ └── austral-win32-x64.exe
|
|
87
|
-
└── standard/
|
|
88
|
-
└── src/
|
|
89
|
-
├── Tuples.aui
|
|
90
|
-
├── Tuples.aum
|
|
91
|
-
└── ...
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
## Testando Binários
|
|
95
|
-
|
|
96
|
-
### Linux/macOS
|
|
97
|
-
|
|
98
|
-
```bash
|
|
99
|
-
chmod +x releases/austral-linux-x64
|
|
100
|
-
./releases/austral-linux-x64 --version
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
### Windows
|
|
104
|
-
|
|
105
|
-
```cmd
|
|
106
|
-
releases\austral-win32-x64.exe --version
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
## Usando com `aurora init`
|
|
110
|
-
|
|
111
|
-
Depois de fazer o release, os usuários podem usar:
|
|
112
|
-
|
|
113
|
-
```bash
|
|
114
|
-
# Cria projeto e baixa binários automaticamente
|
|
115
|
-
aurora init
|
|
116
|
-
|
|
117
|
-
# Ou sem baixar binários (usa instalação do sistema)
|
|
118
|
-
aurora init --no-binary
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
## Automatizando com GitHub Actions
|
|
122
|
-
|
|
123
|
-
Crie `.github/workflows/release.yml`:
|
|
124
|
-
|
|
125
|
-
```yaml
|
|
126
|
-
name: Release Binaries
|
|
127
|
-
|
|
128
|
-
on:
|
|
129
|
-
push:
|
|
130
|
-
tags:
|
|
131
|
-
- 'v*'
|
|
132
|
-
|
|
133
|
-
jobs:
|
|
134
|
-
build:
|
|
135
|
-
strategy:
|
|
136
|
-
matrix:
|
|
137
|
-
os: [ubuntu-latest, macos-latest, macos-14, windows-latest]
|
|
138
|
-
include:
|
|
139
|
-
- os: ubuntu-latest
|
|
140
|
-
artifact: austral-linux-x64
|
|
141
|
-
- os: macos-latest
|
|
142
|
-
artifact: austral-darwin-x64
|
|
143
|
-
- os: macos-14
|
|
144
|
-
artifact: austral-darwin-arm64
|
|
145
|
-
- os: windows-latest
|
|
146
|
-
artifact: austral-win32-x64.exe
|
|
147
|
-
|
|
148
|
-
runs-on: ${{ matrix.os }}
|
|
149
|
-
|
|
150
|
-
steps:
|
|
151
|
-
- uses: actions/checkout@v3
|
|
152
|
-
|
|
153
|
-
- name: Install dependencies
|
|
154
|
-
run: |
|
|
155
|
-
# Instalar OCaml, dune, etc.
|
|
156
|
-
|
|
157
|
-
- name: Build
|
|
158
|
-
run: make
|
|
159
|
-
|
|
160
|
-
- name: Upload artifact
|
|
161
|
-
uses: actions/upload-artifact@v3
|
|
162
|
-
with:
|
|
163
|
-
name: ${{ matrix.artifact }}
|
|
164
|
-
path: austral
|
|
165
|
-
|
|
166
|
-
release:
|
|
167
|
-
needs: build
|
|
168
|
-
runs-on: ubuntu-latest
|
|
169
|
-
steps:
|
|
170
|
-
- uses: actions/download-artifact@v3
|
|
171
|
-
|
|
172
|
-
- name: Create Release
|
|
173
|
-
uses: softprops/action-gh-release@v1
|
|
174
|
-
with:
|
|
175
|
-
files: |
|
|
176
|
-
austral-linux-x64/austral
|
|
177
|
-
austral-darwin-x64/austral
|
|
178
|
-
austral-darwin-arm64/austral
|
|
179
|
-
austral-win32-x64.exe/austral
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
## Verificando Integridade
|
|
183
|
-
|
|
184
|
-
Gere checksums para os binários:
|
|
185
|
-
|
|
186
|
-
```bash
|
|
187
|
-
cd releases
|
|
188
|
-
sha256sum austral-* > SHA256SUMS
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
Inclua o arquivo `SHA256SUMS` no release.
|
|
192
|
-
|
|
193
|
-
## Notas
|
|
194
|
-
|
|
195
|
-
- Os binários devem ser **staticamente linkados** quando possível
|
|
196
|
-
- Teste cada binário na plataforma alvo antes do release
|
|
197
|
-
- Mantenha a stdlib sincronizada com a versão do compilador
|
|
198
|
-
- Documente breaking changes no CHANGELOG
|
|
199
|
-
|
|
200
|
-
## Troubleshooting
|
|
201
|
-
|
|
202
|
-
### Binário não executa
|
|
203
|
-
|
|
204
|
-
- **Linux**: Verifique se tem permissão de execução (`chmod +x`)
|
|
205
|
-
- **macOS**: Pode precisar remover quarentena (`xattr -d com.apple.quarantine austral`)
|
|
206
|
-
- **Windows**: Verifique se não está bloqueado pelo antivírus
|
|
207
|
-
|
|
208
|
-
### Erro "cannot execute: required file not found"
|
|
209
|
-
|
|
210
|
-
- Binário foi compilado com dependências dinâmicas (Nix, etc.)
|
|
211
|
-
- Recompile com linking estático ou inclua dependências
|
|
212
|
-
|
|
213
|
-
### Versão incompatível
|
|
214
|
-
|
|
215
|
-
- Certifique-se de que a stdlib corresponde à versão do compilador
|
|
216
|
-
- Use a mesma tag/commit para compilador e stdlib
|