Skip to content

Commit cff8111

Browse files
committed
docs: note release checklist with make release-check
1 parent 3878d97 commit cff8111

1 file changed

Lines changed: 14 additions & 7 deletions

File tree

README.md

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# FX Risk Calculator
1+
# FX Risk Calculator
22

33
![Coverage](coverage.svg)
44

@@ -49,7 +49,7 @@ blueprints.
4949
```bash
5050
flask --app app.cli.seed_demo seed-demo
5151
```
52-
This command is idempotent and will recreate the “Global Book (USD) sample positions when needed.
52+
This command is idempotent and will recreate the “Global Book (USD)” sample positions when needed.
5353
- Generate a sample portfolio (~2k positions) and verify latency budgets with:
5454
```bash
5555
python scripts/perf_sanity_check.py --reset
@@ -132,7 +132,7 @@ Scheduler uses APScheduler; disable it via `SCHEDULER_ENABLED=false` or adjust c
132132
### Postman Collection
133133
- Import `postman/fx-risk-calculator.postman_collection.json` for a curated set of health, portfolio, position, rates, and metrics requests.
134134
- Pair it with the environment file `postman/fx-risk-calculator.postman_environment.json` to populate `{{baseUrl}}`, `{{portfolioId}}`, and other reusable variables.
135-
- Run “Create Portfolio” first to set `portfolioId`, then create positions before issuing metrics calls. Use the manual refresh request to pull fresh rates when needed.
135+
- Run “Create Portfolio” first to set `portfolioId`, then create positions before issuing metrics calls. Use the manual refresh request to pull fresh rates when needed.
136136

137137
## Portfolio API
138138
- `GET /api/v1/portfolios?page=<page>&page_size=<limit>` lists portfolios with pagination metadata.
@@ -250,15 +250,22 @@ Validation rules:
250250

251251
Use `python scripts/perf_sanity_check.py` to seed a ~2k-position dataset and print latency numbers for the main portfolio metrics endpoints. See `docs/performance.md` for sample output and interpretation guidelines.
252252

253+
### Release Checklist
254+
255+
1. `make release-check` ? runs lint, type checks, test suite, and a quick `/health` smoke test.
256+
2. `flask --app app.cli.seed_demo seed-demo` to pre-load the demo portfolio before recording or demoing.
257+
3. Start the server (`python run.py`) and verify the dashboard at http://127.0.0.1:5000#/dashboard renders charts with the seeded data.
258+
4. Optionally export fresh Postman results for the release notes.
259+
253260
## Troubleshooting
254-
- **`sqlite3.OperationalError: no such table`** run `alembic upgrade head` to
261+
- **`sqlite3.OperationalError: no such table`** – run `alembic upgrade head` to
255262
apply migrations before starting the app or executing CLI commands.
256-
- **Provider timeouts** double-check internet connectivity and increase
263+
- **Provider timeouts** – double-check internet connectivity and increase
257264
`REQUEST_TIMEOUT_SECONDS` if your network is slow. Enable a fallback provider
258265
to improve resilience when the primary is down.
259-
- **Repeated 429 on `/rates/refresh`** the throttle is still active. Either wait
266+
- **Repeated 429 on `/rates/refresh`** – the throttle is still active. Either wait
260267
for the window to elapse or lower `REFRESH_THROTTLE_SECONDS` for development.
261-
- **CORS preflight failures** set `CORS_ALLOWED_ORIGINS` (and related headers)
268+
- **CORS preflight failures** – set `CORS_ALLOWED_ORIGINS` (and related headers)
262269
to include your frontend dev origin before reloading the app.
263270

264271
### Docker Compose

0 commit comments

Comments
 (0)