From 99b2e622a8a88e48ec918764d07c9489329b7e97 Mon Sep 17 00:00:00 2001 From: Artur Shiriev Date: Fri, 16 Oct 2026 18:35:38 +0300 Subject: [PATCH] docs: drop chat-app from the org profile and site --- docs/index.md | 1 - profile/README.md | 1 - tests/test_profile.py | 6 +++--- tests/test_site.py | 4 ++-- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/docs/index.md b/docs/index.md index 0500809..159388c 100644 --- a/docs/index.md +++ b/docs/index.md @@ -93,7 +93,6 @@ Every project is built with the same tooling - [`fastapi-sqlalchemy-template`](https://github.com/modern-python/fastapi-sqlalchemy-template): Dockerized FastAPI + SQLAlchemy 2 + PostgreSQL app template with DI - [`litestar-sqlalchemy-template`](https://github.com/modern-python/litestar-sqlalchemy-template): Dockerized Litestar + SQLAlchemy 2 + PostgreSQL app template with DI -- [`chat-app`](https://github.com/modern-python/chat-app): Reference chat application for the modern-python organisation ## Dependency injection { #di } diff --git a/profile/README.md b/profile/README.md index 5bcb3aa..82eb42a 100644 --- a/profile/README.md +++ b/profile/README.md @@ -18,7 +18,6 @@ Open-source templates and libraries for building production-ready Python applica |---|---|---| | [`fastapi-sqlalchemy-template`](https://github.com/modern-python/fastapi-sqlalchemy-template) | Dockerized FastAPI + SQLAlchemy 2 + PostgreSQL app template with DI | [![Stars](https://img.shields.io/github/stars/modern-python/fastapi-sqlalchemy-template)](https://github.com/modern-python/fastapi-sqlalchemy-template/stargazers) | | [`litestar-sqlalchemy-template`](https://github.com/modern-python/litestar-sqlalchemy-template) | Dockerized Litestar + SQLAlchemy 2 + PostgreSQL app template with DI | [![Stars](https://img.shields.io/github/stars/modern-python/litestar-sqlalchemy-template)](https://github.com/modern-python/litestar-sqlalchemy-template/stargazers) | -| [`chat-app`](https://github.com/modern-python/chat-app) | Reference chat application for the modern-python organisation | [![Stars](https://img.shields.io/github/stars/modern-python/chat-app)](https://github.com/modern-python/chat-app/stargazers) | ### Dependency injection diff --git a/tests/test_profile.py b/tests/test_profile.py index f575673..76f17d4 100644 --- a/tests/test_profile.py +++ b/tests/test_profile.py @@ -18,17 +18,17 @@ def _repos(section: str) -> list[str]: def test_every_listed_project_mark_has_a_profile_row() -> None: """INVARIANT: the repos listed in `profile/README.md` are exactly the repos in - `projects.py::MANIFEST` minus the `modern-di-*` integrations. + `projects.py::MANIFEST` minus the `modern-di-*` integrations and `chat-app`. They are the two halves of one act — a repo joins the org by getting a mark and a profile row — but nothing links them, so adding, renaming, or unpublishing a repo updates one and silently leaves the other behind. The failure is invisible: a mark nobody links to, or a row whose banner 404s. Integrations keep their marks, because their READMEs load the lockups from this repo, but are listed only on the modern-di - docs site. + docs site. `chat-app` keeps its mark but is not listed. """ listed = {repo for section in _sections().values() for repo in _repos(section)} - assert listed == {repo for repo in p.MANIFEST if not repo.startswith("modern-di-")} + assert listed == {repo for repo in p.MANIFEST if not repo.startswith("modern-di-") and repo != "chat-app"} def test_di_table_lists_only_the_two_frameworks() -> None: diff --git a/tests/test_site.py b/tests/test_site.py index 718fb65..6a5a902 100644 --- a/tests/test_site.py +++ b/tests/test_site.py @@ -19,7 +19,7 @@ def test_home_page_supplies_its_own_h1() -> None: def test_every_listed_project_mark_has_a_site_entry() -> None: """INVARIANT: the repos in the org site's project lists are exactly the repos in - `projects.py::MANIFEST` minus the `modern-di-*` integrations. + `projects.py::MANIFEST` minus the `modern-di-*` integrations and `chat-app`. It is the site's half of the profile-row invariant. A hand-kept list of expected repos drifts the same way the page does, so a repo added to the org and the profile @@ -32,4 +32,4 @@ def test_every_listed_project_mark_has_a_site_entry() -> None: flags=re.M, ) ) - assert listed == {repo for repo in p.MANIFEST if not repo.startswith("modern-di-")} + assert listed == {repo for repo in p.MANIFEST if not repo.startswith("modern-di-") and repo != "chat-app"}