docs(adr): compress to 2 records in the domain-modeling format - #50
Merged
Merged
Conversation
Both records pass the admission test, so nothing was dropped and nothing was merged; each is rewritten from the sectioned form into one paragraph. The revisit triggers survive as the closing clause of each paragraph, where they are the real boundary of the decision. Numbering, slugs and the two citations are unchanged.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rewrites
docs/adr/from 2 records (589 words) to 2 (332 words), one paragraph each, in the shape/domain-modeling's ADR format asks for. No record was dropped and none was merged, so the numbering,the slugs and both citations are unchanged. Same treatment as modern-python/compose2pod#102.
Evaluation
Each record was tested against the admission test: hard to reverse, surprising without context, the
result of a real trade-off.
DB_RETRY_RETRIES_NUMBERis the library's whole configuration surface and the per-call re-read is a contract deployments depend on, so it is hard to reverse, and a one-functionsettingsmodule is exactly the thing a reader would "fix".What changed in each is the form, not the ruling: the
**Decision:**lead, the review narrative andthe
**Revisit trigger:**section are gone. Each revisit trigger survives as the paragraph's closingclause, because in both cases it is the real boundary of the decision (a second source for the retry
default; a second axis asyncpg's class hierarchy does not encode).
Citations
No citation moved.
tests/test_retry.pycitesdocs/adr/0001-retry-default-stays-env-configured.mdfrom the
INVARIANT:docstring ontest_the_default_attempt_count_is_re_read_on_every_call, anddocs/agents/domain.mdnamesADR-0001in its conflict-flagging example and lists both filenames inits tree sketch. All three still resolve. The repo-wide sweep finds no reference to a number that no
longer exists.
Stale claims
None. Every concrete claim was re-checked against the code and all of them hold:
settings.pyisstill one line with one caller, the default is still read inside
wrapped_methodon every call andstill defaults to
3,RETRIABLE_ASYNCPG_ERRORSis still a flat tuple behind a singleisinstance,and asyncpg 0.31.0 still carries
40001/08000/08003/40003on the classes the recordsname, with
ConnectionDoesNotExistErrorstill a subclass ofPostgresConnectionError. Two claimswere made more precise rather than corrected: the
isinstanceis named as the one in_is_retriable_link(is_retriableitself walks the__cause__/__context__chain around it),and the executed rationale is pointed at
tests/test_retriable.pyby path.Gates
pytest -q tests/test_adr_citations.py: 7 passed.pytest -qagainst a throwaway PostgreSQL container pointed at byDB_DSN: 40 passed.Nothing was skipped; without
DB_DSNthe connection, retry and transaction tests error out, whichis why the container was started.
ruff format --check(24 files already formatted),ruff check --no-fix(clean),eof-fixer . --check(clean). No Python was touched.lychee --offline --no-progressover both records plusCONTEXT.mdandAGENTS.md: 2 links, 2 OK,0 errors.