From 2fccebbd1fe59fe2a7e358abb608c3c5bb25fb87 Mon Sep 17 00:00:00 2001 From: Kevin Veen-Birkenbach Date: Fri, 29 Aug 2025 18:11:53 +0200 Subject: [PATCH] Enforce uppercase README.md and TODO.md filenames MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Renamed all Readme.md → README.md - Renamed all Todo.md → TODO.md - Added integration test (tests/integration/test_filename_conventions.py) to automatically check naming convention. Background: Consistency in file naming (uppercase README.md and TODO.md) avoids issues with case-sensitive filesystems and ensures desktop cards (e.g. Pretix) are properly included. Ref: https://chatgpt.com/share/68b1d135-c688-800f-9441-46a3cbfee175 --- .github/workflows/{Todo.md => TODO.md} | 0 Todo.md => TODO.md | 0 .../administrator/{Readme.md => README.md} | 0 .../enterprise/{Readme.md => README.md} | 0 docs/guides/user/{Readme.md => README.md} | 0 group_vars/all/{Todo.md => TODO.md} | 0 roles/{Todo.md => TODO.md} | 0 roles/desk-nextcloud/{Todo.md => TODO.md} | 0 roles/dev-npm/{Todo.md => TODO.md} | 0 roles/docker-compose/{Todo.md => TODO.md} | 0 roles/pkgmgr-install/{Todo.md => TODO.md} | 0 roles/srv-core/{Todo.md => TODO.md} | 0 roles/srv-proxy-core/{Todo.md => TODO.md} | 0 .../templates/location/{Todo.md => TODO.md} | 0 roles/svc-db-postgres/{Todo.md => TODO.md} | 0 .../{Todo.md => TODO.md} | 0 roles/svc-opt-ssd-hdd/{Todo.md => TODO.md} | 0 .../{Todo.md => TODO.md} | 0 roles/web-app-akaunting/{Todo.md => TODO.md} | 0 roles/web-app-bookwyrm/{Todo.md => TODO.md} | 0 roles/web-app-chess/{Readme.md => README.md} | 0 roles/web-app-discourse/{Todo.md => TODO.md} | 0 roles/web-app-jenkins/{Todo.md => TODO.md} | 0 roles/web-app-keycloak/{Todo.md => TODO.md} | 0 .../tasks/{Todo.md => TODO.md} | 0 roles/web-app-mailu/{Todo.md => TODO.md} | 0 roles/web-app-matrix/{Todo.md => TODO.md} | 0 roles/web-app-nextcloud/{Todo.md => TODO.md} | 0 .../web-app-oauth2-proxy/{Todo.md => TODO.md} | 0 roles/web-app-peertube/{Todo.md => TODO.md} | 0 .../web-app-phpldapadmin/{Todo.md => TODO.md} | 0 roles/web-app-postmarks/{Todo.md => TODO.md} | 0 roles/web-app-pretix/{Readme.md => README.md} | 0 roles/web-app-socialhome/{Todo.md => TODO.md} | 0 roles/web-opt-rdr-www/{Todo.md => TODO.md} | 0 roles/web-svc-logout/{Todo.md => TODO.md} | 0 tests/integration/{Todo.md => TODO.md} | 0 .../integration/test_filename_conventions.py | 27 +++++++++++++++++++ 38 files changed, 27 insertions(+) rename .github/workflows/{Todo.md => TODO.md} (100%) rename Todo.md => TODO.md (100%) rename docs/guides/administrator/{Readme.md => README.md} (100%) rename docs/guides/enterprise/{Readme.md => README.md} (100%) rename docs/guides/user/{Readme.md => README.md} (100%) rename group_vars/all/{Todo.md => TODO.md} (100%) rename roles/{Todo.md => TODO.md} (100%) rename roles/desk-nextcloud/{Todo.md => TODO.md} (100%) rename roles/dev-npm/{Todo.md => TODO.md} (100%) rename roles/docker-compose/{Todo.md => TODO.md} (100%) rename roles/pkgmgr-install/{Todo.md => TODO.md} (100%) rename roles/srv-core/{Todo.md => TODO.md} (100%) rename roles/srv-proxy-core/{Todo.md => TODO.md} (100%) rename roles/srv-proxy-core/templates/location/{Todo.md => TODO.md} (100%) rename roles/svc-db-postgres/{Todo.md => TODO.md} (100%) rename roles/svc-opt-keyboard-color/{Todo.md => TODO.md} (100%) rename roles/svc-opt-ssd-hdd/{Todo.md => TODO.md} (100%) rename roles/sys-ctl-bkp-docker-2-loc/{Todo.md => TODO.md} (100%) rename roles/web-app-akaunting/{Todo.md => TODO.md} (100%) rename roles/web-app-bookwyrm/{Todo.md => TODO.md} (100%) rename roles/web-app-chess/{Readme.md => README.md} (100%) rename roles/web-app-discourse/{Todo.md => TODO.md} (100%) rename roles/web-app-jenkins/{Todo.md => TODO.md} (100%) rename roles/web-app-keycloak/{Todo.md => TODO.md} (100%) rename roles/web-app-keycloak/tasks/{Todo.md => TODO.md} (100%) rename roles/web-app-mailu/{Todo.md => TODO.md} (100%) rename roles/web-app-matrix/{Todo.md => TODO.md} (100%) rename roles/web-app-nextcloud/{Todo.md => TODO.md} (100%) rename roles/web-app-oauth2-proxy/{Todo.md => TODO.md} (100%) rename roles/web-app-peertube/{Todo.md => TODO.md} (100%) rename roles/web-app-phpldapadmin/{Todo.md => TODO.md} (100%) rename roles/web-app-postmarks/{Todo.md => TODO.md} (100%) rename roles/web-app-pretix/{Readme.md => README.md} (100%) rename roles/web-app-socialhome/{Todo.md => TODO.md} (100%) rename roles/web-opt-rdr-www/{Todo.md => TODO.md} (100%) rename roles/web-svc-logout/{Todo.md => TODO.md} (100%) rename tests/integration/{Todo.md => TODO.md} (100%) create mode 100644 tests/integration/test_filename_conventions.py diff --git a/.github/workflows/Todo.md b/.github/workflows/TODO.md similarity index 100% rename from .github/workflows/Todo.md rename to .github/workflows/TODO.md diff --git a/Todo.md b/TODO.md similarity index 100% rename from Todo.md rename to TODO.md diff --git a/docs/guides/administrator/Readme.md b/docs/guides/administrator/README.md similarity index 100% rename from docs/guides/administrator/Readme.md rename to docs/guides/administrator/README.md diff --git a/docs/guides/enterprise/Readme.md b/docs/guides/enterprise/README.md similarity index 100% rename from docs/guides/enterprise/Readme.md rename to docs/guides/enterprise/README.md diff --git a/docs/guides/user/Readme.md b/docs/guides/user/README.md similarity index 100% rename from docs/guides/user/Readme.md rename to docs/guides/user/README.md diff --git a/group_vars/all/Todo.md b/group_vars/all/TODO.md similarity index 100% rename from group_vars/all/Todo.md rename to group_vars/all/TODO.md diff --git a/roles/Todo.md b/roles/TODO.md similarity index 100% rename from roles/Todo.md rename to roles/TODO.md diff --git a/roles/desk-nextcloud/Todo.md b/roles/desk-nextcloud/TODO.md similarity index 100% rename from roles/desk-nextcloud/Todo.md rename to roles/desk-nextcloud/TODO.md diff --git a/roles/dev-npm/Todo.md b/roles/dev-npm/TODO.md similarity index 100% rename from roles/dev-npm/Todo.md rename to roles/dev-npm/TODO.md diff --git a/roles/docker-compose/Todo.md b/roles/docker-compose/TODO.md similarity index 100% rename from roles/docker-compose/Todo.md rename to roles/docker-compose/TODO.md diff --git a/roles/pkgmgr-install/Todo.md b/roles/pkgmgr-install/TODO.md similarity index 100% rename from roles/pkgmgr-install/Todo.md rename to roles/pkgmgr-install/TODO.md diff --git a/roles/srv-core/Todo.md b/roles/srv-core/TODO.md similarity index 100% rename from roles/srv-core/Todo.md rename to roles/srv-core/TODO.md diff --git a/roles/srv-proxy-core/Todo.md b/roles/srv-proxy-core/TODO.md similarity index 100% rename from roles/srv-proxy-core/Todo.md rename to roles/srv-proxy-core/TODO.md diff --git a/roles/srv-proxy-core/templates/location/Todo.md b/roles/srv-proxy-core/templates/location/TODO.md similarity index 100% rename from roles/srv-proxy-core/templates/location/Todo.md rename to roles/srv-proxy-core/templates/location/TODO.md diff --git a/roles/svc-db-postgres/Todo.md b/roles/svc-db-postgres/TODO.md similarity index 100% rename from roles/svc-db-postgres/Todo.md rename to roles/svc-db-postgres/TODO.md diff --git a/roles/svc-opt-keyboard-color/Todo.md b/roles/svc-opt-keyboard-color/TODO.md similarity index 100% rename from roles/svc-opt-keyboard-color/Todo.md rename to roles/svc-opt-keyboard-color/TODO.md diff --git a/roles/svc-opt-ssd-hdd/Todo.md b/roles/svc-opt-ssd-hdd/TODO.md similarity index 100% rename from roles/svc-opt-ssd-hdd/Todo.md rename to roles/svc-opt-ssd-hdd/TODO.md diff --git a/roles/sys-ctl-bkp-docker-2-loc/Todo.md b/roles/sys-ctl-bkp-docker-2-loc/TODO.md similarity index 100% rename from roles/sys-ctl-bkp-docker-2-loc/Todo.md rename to roles/sys-ctl-bkp-docker-2-loc/TODO.md diff --git a/roles/web-app-akaunting/Todo.md b/roles/web-app-akaunting/TODO.md similarity index 100% rename from roles/web-app-akaunting/Todo.md rename to roles/web-app-akaunting/TODO.md diff --git a/roles/web-app-bookwyrm/Todo.md b/roles/web-app-bookwyrm/TODO.md similarity index 100% rename from roles/web-app-bookwyrm/Todo.md rename to roles/web-app-bookwyrm/TODO.md diff --git a/roles/web-app-chess/Readme.md b/roles/web-app-chess/README.md similarity index 100% rename from roles/web-app-chess/Readme.md rename to roles/web-app-chess/README.md diff --git a/roles/web-app-discourse/Todo.md b/roles/web-app-discourse/TODO.md similarity index 100% rename from roles/web-app-discourse/Todo.md rename to roles/web-app-discourse/TODO.md diff --git a/roles/web-app-jenkins/Todo.md b/roles/web-app-jenkins/TODO.md similarity index 100% rename from roles/web-app-jenkins/Todo.md rename to roles/web-app-jenkins/TODO.md diff --git a/roles/web-app-keycloak/Todo.md b/roles/web-app-keycloak/TODO.md similarity index 100% rename from roles/web-app-keycloak/Todo.md rename to roles/web-app-keycloak/TODO.md diff --git a/roles/web-app-keycloak/tasks/Todo.md b/roles/web-app-keycloak/tasks/TODO.md similarity index 100% rename from roles/web-app-keycloak/tasks/Todo.md rename to roles/web-app-keycloak/tasks/TODO.md diff --git a/roles/web-app-mailu/Todo.md b/roles/web-app-mailu/TODO.md similarity index 100% rename from roles/web-app-mailu/Todo.md rename to roles/web-app-mailu/TODO.md diff --git a/roles/web-app-matrix/Todo.md b/roles/web-app-matrix/TODO.md similarity index 100% rename from roles/web-app-matrix/Todo.md rename to roles/web-app-matrix/TODO.md diff --git a/roles/web-app-nextcloud/Todo.md b/roles/web-app-nextcloud/TODO.md similarity index 100% rename from roles/web-app-nextcloud/Todo.md rename to roles/web-app-nextcloud/TODO.md diff --git a/roles/web-app-oauth2-proxy/Todo.md b/roles/web-app-oauth2-proxy/TODO.md similarity index 100% rename from roles/web-app-oauth2-proxy/Todo.md rename to roles/web-app-oauth2-proxy/TODO.md diff --git a/roles/web-app-peertube/Todo.md b/roles/web-app-peertube/TODO.md similarity index 100% rename from roles/web-app-peertube/Todo.md rename to roles/web-app-peertube/TODO.md diff --git a/roles/web-app-phpldapadmin/Todo.md b/roles/web-app-phpldapadmin/TODO.md similarity index 100% rename from roles/web-app-phpldapadmin/Todo.md rename to roles/web-app-phpldapadmin/TODO.md diff --git a/roles/web-app-postmarks/Todo.md b/roles/web-app-postmarks/TODO.md similarity index 100% rename from roles/web-app-postmarks/Todo.md rename to roles/web-app-postmarks/TODO.md diff --git a/roles/web-app-pretix/Readme.md b/roles/web-app-pretix/README.md similarity index 100% rename from roles/web-app-pretix/Readme.md rename to roles/web-app-pretix/README.md diff --git a/roles/web-app-socialhome/Todo.md b/roles/web-app-socialhome/TODO.md similarity index 100% rename from roles/web-app-socialhome/Todo.md rename to roles/web-app-socialhome/TODO.md diff --git a/roles/web-opt-rdr-www/Todo.md b/roles/web-opt-rdr-www/TODO.md similarity index 100% rename from roles/web-opt-rdr-www/Todo.md rename to roles/web-opt-rdr-www/TODO.md diff --git a/roles/web-svc-logout/Todo.md b/roles/web-svc-logout/TODO.md similarity index 100% rename from roles/web-svc-logout/Todo.md rename to roles/web-svc-logout/TODO.md diff --git a/tests/integration/Todo.md b/tests/integration/TODO.md similarity index 100% rename from tests/integration/Todo.md rename to tests/integration/TODO.md diff --git a/tests/integration/test_filename_conventions.py b/tests/integration/test_filename_conventions.py new file mode 100644 index 00000000..95b94fb5 --- /dev/null +++ b/tests/integration/test_filename_conventions.py @@ -0,0 +1,27 @@ +import os +import unittest + +class TestFilenameConventions(unittest.TestCase): + """ + Integration test to ensure README.md and TODO.md files + are always written in uppercase (README.md / TODO.md). + """ + + def test_readme_and_todo_filenames_are_uppercase(self): + bad_files = [] + for root, _, files in os.walk("."): + for filename in files: + lower = filename.lower() + if lower in ("readme.md", "todo.md"): + if filename not in ("README.md", "TODO.md"): + bad_files.append(os.path.join(root, filename)) + + msg = ( + "The following files violate uppercase naming convention " + "(must be README.md or TODO.md):\n- " + "\n- ".join(bad_files) + ) if bad_files else None + + self.assertEqual(bad_files, [], msg) + +if __name__ == "__main__": + unittest.main()