[GrandComicsDatabase/gcd-django] Establish the supported development environment baseline (PR #735)

8 views
Skip to first unread message

Adam Hernandez

unread,
Jul 31, 2026, 5:52:38 PM (9 days ago) Jul 31
to GrandComicsDatabase/gcd-django, Subscribed

Summary

  • Declare Python 3.14.6 as the project development version.
  • Add shared development and test settings for a MySQL-backed core environment.
  • Record the provisional Ubuntu, Python, Django, MySQL, and Elasticsearch support contract.
  • Add an Ubuntu 24.04 GitHub Actions compatibility workflow using MySQL 8.4.10.
  • Add a runtime verifier for the exact Python and MySQL versions and the Django 5.2 release family.
  • Make the default pytest configuration use the committed development settings.

Why

The existing setup instructions describe multiple aging environments without a single tested version contract. This change creates an executable baseline before the Docker, native setup, sample-data, search, and wiki work is layered on top.

Local validation

  • Python 3.14.6 dependency installation: passed
  • Django 5.2.16: passed
  • MySQL 8.4.10 clean database: passed
  • 168 migrations: passed
  • Django system check and runtime verifier: passed
  • Core smoke suite: 156 passed
  • Full beta suite: 448 passed, 18 warnings
  • API v2 Phase 4 suite: 314 passed, 24 warnings
  • Python compilation, flake8, workflow YAML parsing, and git diff --check: passed

The warnings are existing Django 6 transition, naive-datetime fixture, and deprecated pkg_resources warnings. No tests failed.

Review notes

  • Elasticsearch remains disabled in the core environment. Elasticsearch 9 is a separate upgrade because the application currently uses an Elasticsearch 7 client and a custom Elasticsearch 7 Haystack backend.
  • The API v2 files are not yet on beta, so the workflow runs their tests conditionally. The Phase 4 suite was also run separately from its current feature checkout.
  • Ubuntu 24.04 validation will run in this PR.
  • A representative database dump import remains a follow-up when an appropriate dump is available.

Rollback

Revert this PR. It adds only development settings, documentation, CI, a runtime check, and a project Python-version declaration; it does not change production settings or application behavior.


You can view, comment on, or merge this pull request online at:

  https://github.com/GrandComicsDatabase/gcd-django/pull/735

Commit Summary

  • 59ed0de Add development environment compatibility baseline

File Changes

(6 files)

Patch Links:


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!
You are receiving this because you are subscribed to this thread.Message ID: <GrandComicsDatabase/gcd-django/pull/735@github.com>

gemini-code-assist[bot]

unread,
Jul 31, 2026, 5:53:28 PM (9 days ago) Jul 31
to GrandComicsDatabase/gcd-django, Subscribed

@gemini-code-assist[bot] commented on this pull request.

Code Review

This pull request establishes a provisional development runtime contract and verification process. It introduces a new settings_dev.py configuration, updates pyproject.toml to use these settings, adds a .python-version file, and documents supported development versions. It also adds a check_dev_environment.py script to verify the environment. The reviewer suggested a more robust and idiomatic way to retrieve the MySQL version in the verification script using Django's built-in connection.get_database_version() instead of executing raw SQL.


In scripts/check_dev_environment.py:

> +    with connection.cursor() as cursor:
+        cursor.execute('SELECT VERSION()')
+        mysql_version = cursor.fetchone()[0].split('-')[0]

medium

Instead of executing raw SQL and manually parsing the version string (which can be fragile depending on the MySQL/MariaDB distribution and version suffix), you can use Django's built-in connection.get_database_version(). This method returns a clean tuple of integers representing the database version, which is more robust and idiomatic.

    mysql_version = '.'.join(map(str, connection.get_database_version()))


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <GrandComicsDatabase/gcd-django/pull/735/review/4832461763@github.com>

Adam Hernandez

unread,
Aug 1, 2026, 6:31:32 PM (8 days ago) Aug 1
to GrandComicsDatabase/gcd-django, Push

@DeusExTaco pushed 1 commit.

  • e04346f Align development compatibility ranges


View it on GitHub or unsubscribe.


Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <GrandComicsDatabase/gcd-django/pull/735/before/59ed0de2fe44c545180d1832d64bff099615cb77/after/e04346f8a0c5bb13bc380bca0c81ea48d463dd5b@github.com>

JochenGCD

unread,
Aug 6, 2026, 9:11:13 PM (3 days ago) Aug 6
to GrandComicsDatabase/gcd-django, Subscribed

@jochengcd commented on this pull request.


In pyproject.toml:

>  [tool.pytest.ini_options]
 # Boot Django with these settings first; without this the suite won't start at all.
-DJANGO_SETTINGS_MODULE = "settings"
+DJANGO_SETTINGS_MODULE = "settings_dev"

This is only for testing, right ?


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <GrandComicsDatabase/gcd-django/pull/735/review/4879141755@github.com>

Adam Hernandez

unread,
Aug 7, 2026, 12:30:49 AM (3 days ago) Aug 7
to GrandComicsDatabase/gcd-django, Subscribed

@DeusExTaco commented on this pull request.


In pyproject.toml:

>  [tool.pytest.ini_options]
 # Boot Django with these settings first; without this the suite won't start at all.
-DJANGO_SETTINGS_MODULE = "settings"
+DJANGO_SETTINGS_MODULE = "settings_dev"

Yes this is only for development environment testing.


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <GrandComicsDatabase/gcd-django/pull/735/review/4879957410@github.com>

JochenGCD

unread,
Aug 8, 2026, 6:55:17 AM (2 days ago) Aug 8
to GrandComicsDatabase/gcd-django, Subscribed

Merged #735 into beta.


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <GrandComicsDatabase/gcd-django/pull/735/issue_event/29156847247@github.com>

Reply all
Reply to author
Forward
0 new messages