Note the finished work under [Unreleased] and mark the task and its subtasks done; retarget the v1.0 coverage tasks at the surviving primitive module.
58 lines
3.1 KiB
Plaintext
58 lines
3.1 KiB
Plaintext
Tasks
|
|
|
|
Backlog and tracking for tiny-pattern-ts. Managed in vscode-todotasks format.
|
|
|
|
---
|
|
|
|
Setup:
|
|
☐ Split off template into separate package => pi --session 01a07dde-7050-7054-bb36-1606d7eb2bc3 @low
|
|
✔ straighten oxc rules @done
|
|
✔ oxc forbids ternary => remove oxc rule @done
|
|
✔ oxc wants comments to start comments with a capital letter => remove oxc rule @done
|
|
✔ there already exists a /* */ block comment in primitive.ts, => change to multi-line comment @done
|
|
|
|
✔ Remove example code files and its documentation and its exports from index.ts @high @done
|
|
✔ remove src/match.ts and its documentation @high @done
|
|
✔ remove src/pattern.ts and its documentation @high @done
|
|
✔ remove src/index.test.ts and its documentation @high @done
|
|
✔ exports from `src/index.ts` should only be the public API surface @done
|
|
|
|
|
|
v1.0:
|
|
☐ API surface is stable and fully typed
|
|
☐ Finalize public exports in `src/index.ts`
|
|
☐ Document all exported types and functions
|
|
☐ Add JSDoc for public APIs
|
|
☐ Test coverage meets threshold
|
|
☐ Achieve 100% branch coverage on `src/primitive.ts`
|
|
☐ Achieve 100% branch coverage on `src/index.ts`
|
|
|
|
Bugs:
|
|
|
|
Enhancements:
|
|
☐ Allow boolean literals in primitive union patterns (e.g. `true: () => "yes"`) @medium
|
|
☐ Are there other primitive types that should be supported in union patterns? (e.g. `bigint`, `symbol`) @medium
|
|
|
|
Documentation:
|
|
☐ Create `examples/` directory with runnable snippets
|
|
☐ Add comparison section vs. other TS pattern-matching libs in Readme.md
|
|
☐ Write migration guide for users coming from discriminated unions
|
|
☐ Create backlog tasks for implementation
|
|
☐ Validate code fences in Markdown (start with README.md) — compile the TypeScript examples against `src/` so the docs cannot drift from the API
|
|
|
|
Workflow:
|
|
✔ Resolve the finish/push tension: `create:finish` leaves `main` ahead of its upstream while `create:branch` refuses until `main` matches upstream — decide whether `finish` should push or `branch` should compare only `BEHIND` (see development/workflow.md) @done
|
|
|
|
Maintenance:
|
|
☐ Serve CI coverage over a tiny self-hosted webserver (replace the zip artifact) @low
|
|
☐ Explore serving coverage for non-tag pushes (e.g. `main/coverage`, PR previews) @low
|
|
→ design: no deploy step in CI; the webserver just exposes the shared directory (decided over Gitea Pages / Codecov — neither confirmed available/ wanted)
|
|
☐ serve docs over self hosted server @low
|
|
☐ Add a minimal dir-listing webserver to the gitea docker setup for serving docs (reuse existing reverse proxy)
|
|
☐ CI writes docs to a shared volume keyed by project + tag (e.g. `/docs/tiny-pattern-ts/<tag>/`)
|
|
☐ Browse to `…/docs/<repo>/<tag>/index.html` in the browser
|
|
☐ serve landing page over self hosted server @low
|
|
☐ Add a minimal dir-listing webserver to the gitea docker setup for serving landing page (reuse existing reverse proxy)
|
|
☐ CI writes landing page to a shared volume keyed by project + tag (e.g. `/landing/tiny-pattern-ts/<tag>/`)
|
|
☐ Browse to `…/tiny-pattern-ts/index.html` in the browser
|