Skip to content

Commit 8f8390b

Browse files
docs: add changelog for v0.2.0
Auto-synced from GitHub Release. Source: https://github.com/getlumos/lumos/releases/tag/v0.2.0
1 parent db6779b commit 8f8390b

File tree

1 file changed

+105
-0
lines changed

1 file changed

+105
-0
lines changed

src/content/docs/changelog/v020.md

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
---
2+
title: "v0.2.0 - Type Aliases & Multi-File Imports"
3+
description: "Release notes for LUMOS v0.2.0"
4+
date: 2025-11-24
5+
---
6+
7+
## 🎉 LUMOS v0.2.0 - Type Aliases & Multi-File Imports
8+
9+
Major release bringing schema organization and DRY principles to LUMOS!
10+
11+
### ✨ New Features
12+
13+
#### Type Aliases
14+
- Rust-style syntax: `type UserId = PublicKey;`
15+
- Recursive resolution with circular reference detection
16+
- Generate `pub type` (Rust) and `export type` (TypeScript)
17+
- Support for all types: primitives, Solana types, collections
18+
19+
#### Multi-File Imports
20+
- JavaScript-style syntax: `import { Type1, Type2 } from "./file.lumos";`
21+
- Automatic import discovery and resolution
22+
- Multi-line import support
23+
- Circular import detection
24+
- Cross-file type validation
25+
26+
#### FileResolver Architecture
27+
- 340-line multi-file schema manager
28+
- Automatic dependency discovery
29+
- Import caching
30+
- Three-pass validation (collect → resolve → validate)
31+
32+
### 📦 Installation
33+
34+
```bash
35+
# Install or upgrade CLI
36+
cargo install lumos-cli@0.2.0
37+
38+
# Or update existing installation
39+
cargo install --force lumos-cli
40+
```
41+
42+
### 📚 Examples
43+
44+
**Type Aliases:**
45+
```lumos
46+
type UserId = PublicKey;
47+
type Lamports = u64;
48+
type UserList = [PublicKey];
49+
50+
struct Account {
51+
owner: UserId,
52+
balance: Lamports,
53+
}
54+
```
55+
56+
**Multi-File Imports:**
57+
```lumos
58+
// types.lumos
59+
type UserId = PublicKey;
60+
enum AccountStatus { Active, Frozen, Closed }
61+
62+
// accounts.lumos
63+
import { UserId, AccountStatus } from "./types.lumos";
64+
65+
struct UserAccount {
66+
user: UserId,
67+
status: AccountStatus,
68+
}
69+
```
70+
71+
### 🧪 Testing
72+
73+
- ✅ All 202 tests passing (100% success)
74+
- ✅ E2E compilation verified
75+
- ✅ 4 new file_resolver tests
76+
77+
### 📖 Documentation
78+
79+
- Comprehensive examples in `examples/type_aliases.lumos` (200+ lines)
80+
- Multi-file examples in `examples/imports/` (7 files)
81+
- Complete usage guide and troubleshooting
82+
83+
### 🔗 Links
84+
85+
- **Changelog:** [CHANGELOG.md](https://github.com/getlumos/lumos/blob/main/CHANGELOG.md)
86+
- **crates.io:** [lumos-core](https://crates.io/crates/lumos-core), [lumos-cli](https://crates.io/crates/lumos-cli), [lumos-lsp](https://crates.io/crates/lumos-lsp)
87+
- **Documentation:** https://lumos-lang.org
88+
89+
### 🚀 What's Next
90+
91+
Phase 5.3 continues with:
92+
- Nested module support (#53)
93+
- Generic struct/enum definitions (#54)
94+
95+
**Phase 5.3 Progress: 60% complete (3/5 issues)**
96+
97+
---
98+
99+
Alhamdulillah! Thank you to everyone supporting LUMOS development. 🎉
100+
101+
---
102+
103+
**Links:**
104+
- [GitHub Release](https://github.com/getlumos/lumos/releases/tag/v0.2.0)
105+
- [Compare changes](https://github.com/getlumos/lumos/compare/db6779ba462975926a6b469578f2d17dc7427e8f...v0.2.0)

0 commit comments

Comments
 (0)