|
| 1 | +# Contributing to Development |
| 2 | + |
| 3 | +Welcome to the ObjectOS development effort! This guide helps you understand how to contribute to the project's ongoing development. |
| 4 | + |
| 5 | +## Quick Links |
| 6 | + |
| 7 | +- **[Development Plan (Q1 2026)](./development-plan.md)** - Current quarter's detailed implementation roadmap |
| 8 | +- **[Architecture Guide](./architecture.md)** - System design and architectural principles |
| 9 | +- **[Security Guide](./security-guide.md)** - Security best practices and guidelines |
| 10 | + |
| 11 | +## How to Get Involved |
| 12 | + |
| 13 | +### 1. Choose Your Area |
| 14 | + |
| 15 | +ObjectOS development is organized into several key areas: |
| 16 | + |
| 17 | +**🔐 Permission System** (High Priority) |
| 18 | +- Object-level permissions (CRUD) |
| 19 | +- Field-level security |
| 20 | +- Record-level security (RLS) |
| 21 | +- See: [Development Plan § 3.1-3.3](./development-plan.md#phase-1-permission-system-implementation-2-3-weeks) |
| 22 | + |
| 23 | +**🪝 Lifecycle Hooks** (High Priority) |
| 24 | +- Standard hooks implementation |
| 25 | +- Hook debugging tools |
| 26 | +- See: [Development Plan § 3.4-3.5](./development-plan.md#phase-2-lifecycle-hooks-system-1-2-weeks) |
| 27 | + |
| 28 | +**🔗 Relationship Fields** (High Priority) |
| 29 | +- Lookup fields (many-to-one) |
| 30 | +- Master-Detail relationships |
| 31 | +- Many-to-many relationships |
| 32 | +- See: [Development Plan § 3.6-3.8](./development-plan.md#phase-3-relationship-fields-implementation-2-3-weeks) |
| 33 | + |
| 34 | +**🧪 Testing & Quality** (Ongoing) |
| 35 | +- Unit tests (target: 90% Kernel, 80% Server, 70% UI) |
| 36 | +- Integration tests |
| 37 | +- E2E tests |
| 38 | +- See: [Development Plan § 3.9-3.11](./development-plan.md#phase-4-testing--documentation-ongoing) |
| 39 | + |
| 40 | +### 2. Understand the Standards |
| 41 | + |
| 42 | +Before contributing code, please review: |
| 43 | + |
| 44 | +- **[Architecture Principles](./architecture.md)** - Understand the kernel/driver/server separation |
| 45 | +- **[SDK Reference](./sdk-reference.md)** - Learn the ObjectOS API |
| 46 | +- **[Contributing Guide](../../CONTRIBUTING.md)** - Code style and workflow |
| 47 | + |
| 48 | +### 3. Set Up Your Environment |
| 49 | + |
| 50 | +```bash |
| 51 | +# Clone the repository |
| 52 | +git clone https://github.com/objectstack-ai/objectos.git |
| 53 | +cd objectos |
| 54 | + |
| 55 | +# Install dependencies |
| 56 | +pnpm install |
| 57 | + |
| 58 | +# Build all packages |
| 59 | +pnpm run build |
| 60 | + |
| 61 | +# Run tests |
| 62 | +pnpm run test |
| 63 | + |
| 64 | +# Start development server |
| 65 | +pnpm run dev |
| 66 | +``` |
| 67 | + |
| 68 | +### 4. Pick a Task |
| 69 | + |
| 70 | +Tasks are organized in the [Development Plan](./development-plan.md) with: |
| 71 | +- **Task Lists** - Specific implementation steps |
| 72 | +- **Acceptance Criteria** - What "done" looks like |
| 73 | +- **Estimated Time** - How long it should take |
| 74 | + |
| 75 | +Look for: |
| 76 | +- Tasks marked as high-priority |
| 77 | +- Tasks in the current week (see [Timeline](./development-plan.md#4-timeline--milestones)) |
| 78 | +- Tasks that match your skills and interests |
| 79 | + |
| 80 | +### 5. Submit Your Work |
| 81 | + |
| 82 | +1. **Create a feature branch** |
| 83 | + ```bash |
| 84 | + git checkout -b feature/permission-checker |
| 85 | + ``` |
| 86 | + |
| 87 | +2. **Implement the feature** |
| 88 | + - Follow the task list in the development plan |
| 89 | + - Write tests as you go (TDD recommended) |
| 90 | + - Add JSDoc comments for public APIs |
| 91 | + |
| 92 | +3. **Test thoroughly** |
| 93 | + ```bash |
| 94 | + # Run unit tests |
| 95 | + pnpm --filter @objectos/kernel test |
| 96 | + |
| 97 | + # Run integration tests |
| 98 | + pnpm --filter @objectos/server test |
| 99 | + |
| 100 | + # Check coverage |
| 101 | + pnpm run test --coverage |
| 102 | + ``` |
| 103 | + |
| 104 | +4. **Submit a pull request** |
| 105 | + - Reference the development plan section |
| 106 | + - Include before/after examples |
| 107 | + - Note any breaking changes |
| 108 | + - Request review from maintainers |
| 109 | + |
| 110 | +## Development Workflow |
| 111 | + |
| 112 | +### Weekly Cycle |
| 113 | + |
| 114 | +Each week follows this pattern: |
| 115 | + |
| 116 | +**Monday-Wednesday: Implementation** |
| 117 | +- Work on assigned tasks |
| 118 | +- Write tests alongside code |
| 119 | +- Document as you go |
| 120 | + |
| 121 | +**Thursday: Code Review** |
| 122 | +- Submit PRs for review |
| 123 | +- Review others' PRs |
| 124 | +- Address feedback |
| 125 | + |
| 126 | +**Friday: Integration** |
| 127 | +- Merge approved PRs |
| 128 | +- Update development plan status |
| 129 | +- Plan next week's tasks |
| 130 | + |
| 131 | +### Communication Channels |
| 132 | + |
| 133 | +- **GitHub Issues** - Bug reports and feature requests |
| 134 | +- **GitHub Discussions** - Questions and general discussion |
| 135 | +- **Pull Requests** - Code review and technical discussion |
| 136 | + |
| 137 | +## Quality Standards |
| 138 | + |
| 139 | +All contributions must meet these standards: |
| 140 | + |
| 141 | +### Code Quality |
| 142 | +- ✅ TypeScript strict mode enabled |
| 143 | +- ✅ No `any` types (use `unknown` with guards) |
| 144 | +- ✅ All public APIs have JSDoc comments |
| 145 | +- ✅ Consistent naming conventions (see [Contributing Guide](../../CONTRIBUTING.md)) |
| 146 | + |
| 147 | +### Test Coverage |
| 148 | +- ✅ Kernel: ≥ 90% coverage |
| 149 | +- ✅ Server: ≥ 80% coverage |
| 150 | +- ✅ UI: ≥ 70% coverage |
| 151 | +- ✅ All edge cases tested |
| 152 | + |
| 153 | +### Performance |
| 154 | +- ✅ API response time P95 < 100ms |
| 155 | +- ✅ Permission check overhead < 10ms |
| 156 | +- ✅ No N+1 queries in relationships |
| 157 | + |
| 158 | +### Documentation |
| 159 | +- ✅ README updated if behavior changes |
| 160 | +- ✅ Guide updated for new features |
| 161 | +- ✅ Migration notes for breaking changes |
| 162 | +- ✅ Examples provided for complex features |
| 163 | + |
| 164 | +## Current Priorities (Q1 2026) |
| 165 | + |
| 166 | +### Week 1-2: Permission System Foundation |
| 167 | +Focus on object-level and field-level permissions. This is the foundation for enterprise security. |
| 168 | + |
| 169 | +**Key Tasks:** |
| 170 | +- Implement `PermissionChecker` class |
| 171 | +- Add `PermissionGuard` to server |
| 172 | +- Create field visibility filters |
| 173 | + |
| 174 | +**Success Metrics:** |
| 175 | +- All CRUD operations check permissions |
| 176 | +- 95%+ test coverage |
| 177 | +- < 5ms permission check overhead |
| 178 | + |
| 179 | +### Week 3-4: RLS & Hooks |
| 180 | +Complete the permission system with record-level security, then move to lifecycle hooks. |
| 181 | + |
| 182 | +**Key Tasks:** |
| 183 | +- Implement `RLSInjector` |
| 184 | +- Complete `HookManager` |
| 185 | +- Add hook debugging tools |
| 186 | + |
| 187 | +**Success Metrics:** |
| 188 | +- Sharing rules work correctly |
| 189 | +- All 8 hook types functional |
| 190 | +- Hook execution traceable |
| 191 | + |
| 192 | +### Week 5-7: Relationships |
| 193 | +Implement full relationship support, the most complex feature set. |
| 194 | + |
| 195 | +**Key Tasks:** |
| 196 | +- Lookup field resolver |
| 197 | +- Master-Detail cascade delete |
| 198 | +- Many-to-many junction tables |
| 199 | + |
| 200 | +**Success Metrics:** |
| 201 | +- No N+1 queries |
| 202 | +- Cascade operations work |
| 203 | +- Related records query correctly |
| 204 | + |
| 205 | +## Getting Help |
| 206 | + |
| 207 | +### For Contributors |
| 208 | + |
| 209 | +**Not sure where to start?** |
| 210 | +- Look for issues labeled `good first issue` |
| 211 | +- Start with documentation improvements |
| 212 | +- Review the [Architecture Guide](./architecture.md) to understand the system |
| 213 | + |
| 214 | +**Stuck on implementation?** |
| 215 | +- Check the [Development Plan](./development-plan.md) for code examples |
| 216 | +- Review the [SDK Reference](./sdk-reference.md) |
| 217 | +- Ask in GitHub Discussions |
| 218 | + |
| 219 | +**Tests failing?** |
| 220 | +- Check the [Testing Guide](../../CONTRIBUTING.md#testing) |
| 221 | +- Look at existing tests for examples |
| 222 | +- Run tests in watch mode: `pnpm test --watch` |
| 223 | + |
| 224 | +### For Maintainers |
| 225 | + |
| 226 | +**Reviewing PRs?** |
| 227 | +- Check against acceptance criteria in development plan |
| 228 | +- Verify test coverage meets standards |
| 229 | +- Ensure documentation is updated |
| 230 | + |
| 231 | +**Planning next sprint?** |
| 232 | +- Review [Timeline & Milestones](./development-plan.md#4-timeline--milestones) |
| 233 | +- Assess completion status |
| 234 | +- Adjust priorities based on progress |
| 235 | + |
| 236 | +## Recognition |
| 237 | + |
| 238 | +Contributors who make significant progress on the development plan will be: |
| 239 | +- Listed in release notes |
| 240 | +- Acknowledged in documentation |
| 241 | +- Invited to join the core team |
| 242 | + |
| 243 | +Thank you for helping build the future of ObjectOS! 🚀 |
0 commit comments