|
| 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