From 900f1a6f5ad80d7f8f917fdd9ae18d9d3d7124db Mon Sep 17 00:00:00 2001 From: Artur Shiriev Date: Mon, 19 Oct 2026 20:21:18 +0300 Subject: [PATCH 1/2] docs(standard): run floors locally before raising a dependency floor --- docs/standard.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/standard.md b/docs/standard.md index 76628d3..64313df 100644 --- a/docs/standard.md +++ b/docs/standard.md @@ -260,6 +260,16 @@ scheduled `pytest` already catches the newest releases, which are what users ins transitive dependencies at their newest exposes a pull request to an upstream release it did not cause, but `install` upgrades the lockfile ([JF1](#JF1)), so `pytest` carries the same exposure. +Before pushing a change that raises a dependency floor, the author SHOULD run both steps locally on +the floor Python and the newest. If the new floor needs a newer version of another direct dependency +than the repo declares, the compile step fails to resolve. Raise that dependency's floor to the +version required. + +*Why:* both modern-di 4 bumps failed this way. `modern-di-typer` 4 requires `typer>=0.26`, and +`typer` 0.26 requires `rich>=13.8`. Both repos declared a lower `typer` floor, and `semvertag` a +lower `rich` one ([semvertag#104](https://github.com/modern-python/semvertag/pull/104), +[release-scope#45](https://github.com/modern-python/release-scope/pull/45)). + ### CI7 · `links` job { #CI7 } The `links` job MUST run [lychee](https://github.com/lycheeverse/lychee-action) with `--offline`, From 1d7360e94432d015301ed4e93833b88cd7d1f569 Mon Sep 17 00:00:00 2001 From: Artur Shiriev Date: Mon, 19 Oct 2026 20:28:54 +0300 Subject: [PATCH 2/2] docs(standard): make the floors-on-bump rationale generic --- docs/standard.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/docs/standard.md b/docs/standard.md index 64313df..9f20a7c 100644 --- a/docs/standard.md +++ b/docs/standard.md @@ -265,10 +265,8 @@ the floor Python and the newest. If the new floor needs a newer version of anoth than the repo declares, the compile step fails to resolve. Raise that dependency's floor to the version required. -*Why:* both modern-di 4 bumps failed this way. `modern-di-typer` 4 requires `typer>=0.26`, and -`typer` 0.26 requires `rich>=13.8`. Both repos declared a lower `typer` floor, and `semvertag` a -lower `rich` one ([semvertag#104](https://github.com/modern-python/semvertag/pull/104), -[release-scope#45](https://github.com/modern-python/release-scope/pull/45)). +*Why:* a new floor's own requirements can sit above another direct floor. `pytest` resolves every +dependency at its newest and never meets the conflict, so only this job catches it. ### CI7 · `links` job { #CI7 }