Write down the project's goals, non-goals, and roadmap
Several decisions in here look like oversights until you know the reasoning: the curated model subset with everything else in `extra`, the still-generic `chart`, not retrying `POST`, the deliberate divergences from the official PHP SDK. That reasoning was spread across code comments and commit messages, where it is easy to miss and easy to "fix". GOALS.md states: - What the crate is for: complete coverage, and not quietly losing data, truncating results, or succeeding when it did not. - Seven goals, each tied to a decision visible in the code, so the rationale survives the next refactor. - Non-goals, including no sync API, no caching or ORM layer, no modelling of every field, and no retrying of non-idempotent requests. - Publication posture: on crates.io, pre-1.0, no stability promise, pin an exact version. MSRV may rise with dependencies. - A roadmap ordering the COVERAGE.md gaps by value over effort, starting with multipart uploads, which is the only thing blocking `create_document`. - Open questions, left open rather than papered over: whether auth routes belong here at all given they are a different auth model, whether per-chart types earn their keep, streaming for large exports, and the untested `Error::PaginationLimit`. README, COVERAGE.md, and CLAUDE.md link to it. No changelog entry: this adds no behaviour, per the rule in CLAUDE.md. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -2,6 +2,10 @@
|
||||
|
||||
What this crate wraps of the Invoice Ninja v5 API, and what it doesn't.
|
||||
|
||||
Full coverage is a stated goal, so the gaps below are a to-do list rather
|
||||
than a permanent boundary — [`GOALS.md`](GOALS.md) puts them in rough
|
||||
priority order.
|
||||
|
||||
Checked against `routes/api.php` on the `v5-stable` branch of the
|
||||
[invoiceninja repo](https://github.com/invoiceninja/invoiceninja), which
|
||||
declares 34 `Route::resource` groups and 274 explicit route declarations
|
||||
|
||||
Reference in New Issue
Block a user