@@ -4,199 +4,15 @@ title: Roadmap
44description : T-Ruby development roadmap
55---
66
7- import VersionBadge from '@site/src /components/VersionBadge';
8-
9- <DocsBadge />
10-
11-
127# Roadmap
138
14- T-Ruby is under active development. This roadmap outlines the current status, upcoming features, and long-term vision for the project.
15-
16- ## Project Status
17-
18- :::caution Active Development
19- T-Ruby is currently in ** active development** . While core features are stable and well-tested, the language and tooling continue to evolve. Breaking changes may occur between versions.
20- :::
21-
22- ** Current Version:** <VersionBadge component =" compiler " />
23- ** License:** MIT
24-
25- ## Completed Milestones
26-
27- ### Milestone 1: Basic Type Parsing & Erasure ✅
28-
29- - Parameter/return type annotations
30- - Type erasure for valid Ruby output
31- - Error handling and validation
32-
33- ### Milestone 2: Core Type System ✅
34-
35- | Feature | Description |
36- | ---------| -------------|
37- | Type Aliases | ` type UserId = String ` |
38- | Interfaces | ` interface Readable ... end ` |
39- | Union Types | ` String \| Integer \| nil ` |
40- | Generics | ` Array<String> ` , ` Map<K, V> ` |
41- | Intersections | ` Readable & Writable ` |
42- | RBS Generation | ` .rbs ` file output |
43-
44- ### Milestone 3: Ecosystem & Tooling ✅
45-
46- | Feature | Status |
47- | ---------| --------|
48- | LSP Server | ✅ Implemented |
49- | Declaration Files (.d.trb) | ✅ Implemented |
50- | VSCode Extension | ✅ Published |
51- | JetBrains Plugin | ✅ [ Marketplace] ( https://plugins.jetbrains.com/plugin/29335-t-ruby ) |
52- | Vim/Neovim Integration | ✅ Available |
53- | Stdlib Types | ✅ Comprehensive coverage |
54-
55- ### Milestone 4: Advanced Features ✅
56-
57- | Feature | Description |
58- | ---------| -------------|
59- | Constraint System | Generic type constraints |
60- | Type Inference | Automatic type detection |
61- | Runtime Validation | Optional runtime checks |
62- | Type Checking | SMT-based type verification |
63- | Caching | Incremental compilation support |
64- | Package Management | Type package system |
65-
66- ### Milestone 5: Infrastructure ✅
67-
68- | Feature | Description |
69- | ---------| -------------|
70- | Bundler Integration | Ruby ecosystem integration |
71- | IR System | Intermediate representation with optimization passes |
72- | Parser Combinator | Composable parsers for complex type grammars |
73- | SMT Solver | Constraint solving for advanced type inference |
74-
75- ### Milestone 6: Integration & Production Readiness ✅
76-
77- | Feature | Status |
78- | ---------| --------|
79- | Parser Combinator Integration | ✅ Replaced legacy parser |
80- | IR-based Compiler | ✅ Full IR pipeline |
81- | SMT-based Type Checking | ✅ Integrated |
82- | LSP v2 + Semantic Tokens | ✅ Type-based syntax highlighting |
83- | Incremental Compilation | ✅ Cache-based |
84- | Cross-file Type Checking | ✅ Multi-file support |
85- | Rails/RSpec/Sidekiq Types | ✅ Available |
86- | WebAssembly Target | ✅ ` @t-ruby/wasm ` (<VersionBadge component =" wasm " />) |
87-
88- ## Current Focus
89-
90- ### Milestone 7: Next Generation (In Progress)
91-
92- | Feature | Description | Status |
93- | ---------| -------------| --------|
94- | External SMT Solver (Z3) | Enhanced type inference with Z3 | Planned |
95- | LSP v3 | Language Server Protocol 3.x support | Planned |
96- | Type-safe Metaprogramming | Safe ` define_method ` , ` method_missing ` | Planned |
97- | Gradual Typing Migration | Tools for migrating existing Ruby code | Planned |
98-
99- ## Planned Features
100-
101- ### Type System Enhancements
102-
103- - [ ] Tuple types (` [String, Integer, Boolean] ` )
104- - [ ] Recursive type aliases
105- - [ ] Variance annotations (` in ` , ` out ` )
106- - [ ] Conditional types (` T extends U ? X : Y ` )
107- - [ ] Mapped types
108- - [ ] Readonly modifier
9+ T-Ruby's development roadmap is managed on GitHub.
10910
110- ### Advanced Type Features
11+ ## Links
11112
112- - [ ] Template literal types
113- - [ ] Discriminated unions
114- - [ ] Branded types
115- - [ ] Opaque types
116- - [ ] Dependent types (research)
117-
118- ### Module System
119-
120- - [ ] Module type annotations
121- - [ ] Namespace support
122- - [ ] Import/export type syntax
123- - [ ] Module interfaces
124-
125- ## Future Vision
126-
127- ### Advanced Features
128-
129- - [ ] Effect system (tracking side effects)
130- - [ ] Ownership and borrowing concepts
131- - [ ] Algebraic data types
132- - [ ] Pattern matching types
133- - [ ] Refinement types
134-
135- ### Ecosystem
136-
137- - [ ] Type definition repository
138- - [ ] Cloud-based type checking service
139- - [ ] Sorbet compatibility mode
140- - [ ] Steep integration
141-
142- ## Research Areas
143-
144- We're actively researching these advanced features:
145-
146- ### 1. Effect Types
147- Track side effects in the type system:
148-
149- ``` trb
150- def read_file(path: String): String throws IOError
151- def calculate(x: Integer): Integer pure
152- ```
153-
154- ### 2. Dependent Types
155- Types that depend on values:
156-
157- ``` trb
158- def create_array<N: Integer>(size: N): Array<T>[N]
159- # Returns array of exactly N elements
160- ```
161-
162- ### 3. Linear Types
163- Ensure resources are used exactly once:
164-
165- ``` trb
166- def process_file(handle: File) consume: String
167- # handle can't be used after this call
168- ```
169-
170- ### 4. Row Polymorphism
171- Flexible record types:
172-
173- ``` trb
174- def add_id<T: { ... }>(obj: T): T & { id: Integer }
175- ```
176-
177- ## Version History
178-
179- | Component | Current Version |
180- | -----------| ----------------|
181- | Compiler | <VersionBadge component =" compiler " /> |
182- | VSCode Extension | <VersionBadge component =" vscode " /> |
183- | JetBrains Plugin | <VersionBadge component =" jetbrains " /> |
184- | WASM Package | <VersionBadge component =" wasm " /> |
185-
186- ## Breaking Changes Policy
187-
188- ### Current Phase (Pre-1.0)
189- - Breaking changes may occur in any release
190- - Deprecation warnings provided when possible
191- - Migration guides for major changes
192- - Changelog documents all breaking changes
193-
194- ### Stable Phase (v1.0+)
195- - No breaking changes in patch versions
196- - Breaking changes only in major versions
197- - Minimum 6-month deprecation period
198- - Automated migration tools
199- - LTS releases for enterprises
13+ - [ GitHub Project Board] ( https://github.com/orgs/type-ruby/projects/1 )
14+ - [ Milestones] ( https://github.com/type-ruby/t-ruby/milestones )
15+ - [ Roadmap Issues] ( https://github.com/type-ruby/t-ruby/labels/roadmap )
20016
20117## How to Influence the Roadmap
20218
@@ -218,10 +34,6 @@ Help shape T-Ruby's future:
21834
21935See our [ Contributing Guide] ( /docs/project/contributing ) to get started.
22036
221- ## Stay Updated
222-
223- - ** GitHub** - Watch the repository for updates
224-
22537---
22638
227- * Roadmap is subject to change based on community feedback and priorities.*
39+ * Roadmap is managed on GitHub and subject to change based on community feedback and priorities.*
0 commit comments