Seems that the URL in the test is checking for the dev version.
[ 380s] ======================================================================
[ 380s] FAIL: test_fails_squash_migration_manual_porting (migrations.test_commands.OptimizeMigrationTests)
[ 380s] ----------------------------------------------------------------------
[ 380s] Traceback (most recent call last):
[ 380s] File "/usr/lib/python3.8/unittest/case.py", line 60, in testPartExecutor
[ 380s] yield
[ 380s] File "/usr/lib/python3.8/unittest/case.py", line 676, in run
[ 380s] self._callTestMethod(testMethod)
[ 380s] File "/usr/lib/python3.8/unittest/case.py", line 633, in _callTestMethod
[ 380s] method()
[ 380s] File "/home/abuild/rpmbuild/BUILD/Django-4.1/tests/migrations/test_commands.py", line 3015, in test_fails_squash_migration_manual_porting
[ 380s] call_command("optimizemigration", "migrations", "0004", stdout=out)
[ 380s] File "/usr/lib/python3.8/contextlib.py", line 131, in exit
[ 380s] self.gen.throw(type, value, traceback)
[ 380s] File "/home/abuild/rpmbuild/BUILD/Django-4.1/django/test/testcases.py", line 879, in _assert_raises_or_warns_cm
[ 380s] self.assertIn(expected_message, str(getattr(cm, cm_attr)))
[ 380s] File "/usr/lib/python3.8/unittest/case.py", line 1179, in assertIn
[ 380s] self.fail(self._formatMessage(msg, standardMsg))
[ 380s] File "/usr/lib/python3.8/unittest/case.py", line 753, in fail
[ 380s] raise self.failureException(msg)
[ 380s] AssertionError: 'Migration will require manual porting but is already a squashed migration.\nTransition to a normal migration first: https://docs.djangoproject.com/en/dev/topics/migrations/#squashing-migrations' not found in 'Migration will require manual porting but is already a squashed migration.\nTransition to a normal migration first: https://docs.djangoproject.com/en/4.1/topics/migrations/#squashing-migrations'
[ 380s]
Yes... Running against the release version hit's this.
Good spot. Thanks Alberto