|
1 | 1 | # T-Ruby Project Roadmap |
2 | 2 |
|
3 | | -## Status |
| 3 | +> **Single Source of Truth**: 공식 로드맵은 문서 사이트를 참조하세요. |
| 4 | +> https://type-ruby.github.io/docs/project/roadmap |
4 | 5 |
|
5 | | -**Milestone 6 completed. Milestone -7 (Technical Debt) in progress.** All tests passing. |
| 6 | +이 파일은 개발자용 빠른 참조입니다. 상세 내용은 공식 문서를 확인하세요. |
6 | 7 |
|
7 | | ---- |
8 | | - |
9 | | -## ✅ Milestone 1: Basic Type Parsing & Erasure |
10 | | - |
11 | | -- Parameter/return type annotations |
12 | | -- Type erasure for valid Ruby output |
13 | | -- Error handling and validation |
14 | | - |
15 | | ---- |
16 | | - |
17 | | -## ✅ Milestone 2: Core Type System |
18 | | - |
19 | | -| Feature | Description | |
20 | | -|---------|-------------| |
21 | | -| Type Aliases | `type UserId = String` | |
22 | | -| Interfaces | `interface Readable ... end` | |
23 | | -| Union Types | `String \| Integer \| nil` | |
24 | | -| Generics | `Array<String>`, `Map<K, V>` | |
25 | | -| Intersections | `Readable & Writable` | |
26 | | -| RBS Generation | `.rbs` file output | |
27 | | - |
28 | | ---- |
29 | | - |
30 | | -## ✅ Milestone 3: Ecosystem & Tooling |
31 | | - |
32 | | -| Feature | File | |
33 | | -|---------|------| |
34 | | -| LSP Server | `lsp_server.rb` | |
35 | | -| Declaration Files (.d.trb) | `declaration_generator.rb` | |
36 | | -| IDE Integration | `editors/` (VS Code, Vim, Neovim) | |
37 | | -| Stdlib Types | `lib/stdlib_types/` | |
38 | | - |
39 | | ---- |
40 | | - |
41 | | -## ✅ Milestone 4: Advanced Features |
42 | | - |
43 | | -| Feature | File | |
44 | | -|---------|------| |
45 | | -| Constraint System | `constraint_checker.rb` | |
46 | | -| Type Inference | `type_inferencer.rb` | |
47 | | -| Runtime Validation | `runtime_validator.rb` | |
48 | | -| Type Checking | `type_checker.rb` | |
49 | | -| Caching & Parallel Processing | `cache.rb` | |
50 | | -| Package Management | `package_manager.rb` | |
51 | | - |
52 | | ---- |
53 | | - |
54 | | -## ✅ Milestone 5: Future Enhancements (Completed) |
| 8 | +## Quick Status |
55 | 9 |
|
56 | | -| Feature | File | Description | |
57 | | -|---------|------|-------------| |
58 | | -| Bundler/RubyGems Integration | `bundler_integration.rb` | Seamless integration with Ruby ecosystem | |
59 | | -| IR (Intermediate Representation) | `ir.rb` | AST, type nodes, code generation, optimization passes | |
60 | | -| Parser Combinator | `parser_combinator.rb` | Composable parsers for complex type grammars | |
61 | | -| SMT Solver | `smt_solver.rb` | Constraint solving for advanced type inference | |
| 10 | +**Current Version**: v0.0.38 |
| 11 | +**Current Milestone**: 7 (Next Generation) |
62 | 12 |
|
63 | | -### Bundler Integration Features |
64 | | -- Auto-discovery of type packages for installed gems |
65 | | -- Type gem scaffold generation (`gem-types`) |
66 | | -- Gemfile `:types` group support |
67 | | -- Bundle manifest (`.trb-bundle.json`) |
68 | | -- Migration from native T-Ruby packages |
| 13 | +## Completed Milestones |
69 | 14 |
|
70 | | -### IR System Features |
71 | | -- Full AST node hierarchy (Program, TypeAlias, Interface, MethodDef, etc.) |
72 | | -- Type representation nodes (SimpleType, GenericType, UnionType, FunctionType, etc.) |
73 | | -- Visitor pattern for AST traversal |
74 | | -- Code generators (Ruby, RBS) |
75 | | -- Optimization passes (Dead Code Elimination, Constant Folding, Unused Declaration Removal) |
| 15 | +| Milestone | Description | Status | |
| 16 | +|-----------|-------------|--------| |
| 17 | +| 1 | Basic Type Parsing & Erasure | ✅ | |
| 18 | +| 2 | Core Type System | ✅ | |
| 19 | +| 3 | Ecosystem & Tooling | ✅ | |
| 20 | +| 4 | Advanced Features | ✅ | |
| 21 | +| 5 | Infrastructure (IR, Parser Combinator, SMT) | ✅ | |
| 22 | +| 6 | Integration & Production Readiness | ✅ | |
76 | 23 |
|
77 | | -### Parser Combinator Features |
78 | | -- Primitive parsers (Literal, Regex, Satisfy, EndOfInput) |
79 | | -- Combinators (Sequence, Alternative, Many, Optional, SepBy, Between) |
80 | | -- DSL for building parsers (identifier, integer, quoted_string, lexeme) |
81 | | -- TypeParser for complex type expressions |
82 | | -- DeclarationParser for T-Ruby declarations |
83 | | -- Rich error reporting with context |
| 24 | +## Current Focus: Milestone 7 |
84 | 25 |
|
85 | | -### SMT Solver Features |
86 | | -- Logical formulas (And, Or, Not, Implies, Iff) |
87 | | -- Type constraints (Subtype, TypeEqual, HasProperty) |
88 | | -- SAT solver using DPLL algorithm |
89 | | -- Type constraint solver with unification |
90 | | -- Type hierarchy with subtype checking |
91 | | -- Type inference engine for methods |
92 | | - |
93 | | ---- |
| 26 | +| Feature | Status | |
| 27 | +|---------|--------| |
| 28 | +| External SMT Solver (Z3) | ⏳ Planned | |
| 29 | +| LSP v3 | ⏳ Planned | |
| 30 | +| Type-safe Metaprogramming | ⏳ Planned | |
| 31 | +| Gradual Typing Migration | ⏳ Planned | |
94 | 32 |
|
95 | 33 | ## Architecture |
96 | 34 |
|
|
119 | 57 |
|
120 | 58 | --- |
121 | 59 |
|
122 | | -## 🔄 Milestone -7: Technical Debt & System Foundation |
123 | | - |
124 | | -> 기술 부채 해소 및 지속 가능한 개발 시스템 구축 |
125 | | -
|
126 | | -### ✅ Phase 1: Foundation Setup (Completed) |
127 | | - |
128 | | -| Task | Description | Status | |
129 | | -|------|-------------|--------| |
130 | | -| TDD Workflow Rules | `.claude/rules/tdd-workflow.md` TDD 지침 정의 | ✅ Done | |
131 | | -| Code Review Checklist | `.claude/rules/code-review-checklist.md` | ✅ Done | |
132 | | -| Documentation-Driven Rules | `.claude/rules/documentation-driven.md` | ✅ Done | |
133 | | -| Monorepo Setup (moon) | `.moon/workspace.yml`, `.moon/toolchain.yml` | ✅ Done | |
134 | | -| Project moon.yml Files | 각 프로젝트별 태스크 정의 | ✅ Done | |
135 | | - |
136 | | -### ✅ Phase 2: CI/CD Pipeline (Completed) |
137 | | - |
138 | | -| Task | Description | Status | |
139 | | -|------|-------------|--------| |
140 | | -| CI Workflow | `.github/workflows/ci.yml` (Ruby matrix test) | ✅ Done | |
141 | | -| RuboCop CI | CI에 린트 검사 추가 (`.rubocop.yml`) | ✅ Done | |
142 | | -| Codecov Integration | 테스트 커버리지 리포트 | ✅ Done | |
143 | | -| VSCode Test CI | 플러그인 빌드/린트 자동화 | ✅ Done | |
144 | | -| JetBrains Test CI | 플러그인 빌드/검증 자동화 | ✅ Done | |
145 | | -| Docs Verify CI | 문서 예제 검증 자동화 (Phase 4 이후 활성화) | ✅ Done | |
146 | | -| Release Workflow | `.github/workflows/release.yml` (동시 배포) | ✅ Done | |
147 | | - |
148 | | -### ✅ Phase 3: Editor Plugin Integration (Completed) |
149 | | - |
150 | | -| Task | Description | Status | |
151 | | -|------|-------------|--------| |
152 | | -| VERSION File | `editors/VERSION` (v0.2.0) Single Source of Truth | ✅ Done | |
153 | | -| Version Sync Script | `scripts/sync-editor-versions.sh` | ✅ Done | |
154 | | -| VSCode Test Setup | `@vscode/test-electron` + Mocha | ✅ Done | |
155 | | -| VSCode Tests | `editors/vscode/src/test/` 테스트 작성 | ✅ Done | |
156 | | -| JetBrains Test Setup | JUnit 5 + IntelliJ Platform Test | ✅ Done | |
157 | | -| JetBrains Tests | `editors/jetbrains/src/test/` 테스트 작성 | ✅ Done | |
158 | | -| Editor CONTRIBUTING.md | 플러그인 기여 가이드 | ✅ Done | |
159 | | - |
160 | | -### ✅ Phase 4: Documentation Verification (Completed) |
161 | | - |
162 | | -| Task | Description | Status | |
163 | | -|------|-------------|--------| |
164 | | -| DocsExampleExtractor | 마크다운에서 코드 블록 추출 | ✅ Done | |
165 | | -| DocsExampleVerifier | 컴파일/타입체크 검증 | ✅ Done | |
166 | | -| DocsBadgeGenerator | 커버리지 뱃지 생성 | ✅ Done | |
167 | | -| Rake Task | `rake docs:verify`, `rake docs:badge`, `rake docs:list` | ✅ Done | |
168 | | -| DocsBadge Component | Docusaurus 뱃지 컴포넌트 (별도 docs 사이트에서 사용) | ✅ Done | |
169 | | - |
170 | | -### ✅ Phase 5: Release Automation (Completed) |
171 | | - |
172 | | -| Task | Description | Status | |
173 | | -|------|-------------|--------| |
174 | | -| COMMIT_CONVENTION.md | Conventional Commits 가이드 | ✅ Done | |
175 | | -| .releaserc.yml | semantic-release 설정 | ✅ Done | |
176 | | -| CHANGELOG Automation | 자동 생성 및 GitHub Release | ✅ Done | |
177 | | - |
178 | | ---- |
179 | | - |
180 | | -## 🔄 Milestone 6: Integration & Production Readiness |
181 | | - |
182 | | -### ✅ Phase 1: Core Integration (Completed) |
183 | | - |
184 | | -| Task | Description | Status | |
185 | | -|------|-------------|--------| |
186 | | -| Parser Combinator Integration | Replace `parser.rb` with `parser_combinator.rb` | ✅ Done | |
187 | | -| IR-based Compiler | Refactor `compiler.rb` to use IR system | ✅ Done | |
188 | | -| SMT-based Type Checking | Integrate SMT Solver into `type_checker.rb` | ✅ Done | |
189 | | - |
190 | | -### ✅ Phase 2: New Features (Completed) |
191 | | - |
192 | | -| Task | Description | Status | |
193 | | -|------|-------------|--------| |
194 | | -| LSP v2 + Semantic Tokens | Type-based syntax highlighting in editors | ✅ Done | |
195 | | -| Incremental Compilation | Only recompile changed files (cache-based) | ✅ Done | |
196 | | -| Cross-file Type Checking | Type verification across multiple files | ✅ Done | |
197 | | -| Watch Mode Enhancement | Faster watch mode using new IR/Parser | ✅ Done | |
198 | | - |
199 | | -### ✅ Phase 3: Ecosystem Expansion (Completed) |
200 | | - |
201 | | -| Task | Description | Status | |
202 | | -|------|-------------|--------| |
203 | | -| Stdlib Types Extension | Extended core types (Enumerable, Comparable, Range, Regexp, Proc, Time, Exception, Float, Module) | ✅ Done | |
204 | | -| Data Format Types | JSON, YAML, CSV type definitions | ✅ Done | |
205 | | -| Popular Gem Type Packages | Rails, RSpec, Sidekiq type definitions | ✅ Done | |
206 | | -| RubyGems.org Integration | RemoteRegistry with push/yank API | ✅ Done | |
207 | | - |
208 | | -### ✅ Phase 4: Quality & Documentation (Completed) |
209 | | - |
210 | | -| Task | Description | Status | |
211 | | -|------|-------------|--------| |
212 | | -| Benchmarks | BenchmarkSuite with parsing, type checking, compilation, incremental, parallel, memory benchmarks | ✅ Done | |
213 | | -| API Documentation | DocGenerator with HTML, Markdown, JSON output | ✅ Done | |
214 | | -| E2E Tests | Integration tests for full compilation, watch mode, LSP, package management | ✅ Done | |
215 | | - |
216 | | ---- |
217 | | - |
218 | | -## 🔄 Milestone 7: Next Generation (In Progress) |
219 | | - |
220 | | -| Feature | Description | Status | |
221 | | -|---------|-------------|--------| |
222 | | -| JetBrains IDE Plugin | IntelliJ IDEA, RubyMine 플러그인 (LSP 기반) | ✅ Done | |
223 | | -| WebAssembly Target | 브라우저용 WASM 패키지 (`@t-ruby/wasm`) | ✅ Done | |
224 | | -| External SMT Solver (Z3) | Z3 통합으로 고급 타입 추론 강화 | ⏳ Planned | |
225 | | -| LSP v3 | Language Server Protocol 3.x 지원 | ⏳ Planned | |
226 | | -| Type-safe Metaprogramming | 메타프로그래밍 타입 안전성 | ⏳ Planned | |
227 | | -| Gradual Typing Migration | 기존 Ruby 코드 점진적 마이그레이션 도구 | ⏳ Planned | |
228 | | -| Performance Benchmarks Docs | 벤치마크 결과 문서화 및 공식 문서 반영 | ⏳ Planned | |
229 | | - |
230 | | -### ✅ JetBrains IDE Plugin (Completed) |
231 | | -- IntelliJ Platform Plugin SDK 기반 |
232 | | -- LSP4IJ로 `trc --lsp` 연결 |
233 | | -- 문법 하이라이팅, 자동완성, 진단, 네비게이션 |
234 | | -- 지원 IDE: IntelliJ IDEA, RubyMine, WebStorm, PyCharm, GoLand (2024.2+) |
235 | | -- 문서: 영어, 한국어, 일본어 |
236 | | -- **Marketplace**: https://plugins.jetbrains.com/plugin/29335-t-ruby |
237 | | -- **Version**: v0.1.2 |
238 | | - |
239 | | -### ✅ WebAssembly Target (Completed) |
240 | | -- npm 패키지: `@t-ruby/wasm` |
241 | | -- 브라우저에서 T-Ruby 컴파일러 실행 |
242 | | -- Playground 지원용 |
243 | | -- **Version**: v0.0.8 |
| 60 | +*For detailed roadmap, features, and release information, visit the [official documentation](https://type-ruby.github.io/docs/project/roadmap).* |
0 commit comments