docs: reconcile documentation with reality (P3)
Make the project's documentation match the code and remove the sprawl. The docs
claimed Phase 2.8 (drug interactions) was 'planning/0%' and the backend '~91%
complete' — both wrong: 2.8 is implemented and live, plus the P0/P1 security
and test work is done. Five root CI/CD docs described a 'docker-build' CI job
that was removed; ~18 backend/ status snapshots and ~24 docs/implementation
duplicates cluttered the tree.
Deletions (85 files):
- Root: 4 stale CI/CD reports (CI-CD-{COMPLETION-REPORT,IMPLEMENTATION-SUMMARY,
STATUS-REPORT,FINAL-STATUS}.md) — all describe the removed docker-build job.
- backend/: 18 phase/build/fix snapshots and code-dump .txt files.
- docs/: the 3 one-time reorg reports; ~17 docs/implementation duplicates and
process artifacts; 4 stale docs/development CI docs + git snapshots;
redundant deployment/testing files.
- thoughts/: STATUS.md (said Phase 2.4 in-progress), superseded phase notes and
duplicative research inputs. tmp/ (928KB of CI debug logs, gitignored).
Moves (18 files):
- 9 genuine decision records -> docs/adr/ (Architecture Decision Records),
date-prefixes stripped, with an index README.
- 8 historical-but-valuable phase plans/specs + the old CI-CD-FINAL-SOLUTION ->
docs/archive/ (now-populated, with a README explaining it's superseded
material). thoughts/ tree removed.
Rewrites (13 files) to match reality:
- Drop the fake '% complete' figures everywhere in favor of Implemented /
In-Progress / Planned with concrete endpoint/feature lists.
- Phase 2.8 -> Implemented; add /api/interactions/* and /api/auth/{refresh,
logout} to the endpoint lists; fix 'Rust 1.93' -> edition 2021.
- Add a Security section (token_version validation, hashed refresh-token
persistence, fail-fast config, real-IP audit) and correct the test-coverage
and deployment claims to reality.
- New canonical docs/development/CI-CD.md (4 jobs: format/clippy/build/test,
mongo service, no docker-build + why).
- README, docs/README, product/{STATUS,ROADMAP,PROGRESS,README,introduction},
implementation/README, development/README, testing/README, AI_AGENT_GUIDE,
.cursorrules, .gooserules all updated.
Verified: greps for 'Phase 2.8 (Planning)', 'PLANNING (0%)', 'Rust 1.93',
'91%/10%/85% complete', and 'docker-build' return nothing outside docs/archive;
all internal doc links resolve; backend/src untouched (cargo build clean).
This commit is contained in:
parent
bd1b7c2925
commit
17efc4f656
119 changed files with 469 additions and 17801 deletions
56
docs/development/CI-CD.md
Normal file
56
docs/development/CI-CD.md
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
# CI/CD Pipeline
|
||||
|
||||
The CI pipeline runs on **Forgejo Actions** and is defined in
|
||||
[`.forgejo/workflows/lint-and-build.yml`](../../.forgejo/workflows/lint-and-build.yml).
|
||||
|
||||
**Triggers**: push and pull request to `main` and `develop`.
|
||||
|
||||
## Jobs
|
||||
|
||||
Four jobs, each running in a `rust:latest` container on the `docker` runner:
|
||||
|
||||
| Job | Depends on | Command | Purpose |
|
||||
|-----|-----------|---------|---------|
|
||||
| `format` | — | `cargo fmt --all -- --check` | Strict formatting check (must pass) |
|
||||
| `clippy` | — | `cargo clippy --all-targets --all-features` | Lint (non-strict — warnings shown, don't fail) |
|
||||
| `build` | `format`, `clippy` | `cargo build --release` | Release build |
|
||||
| `test` | `format`, `clippy` | `cargo test --all-targets` | Unit + integration tests |
|
||||
|
||||
`format` and `clippy` run in parallel; `build` and `test` run after both pass.
|
||||
|
||||
### The `test` job
|
||||
|
||||
Integration tests need a live MongoDB, so the `test` job provisions a
|
||||
`mongo:7` **service container** and sets `MONGODB_URI=mongodb://mongo:27017`.
|
||||
The tests target an isolated per-run database and skip gracefully if Mongo is
|
||||
unreachable, so the job stays green even on runners that can't provide service
|
||||
containers.
|
||||
|
||||
## Docker builds are NOT in CI
|
||||
|
||||
There is deliberately **no `docker-build` job**. The Forgejo `act` runner creates
|
||||
isolated networks per job, which breaks every Docker-in-CI approach tried
|
||||
(socket mount, DinD, Buildx, direct host access). Docker images are built
|
||||
separately:
|
||||
|
||||
- **Locally**: `docker build -f backend/docker/Dockerfile backend/`
|
||||
- **On Solaria**: see [../deployment/](../deployment/DEPLOYMENT_GUIDE.md)
|
||||
|
||||
## Running CI checks locally
|
||||
|
||||
Use [`scripts/test-ci-locally.sh`](../../scripts/test-ci-locally.sh), which runs
|
||||
the same format/clippy/build/test sequence. For the integration tests it needs a
|
||||
reachable MongoDB:
|
||||
|
||||
```bash
|
||||
docker run -d -p 27017:27017 --name mongo-test mongo:7
|
||||
./scripts/test-ci-locally.sh
|
||||
```
|
||||
|
||||
## Dashboard
|
||||
|
||||
CI runs: `http://gitea.solivarez.com.ar/alvaro/normogen/actions`
|
||||
|
||||
---
|
||||
|
||||
*Last Updated: 2026-06-27*
|
||||
Loading…
Add table
Add a link
Reference in a new issue