update roadmap: adjust platform expansion milestones for iOS/Desktop
This commit is contained in:
parent
196a7162ee
commit
7206921a8e
7 changed files with 172 additions and 172 deletions
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
## 전체 목표
|
||||
|
||||
여러 Flutter 프로젝트에서 공통으로 사용할 수 있는 Mattermost 알림 기반 플러그인을 만든다. 이 플러그인은 소비 프로젝트의 인증, 라우팅, UI에 과도하게 결합되지 않으면서 Android push runtime을 안정적으로 제공하고, 자체 `example/` 테스트 하네스와 자동/수동 검증 체계로 기능 신뢰도를 유지한다.
|
||||
여러 Flutter 프로젝트에서 공통으로 사용할 수 있는 Mattermost 알림 기반 플러그인을 만든다. 이 플러그인은 소비 프로젝트의 인증, 라우팅, UI에 과도하게 결합되지 않으면서 Android push runtime을 먼저 안정화하고, 같은 검증 기준을 바탕으로 iOS/Desktop runtime까지 확장한다.
|
||||
|
||||
## Phase 흐름
|
||||
|
||||
|
|
@ -19,9 +19,9 @@
|
|||
- [계획] 소비 프로젝트 도입 안정화
|
||||
- 경로: `agent-ops/roadmap/phase/consumer-adoption/PHASE.md`
|
||||
- 요약: 여러 프로젝트가 같은 플러그인을 예측 가능하게 설치, 설정, 업그레이드할 수 있는 도입 계약을 정리한다.
|
||||
- [계획] 플랫폼 확장 판단
|
||||
- [계획] iOS/Desktop 플랫폼 확장
|
||||
- 경로: `agent-ops/roadmap/phase/platform-expansion/PHASE.md`
|
||||
- 요약: 현재 stub 상태인 iOS/macOS를 어떤 수준까지 지원할지 결정하고, 확장 시 필요한 parity 기준을 정의한다.
|
||||
- 요약: Android 안정화 이후 iOS와 Desktop runtime으로 확장하기 위한 범위, 순서, parity 기준을 정의한다.
|
||||
|
||||
## 로딩 정책
|
||||
|
||||
|
|
|
|||
|
|
@ -81,5 +81,5 @@
|
|||
- 관련 경로: `pubspec.yaml`, `CHANGELOG.md`, `README.md`, `.github/**`
|
||||
- 표준선(선택): 배포 채널이 결정되기 전에는 Git tag와 changelog 중심의 보수적 운영을 가정한다
|
||||
- 선행 작업: 통합 계약 문서화
|
||||
- 후속 작업: 플랫폼 확장 판단
|
||||
- 후속 작업: iOS/Desktop 플랫폼 확장
|
||||
- 확인 필요: 배포 방식, versioning 정책
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Phase: 플랫폼 확장 판단
|
||||
# Phase: iOS/Desktop 플랫폼 확장
|
||||
|
||||
## 상태
|
||||
|
||||
|
|
@ -6,22 +6,22 @@
|
|||
|
||||
## 목표
|
||||
|
||||
현재 scaffold 상태인 iOS와 macOS 지원 범위를 명확히 결정한다. Android 전용 플러그인으로 안정화할지, Apple platform도 단계적으로 runtime parity를 맞출지 판단하고 필요한 기준을 문서화한다.
|
||||
Android runtime 안정화 이후 iOS와 Desktop runtime으로 확장한다. 현재 scaffold 상태인 iOS/macOS를 출발점으로 삼되, Desktop 범위가 macOS만인지 Windows/Linux까지 포함하는지 정리하고 Android에서 세운 알림 계약과 테스트 기준을 platform별로 이식한다.
|
||||
|
||||
## Milestone 흐름
|
||||
|
||||
완료된 Milestone은 archive 경로를 가리키고, 검토중, 진행중, 계획 또는 보류 Milestone은 이 Phase 하위 `milestones/` 경로를 가리킨다.
|
||||
완료, 검토중, 진행중, 계획 순서로 두어 아래로 갈수록 미래 작업에 가까워지게 정렬한다.
|
||||
|
||||
- [계획] Apple 플랫폼 지원 결정
|
||||
- 경로: `agent-ops/roadmap/phase/platform-expansion/milestones/apple-platform-decision.md`
|
||||
- 요약: iOS/macOS를 stub으로 유지할지, 제한 지원할지, Android와 parity를 맞출지 결정한다.
|
||||
- [계획] Apple 런타임 parity 기준
|
||||
- 경로: `agent-ops/roadmap/phase/platform-expansion/milestones/apple-runtime-parity.md`
|
||||
- 요약: Apple platform 구현을 시작할 경우 필요한 API, native capability, 테스트 기준을 정의한다.
|
||||
- [계획] iOS/Desktop 확장 범위 정렬
|
||||
- 경로: `agent-ops/roadmap/phase/platform-expansion/milestones/ios-desktop-expansion-scope.md`
|
||||
- 요약: Android 안정화 이후 iOS와 Desktop으로 확장할 범위, 순서, platform별 책임 경계를 정리한다.
|
||||
- [계획] iOS/Desktop 런타임 parity 기준
|
||||
- 경로: `agent-ops/roadmap/phase/platform-expansion/milestones/ios-desktop-runtime-parity.md`
|
||||
- 요약: iOS/Desktop runtime 구현에 필요한 API, native capability, 테스트 기준을 정의한다.
|
||||
|
||||
## Phase 경계
|
||||
|
||||
- 이 Phase는 Android 안정화 이후에 진행하는 미래 계획으로 둔다.
|
||||
- iOS/macOS에서 구현되지 않은 기능을 Dart public API가 성공한 것처럼 보이게 만들지 않는다.
|
||||
- Apple platform 범위는 제품 요구와 운영 비용을 함께 보고 결정한다.
|
||||
- 이 Phase는 Android 안정화 이후에 진행하는 확장 계획으로 둔다.
|
||||
- iOS/Desktop에서 아직 구현되지 않은 기능을 Dart public API가 성공한 것처럼 보이게 만들지 않는다.
|
||||
- Desktop은 우선 현재 scaffold가 있는 macOS를 기준으로 정리하되, Windows/Linux 지원 여부와 순서는 별도 결정 항목으로 남긴다.
|
||||
|
|
|
|||
|
|
@ -1,78 +0,0 @@
|
|||
# Milestone: Apple 플랫폼 지원 결정
|
||||
|
||||
## 위치
|
||||
|
||||
- Roadmap: `agent-ops/roadmap/ROADMAP.md`
|
||||
- Phase: `agent-ops/roadmap/phase/platform-expansion/PHASE.md`
|
||||
|
||||
## 목표
|
||||
|
||||
iOS와 macOS를 현재처럼 stub으로 유지할지, 제한 지원할지, Android와 기능 parity를 맞출지 결정한다. 지원 수준을 결정하지 않은 상태에서 public API가 Apple platform에서도 완전 동작한다고 오해되지 않게 한다.
|
||||
|
||||
## 상태
|
||||
|
||||
[계획]
|
||||
|
||||
## 구현 잠금
|
||||
|
||||
- 상태: 잠금
|
||||
- 결정 필요: 아래 체크리스트
|
||||
- [ ] iOS 지원이 실제 소비 프로젝트 요구사항인지 결정한다
|
||||
- [ ] macOS 지원이 실제 소비 프로젝트 요구사항인지 결정한다
|
||||
- [ ] Apple platform에서 push notification, signing, ACK, reply 중 어떤 기능 범위를 우선할지 결정한다
|
||||
|
||||
## 범위
|
||||
|
||||
- 현재 iOS/macOS scaffold 상태 점검
|
||||
- Apple platform support matrix 정리
|
||||
- Android-only 제약의 public documentation 보강
|
||||
- 구현 시작 전 요구사항과 운영 비용 판단
|
||||
|
||||
## 필수 기능
|
||||
|
||||
### Epic: [decision] 지원 수준 결정
|
||||
|
||||
Apple platform을 어떤 수준으로 다룰지 결정한다.
|
||||
|
||||
- [ ] [ios-need] iOS 지원 필요성을 확인한다
|
||||
- [ ] [macos-need] macOS 지원 필요성을 확인한다
|
||||
- [ ] [support-level] stub, limited, parity 중 지원 수준을 결정한다
|
||||
|
||||
### Epic: [docs] 제약 문서화
|
||||
|
||||
결정 전후로 소비 프로젝트가 platform 상태를 오해하지 않게 한다.
|
||||
|
||||
- [ ] [matrix] README platform status를 최신 결정과 맞춘다
|
||||
- [ ] [api-behavior] unsupported platform에서 public API가 보이는 동작을 문서화한다
|
||||
- [ ] [risk] Apple platform 미지원으로 인한 소비 프로젝트 위험을 정리한다
|
||||
|
||||
## 완료 기준
|
||||
|
||||
- [ ] iOS 지원 여부와 범위가 결정되어 있다
|
||||
- [ ] macOS 지원 여부와 범위가 결정되어 있다
|
||||
- [ ] README와 roadmap에 Apple platform 상태가 일관되게 표현되어 있다
|
||||
- [ ] 결정된 지원 수준에 따라 후속 Milestone이 유지, 수정, 또는 폐기된다
|
||||
|
||||
## 완료 리뷰
|
||||
|
||||
- 상태: 없음
|
||||
- 요청일: 없음
|
||||
- 완료 근거: 없음
|
||||
- 리뷰 필요:
|
||||
- [ ] 사용자가 완료 결과를 확인했다
|
||||
- [ ] archive 이동을 승인했다
|
||||
- 리뷰 코멘트: 없음
|
||||
|
||||
## 범위 제외
|
||||
|
||||
- Apple native push runtime 구현
|
||||
- APNs 인증서 또는 provisioning 설정
|
||||
- Android runtime 변경
|
||||
|
||||
## 작업 컨텍스트
|
||||
|
||||
- 관련 경로: `ios/**`, `macos/**`, `README.md`, `pubspec.yaml`
|
||||
- 표준선(선택): 결정 전까지 iOS/macOS는 명시적인 stub으로 유지한다
|
||||
- 선행 작업: 소비 프로젝트 도입 안정화
|
||||
- 후속 작업: Apple 런타임 parity 기준
|
||||
- 확인 필요: iOS/macOS 실제 지원 요구와 우선순위
|
||||
|
|
@ -1,79 +0,0 @@
|
|||
# Milestone: Apple 런타임 parity 기준
|
||||
|
||||
## 위치
|
||||
|
||||
- Roadmap: `agent-ops/roadmap/ROADMAP.md`
|
||||
- Phase: `agent-ops/roadmap/phase/platform-expansion/PHASE.md`
|
||||
|
||||
## 목표
|
||||
|
||||
Apple platform 구현을 시작하기로 결정된 경우 필요한 capability와 테스트 기준을 정의한다. Android와 동일해야 하는 계약과 Apple platform 특성 때문에 다르게 가야 하는 계약을 구분한다.
|
||||
|
||||
## 상태
|
||||
|
||||
[계획]
|
||||
|
||||
## 구현 잠금
|
||||
|
||||
- 상태: 잠금
|
||||
- 결정 필요: 아래 체크리스트
|
||||
- [ ] Apple 플랫폼 지원 결정 Milestone에서 limited 또는 parity 지원이 승인되어야 한다
|
||||
- [ ] APNs 기반 push와 Mattermost payload 처리 범위를 결정해야 한다
|
||||
|
||||
## 범위
|
||||
|
||||
- iOS/macOS native runtime capability mapping
|
||||
- Dart API platform behavior 기준
|
||||
- APNs, notification tap, ACK, token registration 테스트 기준
|
||||
- Apple platform에서 불가능하거나 다르게 처리해야 하는 기능 식별
|
||||
|
||||
## 필수 기능
|
||||
|
||||
### Epic: [capability] Capability Mapping
|
||||
|
||||
Android runtime 기능을 Apple platform 기준으로 재분류한다.
|
||||
|
||||
- [ ] [push] APNs 수신과 payload 처리 가능 범위를 정의한다
|
||||
- [ ] [token] device token format과 registration 기준을 정의한다
|
||||
- [ ] [notification] notification display와 tap handling 기준을 정의한다
|
||||
- [ ] [ack] ACK delivery 가능 범위를 정의한다
|
||||
- [ ] [reply] inline reply 가능 여부와 대체 정책을 정의한다
|
||||
|
||||
### Epic: [tests] 테스트 기준
|
||||
|
||||
Apple platform 구현을 검증할 방법을 정한다.
|
||||
|
||||
- [ ] [unit] Swift unit test 범위를 정한다
|
||||
- [ ] [integration] Flutter integration test 범위를 정한다
|
||||
- [ ] [manual] 실제 APNs가 필요한 manual smoke 범위를 정한다
|
||||
|
||||
## 완료 기준
|
||||
|
||||
- [ ] Apple platform 기능별 parity 여부가 표로 정리되어 있다
|
||||
- [ ] Dart API가 platform별로 어떤 동작을 보장하는지 문서화되어 있다
|
||||
- [ ] Apple runtime 구현 전 필요한 테스트 기준이 명확하다
|
||||
- [ ] 지원하지 않을 기능은 unsupported behavior로 명확히 표현되어 있다
|
||||
|
||||
## 완료 리뷰
|
||||
|
||||
- 상태: 없음
|
||||
- 요청일: 없음
|
||||
- 완료 근거: 없음
|
||||
- 리뷰 필요:
|
||||
- [ ] 사용자가 완료 결과를 확인했다
|
||||
- [ ] archive 이동을 승인했다
|
||||
- 리뷰 코멘트: 없음
|
||||
|
||||
## 범위 제외
|
||||
|
||||
- 실제 Apple runtime 구현
|
||||
- APNs 인증 인프라 구축
|
||||
- Android API breaking change
|
||||
|
||||
## 작업 컨텍스트
|
||||
|
||||
- 관련 경로: `ios/**`, `macos/**`, `lib/**`, `example/ios/**`, `example/macos/**`
|
||||
- 표준선(선택): Android의 public Dart API contract를 기준으로 삼되 Apple platform 특성상 다른 동작은 명시적으로 문서화한다
|
||||
- 선행 작업: Apple 플랫폼 지원 결정
|
||||
- 후속 작업: 없음
|
||||
- 확인 필요: Apple platform 지원 승인, APNs 처리 범위
|
||||
|
|
@ -0,0 +1,78 @@
|
|||
# Milestone: iOS/Desktop 확장 범위 정렬
|
||||
|
||||
## 위치
|
||||
|
||||
- Roadmap: `agent-ops/roadmap/ROADMAP.md`
|
||||
- Phase: `agent-ops/roadmap/phase/platform-expansion/PHASE.md`
|
||||
|
||||
## 목표
|
||||
|
||||
Android runtime 안정화 이후 iOS와 Desktop으로 확장하기 위한 범위와 순서를 정리한다. iOS와 macOS는 현재 scaffold를 출발점으로 삼고, Desktop 범위에 Windows/Linux까지 포함할지 여부를 분리해 결정한다.
|
||||
|
||||
## 상태
|
||||
|
||||
[계획]
|
||||
|
||||
## 구현 잠금
|
||||
|
||||
- 상태: 잠금
|
||||
- 결정 필요: 아래 체크리스트
|
||||
- [ ] Desktop 1차 범위를 macOS로 한정할지, Windows/Linux까지 포함할지 결정한다
|
||||
- [ ] Android 안정화 완료 후 iOS와 Desktop 중 어떤 platform을 먼저 구현할지 결정한다
|
||||
- [ ] 각 platform에서 push notification, signing, ACK, reply 중 어떤 기능 범위를 1차로 구현할지 결정한다
|
||||
|
||||
## 범위
|
||||
|
||||
- 현재 iOS/macOS scaffold 상태 점검
|
||||
- Desktop platform 범위 정리
|
||||
- iOS/Desktop support matrix 정리
|
||||
- Android 안정화 이후 platform 확장 순서와 운영 비용 판단
|
||||
|
||||
## 필수 기능
|
||||
|
||||
### Epic: [scope] 확장 범위 정렬
|
||||
|
||||
iOS/Desktop 확장의 platform 범위와 구현 순서를 정렬한다.
|
||||
|
||||
- [ ] [ios-scope] iOS 1차 지원 범위를 정의한다
|
||||
- [ ] [desktop-scope] Desktop 1차 지원 범위가 macOS인지 Windows/Linux까지인지 정의한다
|
||||
- [ ] [rollout-order] Android 안정화 이후 iOS/Desktop 구현 순서를 정의한다
|
||||
|
||||
### Epic: [docs] 확장 상태 문서화
|
||||
|
||||
확장 전환 과정에서 소비 프로젝트가 platform 상태를 오해하지 않게 한다.
|
||||
|
||||
- [ ] [matrix] README platform status를 최신 결정과 맞춘다
|
||||
- [ ] [api-behavior] unsupported platform에서 public API가 보이는 동작을 문서화한다
|
||||
- [ ] [risk] platform별 미구현 기능과 소비 프로젝트 위험을 정리한다
|
||||
|
||||
## 완료 기준
|
||||
|
||||
- [ ] iOS 1차 지원 범위가 결정되어 있다
|
||||
- [ ] Desktop 1차 지원 범위와 platform 순서가 결정되어 있다
|
||||
- [ ] README와 roadmap에 iOS/Desktop 확장 방향이 일관되게 표현되어 있다
|
||||
- [ ] 결정된 범위에 따라 runtime parity Milestone의 세부 항목이 유지 또는 수정된다
|
||||
|
||||
## 완료 리뷰
|
||||
|
||||
- 상태: 없음
|
||||
- 요청일: 없음
|
||||
- 완료 근거: 없음
|
||||
- 리뷰 필요:
|
||||
- [ ] 사용자가 완료 결과를 확인했다
|
||||
- [ ] archive 이동을 승인했다
|
||||
- 리뷰 코멘트: 없음
|
||||
|
||||
## 범위 제외
|
||||
|
||||
- iOS/Desktop native push runtime 구현
|
||||
- APNs 인증서 또는 provisioning 설정
|
||||
- Android runtime 변경
|
||||
|
||||
## 작업 컨텍스트
|
||||
|
||||
- 관련 경로: `ios/**`, `macos/**`, `README.md`, `pubspec.yaml`
|
||||
- 표준선(선택): Android를 먼저 안정화한 뒤 iOS/Desktop으로 확장한다. 현재 구현 전까지 iOS/macOS는 명시적인 scaffold/stub 상태로 유지한다
|
||||
- 선행 작업: 소비 프로젝트 도입 안정화
|
||||
- 후속 작업: iOS/Desktop 런타임 parity 기준
|
||||
- 확인 필요: Desktop 1차 범위, iOS/Desktop 구현 순서, platform별 1차 기능 범위
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
# Milestone: iOS/Desktop 런타임 parity 기준
|
||||
|
||||
## 위치
|
||||
|
||||
- Roadmap: `agent-ops/roadmap/ROADMAP.md`
|
||||
- Phase: `agent-ops/roadmap/phase/platform-expansion/PHASE.md`
|
||||
|
||||
## 목표
|
||||
|
||||
iOS/Desktop runtime 구현에 필요한 capability와 테스트 기준을 정의한다. Android와 동일해야 하는 계약과 iOS/Desktop platform 특성 때문에 다르게 가야 하는 계약을 구분한다.
|
||||
|
||||
## 상태
|
||||
|
||||
[계획]
|
||||
|
||||
## 구현 잠금
|
||||
|
||||
- 상태: 잠금
|
||||
- 결정 필요: 아래 체크리스트
|
||||
- [ ] iOS/Desktop 확장 범위 정렬 Milestone에서 1차 platform 범위와 구현 순서가 결정되어야 한다
|
||||
- [ ] APNs와 Desktop notification 기반 push 처리 범위를 결정해야 한다
|
||||
|
||||
## 범위
|
||||
|
||||
- iOS/Desktop native runtime capability mapping
|
||||
- Dart API platform behavior 기준
|
||||
- APNs, Desktop notification, notification tap, ACK, token registration 테스트 기준
|
||||
- iOS/Desktop platform에서 불가능하거나 다르게 처리해야 하는 기능 식별
|
||||
|
||||
## 필수 기능
|
||||
|
||||
### Epic: [capability] Capability Mapping
|
||||
|
||||
Android runtime 기능을 iOS/Desktop 기준으로 재분류한다.
|
||||
|
||||
- [ ] [push] APNs/Desktop notification 수신과 payload 처리 가능 범위를 정의한다
|
||||
- [ ] [token] platform별 device token format과 registration 기준을 정의한다
|
||||
- [ ] [notification] platform별 notification display와 tap handling 기준을 정의한다
|
||||
- [ ] [ack] ACK delivery 가능 범위를 정의한다
|
||||
- [ ] [reply] inline reply 가능 여부와 대체 정책을 정의한다
|
||||
|
||||
### Epic: [tests] 테스트 기준
|
||||
|
||||
iOS/Desktop 구현을 검증할 방법을 정한다.
|
||||
|
||||
- [ ] [unit] Swift와 Desktop native unit test 범위를 정한다
|
||||
- [ ] [integration] iOS/Desktop Flutter integration test 범위를 정한다
|
||||
- [ ] [manual] 실제 APNs 또는 Desktop notification이 필요한 manual smoke 범위를 정한다
|
||||
|
||||
## 완료 기준
|
||||
|
||||
- [ ] iOS/Desktop 기능별 parity 여부가 표로 정리되어 있다
|
||||
- [ ] Dart API가 platform별로 어떤 동작을 보장하는지 문서화되어 있다
|
||||
- [ ] iOS/Desktop runtime 구현 전 필요한 테스트 기준이 명확하다
|
||||
- [ ] 지원하지 않을 기능은 unsupported behavior로 명확히 표현되어 있다
|
||||
|
||||
## 완료 리뷰
|
||||
|
||||
- 상태: 없음
|
||||
- 요청일: 없음
|
||||
- 완료 근거: 없음
|
||||
- 리뷰 필요:
|
||||
- [ ] 사용자가 완료 결과를 확인했다
|
||||
- [ ] archive 이동을 승인했다
|
||||
- 리뷰 코멘트: 없음
|
||||
|
||||
## 범위 제외
|
||||
|
||||
- 실제 iOS/Desktop runtime 구현
|
||||
- APNs 인증 인프라 구축
|
||||
- Android API breaking change
|
||||
|
||||
## 작업 컨텍스트
|
||||
|
||||
- 관련 경로: `ios/**`, `macos/**`, `lib/**`, `example/ios/**`, `example/macos/**`
|
||||
- 표준선(선택): Android의 public Dart API contract를 기준으로 삼되 iOS/Desktop platform 특성상 다른 동작은 명시적으로 문서화한다
|
||||
- 선행 작업: iOS/Desktop 확장 범위 정렬
|
||||
- 후속 작업: 없음
|
||||
- 확인 필요: iOS/Desktop 1차 platform 범위, APNs/Desktop notification 처리 범위
|
||||
Loading…
Reference in a new issue