ADORSYS-GIS / ADORSYS-GIS/converse-frontends

[Story]: Delete the Expo surface

Đang mở
#280 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
user-story
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

Mở 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

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.