ADORSYS-GIS / ADORSYS-GIS/converse-frontends
[Story]: Delete the Expo surface
- Ngôn ngữ chính
- TypeScript
- Star
- 0
- Fork
- 0
- Merge trung bình
- 1 giờ 49 phút
- Pull request đã merge (30 ngày)
- 253
Mô tả
## Story Statement
As a developer maintaining converse-frontends,
I want the retired Expo app and its Expo-only design system/tooling fully deleted from the repo,
so that I am not maintaining two design systems, two codec paths, and RN-only tooling for a surface
that ships nothing.
## Real Intent
ADR 0009 scheduled `apps/self-service` for deletion once the Next.js console reached parity, and
#258 already disabled its automatic image builds as an interim stopgap. Leaving the code in place
past that point is not neutral: every future refactor across `packages/hooks`, the design system,
and CI has to keep asking "does this still need to work for Expo too," which is exactly the kind of
drift ADR 0009 exists to end. Deleting the surface converts a stopgap into the actual, intended
end state.
## Background and Context
Today the repo carries two parallel UI stacks: `packages/ui` (Expo/React Native) feeding
`apps/self-service`, and `packages/ui-web` feeding `apps/console`. `packages/chart-core` has already
been extracted out of the Expo path, so no live package depends on `packages/ui` for charting.
`apps/self-service` also carries an nginx/`envsubst` runtime-config chain and an `EXPO_PUBLIC_*`
env-var surface that exist only to serve that app. None of this is exercised by CI in any way that
matters post-#258, since the image is never built automatically.
## Source of truth (links)
ADR 0009, Decision 1 and Follow-up 7: https://github.com/ADORSYS-GIS/converse-frontends/blob/main/docs/adr/0009-nextjs-console-replacement.md
#258 (image builds disabled): https://github.com/ADORSYS-GIS/converse-frontends/pull/258
## Acceptance Criteria
### Functional
- [ ] Given the repo after this story merges, when `git ls-files` is run, then `apps/self-service`
and `packages/ui` no longer appear.
- [ ] Given `packages/hooks` after this story merges, when its files are checked for importers
workspace-wide, then only code with live importers remains — the Expo-era client auth/query
layer is gone.
- [ ] Given the nginx/`envsubst` runtime-config chain and the `EXPO_PUBLIC_*` surface, when the repo
is grepped after this story merges, then neither remains.
### Negative / Edge Cases
- [ ] Given `packages/chart-core`, when `apps/self-service`/`packages/ui` are deleted, then
`packages/chart-core` and its console consumers are unaffected (it was already extracted).
- [ ] Given any workspace manifest (`pnpm-workspace.yaml`, root `package.json`), when the deleted
packages are removed, then no dangling workspace reference remains.
### Non-Functional
- [ ] `pnpm build` and the full test suite are green with both `apps/self-service` and
`packages/ui` gone.
## Out of Scope
Re-pointing the release pipeline (Helm chart, `docker-image.yml`, Storybook filter) at
`apps/console` — tracked in Story 5.2. Any new console feature work.
## Dependencies and Blockers
None. #258 already disabled automatic image builds, so this deletion cannot regress a currently
shipping release.
## Assumptions
- `packages/chart-core` is fully extracted from the Expo path and nothing else in the workspace
still imports `packages/ui` — must be confirmed by a full workspace grep before the deletion PR,
not assumed from ADR text alone.
- No external consumer still depends on the Expo app build — confirm with the delivery owner before
merging the deletion ticket.
## Implementation Notes
Suggested order: prune `packages/hooks` first (smaller, lower-risk, proves nothing outside Expo
depends on that layer), then delete `apps/self-service`/`packages/ui` in one pass including the
nginx/`envsubst` chain and `EXPO_PUBLIC_*` surface. Use `git mv`/`git rm` to preserve history where
relevant. This is guidance, not a mandate — the implementing engineer may sequence differently if a
safer path exists.
## Test Expectations
- `pnpm build` across the full workspace after each deletion step.
- Full test suite (`pnpm test` or repo equivalent) green after both tickets.
- A workspace-wide grep for `apps/self-service`, `packages/ui` (the deleted one, not `ui-web`), and
`EXPO_PUBLIC_` returning zero hits outside changelogs/ADR history.
## Verification evidence
To be filled in by the implementing engineer at delivery time: build/test command output, grep
output showing zero dangling references, and confirmation from the delivery owner that no external
consumer depends on the Expo build.
## Human accountable owner
@stephane-segning
## AI Usage Declaration
- Ticket decomposition
## Human verification completed
- [ ] I checked the story against the source of truth
- [ ] I confirmed the acceptance criteria
- [ ] I reviewed the implementation approach
- [ ] I verified generated code manually
- [ ] I verified generated tests manually
- [ ] I removed or corrected unsupported AI claims
- [ ] I am the accountable owner and accept responsibility for this story.
Hướng dẫn đóng góp
Hướng nghiên cứu
Start with docs/adr/0009-nextjs-console-replacement.md, then run a workspace-wide grep for apps/self-service, packages/ui, and EXPO_PUBLIC_. Review pnpm-workspace.yaml, the root package.json, packages/hooks, apps/self-service, and packages/ui before checking importers and external delivery dependencies. Done means the Expo paths and runtime-config chain are gone without dangling workspace references, and pnpm build plus pnpm test pass.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- next.js, react-native, typescript
- Lĩnh vực
- build-system, ci-cd, frontend
- Loại issue
- Tái cấu trúc
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức độ hoạt động
- Sôi nổi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức phù hợp với người mới
- 35/100