docs and tasks
This commit is contained in:
144
tasks/00-index.md
Normal file
144
tasks/00-index.md
Normal file
@@ -0,0 +1,144 @@
|
||||
# ob-elixir Implementation Tasks
|
||||
|
||||
This directory contains step-by-step implementation tasks for building the ob-elixir package.
|
||||
|
||||
## Overview
|
||||
|
||||
The implementation is organized into 4 phases:
|
||||
|
||||
| Phase | Description | Tasks | Priority |
|
||||
|-------|-------------|-------|----------|
|
||||
| **Phase 1** | Core MVP | 01-06 | Critical |
|
||||
| **Phase 2** | Sessions | 07 | High |
|
||||
| **Phase 3** | Mix Integration | 08 | High |
|
||||
| **Phase 4** | Advanced Features | 09-10 | Medium/Low |
|
||||
|
||||
## Task List
|
||||
|
||||
### Phase 1: Core (MVP)
|
||||
|
||||
These tasks implement the minimum viable product - basic Elixir code execution in org-mode.
|
||||
|
||||
| Task | Title | Time | Status |
|
||||
|------|-------|------|--------|
|
||||
| [01](01-project-setup.md) | Project Setup | 30 min | Pending |
|
||||
| [02](02-basic-execution.md) | Basic Code Execution | 1-2 hrs | Pending |
|
||||
| [03](03-variable-injection.md) | Variable Injection | 1-2 hrs | Pending |
|
||||
| [04](04-error-handling.md) | Error Handling | 1 hr | Pending |
|
||||
| [05](05-result-formatting.md) | Result Formatting | 1-2 hrs | Pending |
|
||||
| [06](06-test-suite.md) | Comprehensive Test Suite | 2-3 hrs | Pending |
|
||||
|
||||
**Phase 1 Deliverables:**
|
||||
- Execute Elixir code with `C-c C-c`
|
||||
- `:results value` and `:results output` work
|
||||
- `:var` header arguments work
|
||||
- Errors are properly reported
|
||||
- Lists become org tables
|
||||
- Comprehensive test coverage
|
||||
|
||||
### Phase 2: Sessions
|
||||
|
||||
| Task | Title | Time | Status |
|
||||
|------|-------|------|--------|
|
||||
| [07](07-session-support.md) | IEx Session Support | 3-4 hrs | Pending |
|
||||
|
||||
**Phase 2 Deliverables:**
|
||||
- `:session name` creates persistent IEx sessions
|
||||
- Variables and modules persist across blocks
|
||||
- Session cleanup commands
|
||||
|
||||
### Phase 3: Mix Integration
|
||||
|
||||
| Task | Title | Time | Status |
|
||||
|------|-------|------|--------|
|
||||
| [08](08-mix-project-support.md) | Mix Project Support | 2-3 hrs | Pending |
|
||||
|
||||
**Phase 3 Deliverables:**
|
||||
- `:mix-project path` executes in project context
|
||||
- Auto-detection of Mix projects
|
||||
- `:mix-env` sets MIX_ENV
|
||||
- Sessions with Mix (`iex -S mix`)
|
||||
|
||||
### Phase 4: Advanced Features
|
||||
|
||||
| Task | Title | Time | Status |
|
||||
|------|-------|------|--------|
|
||||
| [09](09-remote-shell.md) | Remote Shell (remsh) | 2-3 hrs | Pending |
|
||||
| [10](10-async-execution.md) | Async Execution | 3-4 hrs | Pending |
|
||||
|
||||
**Phase 4 Deliverables:**
|
||||
- `:remsh node@host` connects to running nodes
|
||||
- `:async yes` for non-blocking execution
|
||||
|
||||
## Implementation Order
|
||||
|
||||
```
|
||||
Phase 1 (Must complete in order)
|
||||
├── 01-project-setup
|
||||
├── 02-basic-execution
|
||||
├── 03-variable-injection
|
||||
├── 04-error-handling
|
||||
├── 05-result-formatting
|
||||
└── 06-test-suite
|
||||
|
||||
Phase 2 (After Phase 1)
|
||||
└── 07-session-support
|
||||
|
||||
Phase 3 (After Phase 1, can parallel with Phase 2)
|
||||
└── 08-mix-project-support
|
||||
|
||||
Phase 4 (After relevant dependencies)
|
||||
├── 09-remote-shell (after 07)
|
||||
└── 10-async-execution (after Phase 1)
|
||||
```
|
||||
|
||||
## Time Estimates
|
||||
|
||||
| Phase | Estimated Time |
|
||||
|-------|----------------|
|
||||
| Phase 1 | 8-12 hours |
|
||||
| Phase 2 | 3-4 hours |
|
||||
| Phase 3 | 2-3 hours |
|
||||
| Phase 4 | 5-7 hours |
|
||||
| **Total** | **18-26 hours** |
|
||||
|
||||
## Getting Started
|
||||
|
||||
1. Start with [Task 01: Project Setup](01-project-setup.md)
|
||||
2. Complete Phase 1 tasks in order
|
||||
3. Phases 2-4 can be done based on your priorities
|
||||
|
||||
## Task Template
|
||||
|
||||
Each task file includes:
|
||||
|
||||
- **Objective**: What the task accomplishes
|
||||
- **Prerequisites**: What must be done first
|
||||
- **Steps**: Detailed implementation steps with code
|
||||
- **Tests**: Test cases to verify the implementation
|
||||
- **Acceptance Criteria**: Checklist of requirements
|
||||
- **Troubleshooting**: Common issues and solutions
|
||||
|
||||
## Testing
|
||||
|
||||
Run tests after each task:
|
||||
|
||||
```bash
|
||||
make test
|
||||
```
|
||||
|
||||
For integration tests with org-mode:
|
||||
|
||||
```bash
|
||||
make test-integration
|
||||
```
|
||||
|
||||
## Documentation References
|
||||
|
||||
| Document | Content |
|
||||
|----------|---------|
|
||||
| [01-emacs-elisp-best-practices.md](../docs/01-emacs-elisp-best-practices.md) | Elisp conventions |
|
||||
| [02-testing-emacs-elisp.md](../docs/02-testing-emacs-elisp.md) | Testing strategies |
|
||||
| [03-org-babel-implementation-guide.md](../docs/03-org-babel-implementation-guide.md) | Org-babel internals |
|
||||
| [04-elixir-integration-strategies.md](../docs/04-elixir-integration-strategies.md) | Elixir execution |
|
||||
| [05-existing-implementations-analysis.md](../docs/05-existing-implementations-analysis.md) | Prior art analysis |
|
||||
Reference in New Issue
Block a user