From 0b05c4f851ba4a9853b615e04c3a4b16966898bb Mon Sep 17 00:00:00 2001 From: Sarah Abderemane Date: Mon, 7 Sep 2026 03:13:43 +0200 Subject: [PATCH] Add fixtures to improve contributor experience --- README.rst | 24 + sql/00_lookups.sql | 104 +++ sql/01_ticket_37239_sample.sql | 128 +++ sql/02_fake_tickets_100.sql | 1361 ++++++++++++++++++++++++++++++++ 4 files changed, 1617 insertions(+) create mode 100644 sql/00_lookups.sql create mode 100644 sql/01_ticket_37239_sample.sql create mode 100644 sql/02_fake_tickets_100.sql diff --git a/README.rst b/README.rst index f4d1a99..750b3d7 100644 --- a/README.rst +++ b/README.rst @@ -15,6 +15,14 @@ that can help: * If you've modified the ``trackhack.scss`` file, use ``sassc scss/trachacks.scss trac-env/htdocs/css/trachacks.css -s compressed`` to compile it to CSS. +* Load the local SQL fixtures in dependency order:: + + export DATABASE_URL=postgres://code.djangoproject:secret@localhost/code.djangoproject + psql "$DATABASE_URL" < sql/00_lookups.sql + psql "$DATABASE_URL" < sql/01_ticket_37239_sample.sql + psql "$DATABASE_URL" < sql/02_fake_tickets_100.sql + + Restart Trac after loading the lookup data so its cached values are refreshed. Using Docker ------------ @@ -38,6 +46,22 @@ Using Docker docker compose exec -T db psql $DATABASE_URL < ../djangoproject.com/tracdb/trac.sql docker compose exec trac trac-admin /code/trac-env/ permission add anonymous TRAC_ADMIN +Loading the local SQL fixtures +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +With the Docker services running, load the SQL files in this order. The second +file depends on the lookup data from the first, and the third file depends on +the lookup data as well:: + + export DATABASE_URL=postgres://code.djangoproject:secret@db/code.djangoproject + docker compose exec -T db psql "$DATABASE_URL" < sql/00_lookups.sql + docker compose exec -T db psql "$DATABASE_URL" < sql/01_ticket_37239_sample.sql + docker compose exec -T db psql "$DATABASE_URL" < sql/02_fake_tickets_100.sql + docker compose restart trac + +Restarting Trac refreshes its cached lookup values. + + Using Podman ------------ diff --git a/sql/00_lookups.sql b/sql/00_lookups.sql new file mode 100644 index 0000000..a470a57 --- /dev/null +++ b/sql/00_lookups.sql @@ -0,0 +1,104 @@ +-- Seed data for Trac's ticket "select field" lookup tables: component, version, +-- and the enum table (severity, ticket_type). Values are the real distinct +-- values currently used on code.djangoproject.com (fetched via its public +-- /query?...&format=csv export), plus "Uncategorized", which is trac.ini's +-- configured default_component but wasn't present in the sampled query. +-- +-- IMPORTANT: Trac caches these lookups in memory per-process. After running +-- this file (or any INSERT into component/version/enum) you must restart the +-- trac container for ticket pages to pick up the new values: +-- docker restart codedjangoprojectcom-trac-1 +-- +-- Without this data, Trac hides the corresponding ticket-box row entirely +-- (Component/Version/Severity/Type) rather than showing it empty -- it's not +-- a rendering bug, the field is just treated as unconfigured. +-- +-- priority and milestone are intentionally NOT seeded here: this Trac +-- instance hides those two fields regardless of table contents (confirmed by +-- ticket CSV exports never including them), so seeding them would have no +-- visible effect. + +BEGIN; + +INSERT INTO component (name, owner, description) VALUES + ('CSRF', '', ''), + ('Core (Cache system)', '', ''), + ('Core (Mail)', '', ''), + ('Core (Management commands)', '', ''), + ('Core (Other)', '', ''), + ('Core (Serialization)', '', ''), + ('Core (System checks)', '', ''), + ('Core (URLs)', '', ''), + ('Database layer (models, ORM)', '', ''), + ('Documentation', '', ''), + ('Error reporting', '', ''), + ('File uploads/storage', '', ''), + ('Forms', '', ''), + ('GIS', '', ''), + ('Generic views', '', ''), + ('HTTP handling', '', ''), + ('Internationalization', '', ''), + ('Migrations', '', ''), + ('Packaging', '', ''), + ('Template system', '', ''), + ('Testing framework', '', ''), + ('Uncategorized', '', ''), + ('Utilities', '', ''), + ('contrib.admin', '', ''), + ('contrib.auth', '', ''), + ('contrib.contenttypes', '', ''), + ('contrib.flatpages', '', ''), + ('contrib.messages', '', ''), + ('contrib.postgres', '', ''), + ('contrib.redirects', '', ''), + ('contrib.sessions', '', ''), + ('contrib.sitemaps', '', ''), + ('contrib.sites', '', ''), + ('contrib.staticfiles', '', ''), + ('contrib.syndication', '', '') +ON CONFLICT (name) DO NOTHING; + +INSERT INTO version (name, "time", description) VALUES + ('1.0', NULL, ''), + ('1.1', NULL, ''), + ('1.1-beta', NULL, ''), + ('1.2', NULL, ''), + ('1.2-beta', NULL, ''), + ('1.3', NULL, ''), + ('1.4', NULL, ''), + ('1.4-beta-1', NULL, ''), + ('1.5', NULL, ''), + ('1.6', NULL, ''), + ('1.7', NULL, ''), + ('1.8', NULL, ''), + ('1.9', NULL, ''), + ('1.10', NULL, ''), + ('1.11', NULL, ''), + ('2.0', NULL, ''), + ('2.1', NULL, ''), + ('2.2', NULL, ''), + ('3.0', NULL, ''), + ('3.1', NULL, ''), + ('3.2', NULL, ''), + ('4.0', NULL, ''), + ('4.1', NULL, ''), + ('4.2', NULL, ''), + ('5.0', NULL, ''), + ('5.1', NULL, ''), + ('5.2', NULL, ''), + ('6.0', NULL, ''), + ('6.1', NULL, ''), + ('dev', NULL, ''), + ('newforms-admin', NULL, ''), + ('soc2009/admin-ui', NULL, '') +ON CONFLICT (name) DO NOTHING; + +INSERT INTO enum (type, name, value) VALUES + ('severity', 'Normal', '1'), + ('severity', 'Release blocker', '2'), + ('ticket_type', 'Bug', '1'), + ('ticket_type', 'New feature', '2'), + ('ticket_type', 'Cleanup/optimization', '3') +ON CONFLICT (type, name) DO NOTHING; + +COMMIT; diff --git a/sql/01_ticket_37239_sample.sql b/sql/01_ticket_37239_sample.sql new file mode 100644 index 0000000..347f51c --- /dev/null +++ b/sql/01_ticket_37239_sample.sql @@ -0,0 +1,128 @@ +-- Sample data reproducing ticket #37239 from production (code.djangoproject.com) +-- https://code.djangoproject.com/ticket/37239 + +BEGIN; + +INSERT INTO ticket ( + id, type, "time", changetime, component, severity, priority, owner, reporter, cc, + version, milestone, status, resolution, summary, description, keywords +) VALUES ( + 37239, + 'Bug', + 1785297235000000, + 1785511817805600, + 'Database layer (models, ORM)', + 'Normal', + '', + 'jacobtylerwalls', + 'jacobtylerwalls', + 'lilyfoote', + '5.2', + '', + 'assigned', + '', + E'Saving related objects with generated primary keys doesn\'t update assigned relations', + $desc$With these models: +{{{#!py +class DBDefaultsFunctionPK(models.Model): + uuid = models.UUIDField(primary_key=True, db_default=UUID4()) + + class Meta: + required_db_features = { + "supports_uuid4_function", + "supports_expression_defaults", + } + + +class DBDefaultsFunctionPKChild(DBDefaultsFunctionPK): + parent = models.OneToOneField( + DBDefaultsFunctionPK, + models.CASCADE, + primary_key=True, + db_default=UUID4(), + related_name="child", + ) + + class Meta: + required_db_features = { + "supports_uuid4_function", + "supports_expression_defaults", + } +}}} +This test fails: +{{{#!py + @skipUnlessDBFeature( + "can_return_rows_from_bulk_insert", + "supports_expression_defaults", + "supports_uuid4_function", + ) + def test_foreign_key_db_default_expression_via_parent(self): + parent = DBDefaultsFunctionPK() + obj = DBDefaultsFunctionPKChild(parent=parent) + parent.save() + obj.save() + self.assertEqual(obj.pk, parent.pk) +}}} +{{{ +====================================================================== +FAIL: test_foreign_key_db_default_expression_via_parent (field_defaults.tests.DefaultTests.test_foreign_key_db_default_expression_via_parent) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/Users/jwalls/django/tests/field_defaults/tests.py", line 152, in test_foreign_key_db_default_expression_via_parent + self.assertEqual(obj.pk, parent.pk) + ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^ +AssertionError: UUID('fdfe6046-e662-4c36-a2e1-b10677d0ccb3') != UUID('ddeef3dd-52bc-4b35-b643-4634876a4acc') + +---------------------------------------------------------------------- +Ran 1 test in 0.016s + +FAILED (failures=1, errors=1) +}}} +---- +A similar version of the test using `Now()` instead of `UUID4()` fails on 5.2 (since `UUID4()` is not available there), but I ran into issues with trying to use datetimes in FK constraints on sqlite, so I'm happy to take advice on the best examples to build these models with, as I could be glazing over something obviously better. +---- +This is the "separate non-release-blocker ticket" mentioned in #37238, and the underlying reason for the relaxed assertions on the PR for it.$desc$, + '' +); + +INSERT INTO ticket_custom (ticket, name, value) VALUES + (37239, 'easy', '0'), + (37239, 'has_patch', '1'), + (37239, 'needs_better_patch', '0'), + (37239, 'needs_docs', '0'), + (37239, 'needs_tests', '0'), + (37239, 'stage', 'Accepted'), + (37239, 'ui_ux', '0'); + +-- comment:1 -- Jacob Walls, 2026-07-28 22:58:01 -05:00 +INSERT INTO ticket_change (ticket, "time", author, field, oldvalue, newvalue) VALUES + (37239, 1785297481122372, 'jacobtylerwalls', 'has_patch', '0', '1'), + (37239, 1785297481122372, 'jacobtylerwalls', 'comment', '', $c1$[https://github.com/django/django/pull/21694 PR]$c1$); + +-- comment:2 -- Sarah Boyce, 2026-07-29 02:47:58 -05:00 +INSERT INTO ticket_change (ticket, "time", author, field, oldvalue, newvalue) VALUES + (37239, 1785311278521760, 'sarahboyce', 'cc', '', 'lilyfoote'), + (37239, 1785311278521760, 'sarahboyce', 'stage', 'Unreviewed', 'Accepted'), + (37239, 1785311278521760, 'sarahboyce', 'comment', '', 'Thank you!'); + +-- comment:3 -- Sarah Boyce, 2026-07-29 03:23:32 -05:00 +INSERT INTO ticket_change (ticket, "time", author, field, oldvalue, newvalue) VALUES + (37239, 1785313412940074, 'sarahboyce', 'needs_better_patch', '0', '1'); + +-- comment:4 -- Sarah Boyce, 2026-07-29 05:00:18 -05:00 +INSERT INTO ticket_change (ticket, "time", author, field, oldvalue, newvalue) VALUES + (37239, 1785319218661765, 'sarahboyce', 'summary', + E'After assigning a related object with a db_default, the db_default expression is reevaluated when saving the other object', + E'Saving related objects with generated primary keys doesn\'t update assigned relations'), + (37239, 1785319218661765, 'sarahboyce', 'comment', '', + $c4$I have closed #37238 as a duplicate as the fix for this appears to resolve that issue. +That ticket gives different example models we could use that wouldn't use `UUID4`$c4$); + +-- comment:5 -- Jacob Walls, 2026-07-31 10:30:17 -05:00 +INSERT INTO ticket_change (ticket, "time", author, field, oldvalue, newvalue) VALUES + (37239, 1785511817805600, 'jacobtylerwalls', 'needs_better_patch', '1', '0'); + +-- Keep the id sequence in sync so future trac-created tickets don't collide. +SELECT setval('ticket_id_seq', GREATEST((SELECT MAX(id) FROM ticket), 1)); + +COMMIT; diff --git a/sql/02_fake_tickets_100.sql b/sql/02_fake_tickets_100.sql new file mode 100644 index 0000000..0efa35f --- /dev/null +++ b/sql/02_fake_tickets_100.sql @@ -0,0 +1,1361 @@ +-- 100 tickets with randomized-but-realistic fake data, modeled on the shape +-- of sql/01_ticket_37239_sample.sql. IDs run from 90001 to 90100 so they never +-- collide with real production ticket numbers. +-- +-- Depends on sql/00_lookups.sql having been run first (components, versions, +-- severities, types). All reporters/owners/cc below are synthetic usernames, +-- not real Django contributors. +-- +-- Generated with a fixed random seed for reproducibility; re-running the +-- generator script produces the same output. + +BEGIN; + +INSERT INTO ticket ( + id, type, "time", changetime, component, severity, priority, owner, reporter, cc, + version, milestone, status, resolution, summary, description, keywords +) VALUES + (90001, 'Bug', 1736477004856389, 1738464204856389, 'Generic views', 'Normal', '', 'mayaibrahim', 'priyapatel', 'renatasilva', 'dev', '', 'closed', 'fixed', 'Regression in the admin changelist since 2.2', 'Filing this after a discussion on the forum. Happy to provide a PR if this is confirmed as a bug. + +{{{#!py +class MyForm(forms.ModelForm): + class Meta: + model = MyModel + fields = ''__all__'' +}}} + +This affects PostgreSQL specifically.', ''), + (90002, 'Bug', 1743281247201310, 1744404447201310, 'Core (URLs)', 'Normal', '', 'tanyakovalenko', 'katrinweiss', '', '2.2', '', 'closed', 'needsinfo', 'Add support for the migration autodetector in contrib.staticfiles', 'Discovered while writing tests for an unrelated feature. Reproducible on a fresh project with default settings.', ''), + (90003, 'Bug', 1741065214170670, 1742188414170670, 'Forms', 'Normal', '', 'isabelrocha', 'briannakim', 'nadiafischer', '4.2', '', 'assigned', '', 'Improve error message when using select_related() with a proxy model', 'Filing this after a discussion on the forum. Happy to provide a PR if this is confirmed as a bug. + +{{{#!py +class Author(models.Model): + name = models.CharField(max_length=200) + +class Book(models.Model): + author = models.ForeignKey(Author, on_delete=models.CASCADE) +}}} + +This affects MySQL specifically.', 'orm admin'), + (90004, 'Bug', 1733570431071186, 1734780031071186, 'Generic views', 'Normal', '', 'alexnguyen', 'nadiafischer', '', '4.2', '', 'assigned', '', 'Inconsistent behavior between Oracle and Oracle for the serializer', 'Not sure if this is expected, but the behavior differs from what''s documented. + +{{{#!py +qs = MyModel.objects.filter(active=True).select_related(''owner'') +list(qs) # raises unexpectedly +}}}', ''), + (90005, 'New feature', 1725482991907958, 1726692591907958, 'Core (Cache system)', 'Normal', '', 'priyapatel', 'briannakim', 'mayaibrahim,tanyakovalenko', '1.11', '', 'assigned', '', 'the staticfiles finder does not respect ATOMIC_REQUESTS setting', 'I ran into this while upgrading a project from an older version. Here''s a minimal reproduction: + +{{{#!py +qs = MyModel.objects.filter(active=True).select_related(''owner'') +list(qs) # raises unexpectedly +}}}', 'postgres i18n'), + (90006, 'Bug', 1749759155426292, 1751746355426292, 'contrib.sessions', 'Normal', '', 'katrinweiss', 'mayaibrahim', '', '3.0', '', 'assigned', '', 'Deprecation warning missing for QuerySet.bulk_create()', 'Not sure if this is expected, but the behavior differs from what''s documented. + +{{{#!py +class MyForm(forms.ModelForm): + class Meta: + model = MyModel + fields = ''__all__'' +}}}', 'gis'), + (90007, 'New feature', 1746836582402608, 1749342182402608, 'contrib.flatpages', 'Normal', '', 'farahsiddiqui', 'liamosullivan', '', '6.0', '', 'assigned', '', 'Migration crashes when validating a formset', 'Not sure if this is expected, but the behavior differs from what''s documented. + +This affects Oracle specifically.', ''), + (90008, 'Bug', 1781455016381564, 1783355816381564, 'File uploads/storage', 'Normal', '', 'jamalwright', 'ethanpark', 'priyapatel', '3.1', '', 'assigned', '', 'Improve error message when running migrations on SQLite', 'This looks related to a recent change but I couldn''t find an existing ticket for it. Steps to reproduce below.', ''), + (90009, 'New feature', 1743687592644413, 1745329192644413, 'GIS', 'Normal', '', 'dianaortiz', 'dianaortiz', '', '3.0', '', 'closed', 'worksforme', 'TypeError raised unexpectedly in QuerySet.bulk_create()', 'Filing this after a discussion on the forum. Happy to provide a PR if this is confirmed as a bug. + +This affects PostgreSQL specifically.', 'admin'), + (90010, 'Bug', 1742549587598184, 1744882387598184, 'contrib.postgres', 'Normal', '', '', 'priyapatel', 'ethanpark', '2.2', '', 'new', '', 'Slow query generated by the cache framework', 'Filing this after a discussion on the forum. Happy to provide a PR if this is confirmed as a bug. + +This affects Oracle specifically.', 'has-patch-needs-tests i18n'), + (90011, 'Bug', 1745756280585654, 1746533880585654, 'Core (Cache system)', 'Normal', '', 'nadiafischer', 'renatasilva', '', '2.2', '', 'closed', 'worksforme', 'Add support for the signals dispatcher in csrf', 'This looks related to a recent change but I couldn''t find an existing ticket for it. Steps to reproduce below. + +{{{#!py +class MyForm(forms.ModelForm): + class Meta: + model = MyModel + fields = ''__all__'' +}}}', 'i18n orm'), + (90012, 'New feature', 1749169598073274, 1749342398073274, 'contrib.sitemaps', 'Release blocker', '', 'nadiafischer', 'samirbenali', 'isabelrocha', 'dev', '', 'assigned', '', 'Document edge case in the file storage backend', 'This looks related to a recent change but I couldn''t find an existing ticket for it. Steps to reproduce below. + +{{{#!py +urlpatterns = [ + path(''items//'', views.ItemDetail.as_view()), +] +}}}', ''), + (90013, 'Bug', 1742824611510616, 1745157411510616, 'Packaging', 'Normal', '', '', 'isabelrocha', '', '6.0', '', 'new', '', 'Flaky test in the serializer test suite', 'Discovered while writing tests for an unrelated feature. Reproducible on a fresh project with default settings.', 'regression'), + (90014, 'Bug', 1738465067200727, 1738983467200727, 'Error reporting', 'Normal', '', 'farahsiddiqui', 'quinntanaka', 'alexnguyen', 'dev', '', 'closed', 'duplicate', 'Document edge case in the ORM''s F() expressions', 'Discovered while writing tests for an unrelated feature. Reproducible on a fresh project with default settings. + +This affects PostgreSQL specifically.', 'gis'), + (90015, 'New feature', 1760915456442847, 1762816256442847, 'contrib.sessions', 'Normal', '', 'gracehoffman', 'katrinweiss', '', '3.1', '', 'closed', 'worksforme', 'Slow query generated by the session backend', 'Discovered while writing tests for an unrelated feature. Reproducible on a fresh project with default settings. + +{{{#!py +urlpatterns = [ + path(''items//'', views.ItemDetail.as_view()), +] +}}} + +This affects PostgreSQL specifically.', ''), + (90016, 'Bug', 1744912247752482, 1744998647752482, 'Forms', 'Normal', '', '', 'carlosmendez', 'priyapatel', '2.2', '', 'new', '', 'Inconsistent behavior between Oracle and PostgreSQL for the session backend', 'I ran into this while upgrading a project from an older version. Here''s a minimal reproduction: + +{{{#!py +qs = MyModel.objects.filter(active=True).select_related(''owner'') +list(qs) # raises unexpectedly +}}}', 'sqlite'), + (90017, 'Bug', 1777793580162756, 1778916780162756, 'Internationalization', 'Normal', '', 'tanyakovalenko', 'katrinweiss', 'jamalwright', '5.0', '', 'assigned', '', 'Flaky test in the template autoescaping test suite', 'Filing this after a discussion on the forum. Happy to provide a PR if this is confirmed as a bug.', 'forms async'), + (90018, 'Bug', 1766358851771155, 1767136451771155, 'Core (Cache system)', 'Release blocker', '', 'gracehoffman', 'ethanpark', 'katrinweiss', 'dev', '', 'assigned', '', 'Migration crashes when rendering a template with autoescape off', 'Discovered while writing tests for an unrelated feature. Reproducible on a fresh project with default settings.', ''), + (90019, 'New feature', 1770350517113383, 1772942517113383, 'Utilities', 'Normal', '', 'samirbenali', 'katrinweiss', '', '3.2', '', 'closed', 'fixed', 'Incorrect SQL generated for using bulk_update() on a large queryset', 'I ran into this while upgrading a project from an older version. Here''s a minimal reproduction:', 'orm'), + (90020, 'Bug', 1735991707378070, 1738238107378070, 'Utilities', 'Normal', '', 'briannakim', 'tanyakovalenko', '', '3.2', '', 'closed', 'wontfix', 'Prefetch() raises a TypeError when serializing a queryset with prefetch_related()', 'This looks related to a recent change but I couldn''t find an existing ticket for it. Steps to reproduce below.', ''), + (90021, 'Bug', 1771816748241621, 1773112748241621, 'contrib.contenttypes', 'Normal', '', 'priyapatel', 'priyapatel', 'liamosullivan', '3.1', '', 'closed', 'duplicate', 'Incorrect SQL generated for running migrations on SQLite', 'Filing this after a discussion on the forum. Happy to provide a PR if this is confirmed as a bug. + +{{{#!py +class Author(models.Model): + name = models.CharField(max_length=200) + +class Book(models.Model): + author = models.ForeignKey(Author, on_delete=models.CASCADE) +}}} + +This affects PostgreSQL specifically.', 'admin'), + (90022, 'Bug', 1763408112442389, 1764617712442389, 'Database layer (models, ORM)', 'Release blocker', '', 'quinntanaka', 'omarabdullah', '', '4.2', '', 'closed', 'fixed', 'Improve error message when applying annotate() after values()', 'Not sure if this is expected, but the behavior differs from what''s documented. + +{{{#!py +class MyForm(forms.ModelForm): + class Meta: + model = MyModel + fields = ''__all__'' +}}} + +This affects Oracle specifically.', 'orm'), + (90023, 'Cleanup/optimization', 1761315507036220, 1763734707036220, 'contrib.sessions', 'Normal', '', 'hiroshiyamada', 'hiroshiyamada', 'dianaortiz', '1.11', '', 'closed', 'fixed', 'Document edge case in the sitemap framework', 'Not sure if this is expected, but the behavior differs from what''s documented.', 'has-patch-needs-tests'), + (90024, 'Bug', 1730755353411892, 1733088153411892, 'contrib.redirects', 'Normal', '', 'gracehoffman', 'hiroshiyamada', 'dianaortiz', '5.0', '', 'closed', 'needsinfo', 'Add support for the migration autodetector in database layer (models, orm)', 'Filing this after a discussion on the forum. Happy to provide a PR if this is confirmed as a bug. + +{{{#!py +urlpatterns = [ + path(''items//'', views.ItemDetail.as_view()), +] +}}}', 'forms'), + (90025, 'Bug', 1725426781370885, 1726809181370885, 'Forms', 'Normal', '', 'tanyakovalenko', 'hiroshiyamada', 'mayaibrahim', '5.0', '', 'closed', 'wontfix', 'Incorrect SQL generated for serializing a queryset with prefetch_related()', 'This looks related to a recent change but I couldn''t find an existing ticket for it. Steps to reproduce below. + +{{{#!py +qs = MyModel.objects.filter(active=True).select_related(''owner'') +list(qs) # raises unexpectedly +}}}', 'async'), + (90026, 'Bug', 1747446590632732, 1748137790632732, 'contrib.redirects', 'Release blocker', '', '', 'quinntanaka', '', '2.2', '', 'new', '', 'Document edge case in the test client', 'Not sure if this is expected, but the behavior differs from what''s documented. + +{{{#!py +class Author(models.Model): + name = models.CharField(max_length=200) + +class Book(models.Model): + author = models.ForeignKey(Author, on_delete=models.CASCADE) +}}}', 'migrations'), + (90027, 'New feature', 1781777906887325, 1782469106887325, 'Migrations', 'Normal', '', 'dianaortiz', 'samirbenali', '', '5.1', '', 'closed', 'fixed', 'Improve error message when using select_related() with a proxy model', 'Not sure if this is expected, but the behavior differs from what''s documented. + +{{{#!py +qs = MyModel.objects.filter(active=True).select_related(''owner'') +list(qs) # raises unexpectedly +}}}', ''), + (90028, 'New feature', 1733856590608212, 1736189390608212, 'Testing framework', 'Normal', '', 'farahsiddiqui', 'liamosullivan', '', '3.0', '', 'closed', 'fixed', 'Slow query generated by the serializer', 'Filing this after a discussion on the forum. Happy to provide a PR if this is confirmed as a bug. + +{{{#!py +qs = MyModel.objects.filter(active=True).select_related(''owner'') +list(qs) # raises unexpectedly +}}}', ''), + (90029, 'Cleanup/optimization', 1734086650159782, 1735987450159782, 'contrib.redirects', 'Normal', '', 'liamosullivan', 'gracehoffman', 'mayaibrahim', '4.1', '', 'closed', 'fixed', 'Deprecation warning missing for the admin changelist', 'Discovered while writing tests for an unrelated feature. Reproducible on a fresh project with default settings. + +{{{#!py +urlpatterns = [ + path(''items//'', views.ItemDetail.as_view()), +] +}}} + +This affects SQLite specifically.', ''), + (90030, 'Bug', 1753571110595961, 1754435110595961, 'HTTP handling', 'Normal', '', '', 'carlosmendez', '', '4.0', '', 'new', '', 'the CSRF middleware leaks memory during resolving a URL with converters', 'I ran into this while upgrading a project from an older version. Here''s a minimal reproduction: + +{{{#!py +qs = MyModel.objects.filter(active=True).select_related(''owner'') +list(qs) # raises unexpectedly +}}}', 'async'), + (90031, 'New feature', 1747432932366977, 1747432932366977, 'HTTP handling', 'Release blocker', '', 'isabelrocha', 'alexnguyen', '', '6.0', '', 'closed', 'wontfix', 'Incorrect SQL generated for using bulk_update() on a large queryset', 'I ran into this while upgrading a project from an older version. Here''s a minimal reproduction: + +{{{#!py +urlpatterns = [ + path(''items//'', views.ItemDetail.as_view()), +] +}}}', 'admin'), + (90032, 'Bug', 1758241515601121, 1759019115601121, 'contrib.sites', 'Normal', '', 'katrinweiss', 'ethanpark', 'gracehoffman,renatasilva', '6.0', '', 'closed', 'fixed', 'Regression in the test client since dev', 'I ran into this while upgrading a project from an older version. Here''s a minimal reproduction: + +{{{#!py +urlpatterns = [ + path(''items//'', views.ItemDetail.as_view()), +] +}}}', 'forms regression'), + (90033, 'Bug', 1782736633949477, 1784119033949477, 'Core (Serialization)', 'Normal', '', 'farahsiddiqui', 'farahsiddiqui', 'renatasilva', '5.0', '', 'closed', 'invalid', 'Document edge case in GeoDjango distance lookups', 'I ran into this while upgrading a project from an older version. Here''s a minimal reproduction: + +{{{#!py +class MyForm(forms.ModelForm): + class Meta: + model = MyModel + fields = ''__all__'' +}}}', ''), + (90034, 'Bug', 1752501305316088, 1754661305316088, 'Core (Serialization)', 'Normal', '', 'nadiafischer', 'omarabdullah', 'dianaortiz', '3.0', '', 'assigned', '', 'Deprecation warning missing for GeoDjango distance lookups', 'Discovered while writing tests for an unrelated feature. Reproducible on a fresh project with default settings. + +This affects Oracle specifically.', ''), + (90035, 'Bug', 1758735089094931, 1760463089094931, 'contrib.sitemaps', 'Normal', '', 'omarabdullah', 'alexnguyen', '', '2.2', '', 'assigned', '', 'Prefetch() raises a FieldError when filtering across a reverse relation', 'Not sure if this is expected, but the behavior differs from what''s documented. + +{{{#!py +class MyForm(forms.ModelForm): + class Meta: + model = MyModel + fields = ''__all__'' +}}}', ''), + (90036, 'Bug', 1774557110198267, 1776544310198267, 'Generic views', 'Normal', '', '', 'hiroshiyamada', '', '6.1', '', 'new', '', 'Inconsistent behavior between Oracle and Oracle for the signals dispatcher', 'Not sure if this is expected, but the behavior differs from what''s documented. + +{{{#!py +qs = MyModel.objects.filter(active=True).select_related(''owner'') +list(qs) # raises unexpectedly +}}}', 'admin'), + (90037, 'Bug', 1785670308054542, 1787225508054542, 'Documentation', 'Normal', '', 'priyapatel', 'quinntanaka', 'mayaibrahim', '5.1', '', 'assigned', '', 'Document edge case in the admin changelist', 'I ran into this while upgrading a project from an older version. Here''s a minimal reproduction: + +This affects Oracle specifically.', ''), + (90038, 'Cleanup/optimization', 1734887370151258, 1737306570151258, 'CSRF', 'Normal', '', 'liamosullivan', 'liamosullivan', 'gracehoffman', '5.0', '', 'closed', 'fixed', 'GeoDjango distance lookups ignores LANGUAGE_COOKIE_SECURE in async context', 'Not sure if this is expected, but the behavior differs from what''s documented.', ''), + (90039, 'Bug', 1736106120905702, 1737056520905702, 'Documentation', 'Normal', '', '', 'liamosullivan', '', '2.2', '', 'new', '', 'Inconsistent behavior between PostgreSQL and MySQL for the test client', 'Not sure if this is expected, but the behavior differs from what''s documented.', ''), + (90040, 'Bug', 1748843516953875, 1750312316953875, 'Generic views', 'Release blocker', '', 'samirbenali', 'samirbenali', '', 'dev', '', 'closed', 'fixed', 'the session backend does not respect DEFAULT_AUTO_FIELD setting', 'Discovered while writing tests for an unrelated feature. Reproducible on a fresh project with default settings. + +{{{#!py +class MyForm(forms.ModelForm): + class Meta: + model = MyModel + fields = ''__all__'' +}}}', ''), + (90041, 'Cleanup/optimization', 1764529008185623, 1765565808185623, 'Packaging', 'Normal', '', 'samirbenali', 'katrinweiss', '', '6.0', '', 'closed', 'fixed', 'Document edge case in the ORM''s F() expressions', 'Filing this after a discussion on the forum. Happy to provide a PR if this is confirmed as a bug. + +{{{#!py +urlpatterns = [ + path(''items//'', views.ItemDetail.as_view()), +] +}}} + +This affects SQLite specifically.', 'i18n'), + (90042, 'Bug', 1778627297351085, 1778886497351085, 'HTTP handling', 'Normal', '', '', 'alexnguyen', '', 'dev', '', 'new', '', 'Add support for the sitemap framework in csrf', 'Discovered while writing tests for an unrelated feature. Reproducible on a fresh project with default settings. + +{{{#!py +class Author(models.Model): + name = models.CharField(max_length=200) + +class Book(models.Model): + author = models.ForeignKey(Author, on_delete=models.CASCADE) +}}} + +This affects SQLite specifically.', 'forms gis'), + (90043, 'Bug', 1756289734612699, 1756894534612699, 'GIS', 'Normal', '', 'renatasilva', 'hiroshiyamada', 'briannakim', '2.2', '', 'closed', 'worksforme', 'Incorrect SQL generated for validating a formset', 'Filing this after a discussion on the forum. Happy to provide a PR if this is confirmed as a bug. + +{{{#!py +class Author(models.Model): + name = models.CharField(max_length=200) + +class Book(models.Model): + author = models.ForeignKey(Author, on_delete=models.CASCADE) +}}} + +This affects MySQL specifically.', ''), + (90044, 'New feature', 1762273890254985, 1762533090254985, 'Generic views', 'Normal', '', 'hiroshiyamada', 'hiroshiyamada', 'omarabdullah', '3.0', '', 'closed', 'fixed', 'Incorrect SQL generated for filtering across a reverse relation', 'I ran into this while upgrading a project from an older version. Here''s a minimal reproduction:', ''), + (90045, 'New feature', 1744497297732202, 1746830097732202, 'contrib.auth', 'Normal', '', '', 'priyapatel', '', '3.0', '', 'new', '', 'Incorrect SQL generated for filtering across a reverse relation', 'Discovered while writing tests for an unrelated feature. Reproducible on a fresh project with default settings. + +{{{#!py +urlpatterns = [ + path(''items//'', views.ItemDetail.as_view()), +] +}}}', 'gis'), + (90046, 'Bug', 1751161598452646, 1752975998452646, 'Database layer (models, ORM)', 'Normal', '', 'priyapatel', 'hiroshiyamada', 'carlosmendez,farahsiddiqui', '6.0', '', 'assigned', '', 'Improve error message when resolving a URL with converters', 'I ran into this while upgrading a project from an older version. Here''s a minimal reproduction: + +{{{#!py +qs = MyModel.objects.filter(active=True).select_related(''owner'') +list(qs) # raises unexpectedly +}}}', ''), + (90047, 'Cleanup/optimization', 1732124290808538, 1734025090808538, 'Utilities', 'Normal', '', 'dianaortiz', 'jamalwright', '', '2.2', '', 'closed', 'fixed', 'Add support for the CSRF middleware in contrib.messages', 'I ran into this while upgrading a project from an older version. Here''s a minimal reproduction:', ''), + (90048, 'Bug', 1763226782451176, 1764177182451176, 'contrib.sitemaps', 'Normal', '', 'hiroshiyamada', 'hiroshiyamada', 'nadiafischer', '5.1', '', 'assigned', '', 'Regression in the management command runner since 4.2', 'Filing this after a discussion on the forum. Happy to provide a PR if this is confirmed as a bug. + +{{{#!py +qs = MyModel.objects.filter(active=True).select_related(''owner'') +list(qs) # raises unexpectedly +}}}', ''), + (90049, 'Bug', 1746612780426679, 1747995180426679, 'contrib.messages', 'Normal', '', 'alexnguyen', 'gracehoffman', 'ethanpark', '2.2', '', 'assigned', '', 'Migration crashes when running migrations on SQLite', 'Filing this after a discussion on the forum. Happy to provide a PR if this is confirmed as a bug. + +{{{#!py +class Author(models.Model): + name = models.CharField(max_length=200) + +class Book(models.Model): + author = models.ForeignKey(Author, on_delete=models.CASCADE) +}}} + +This affects Oracle specifically.', ''), + (90050, 'Cleanup/optimization', 1725359470547156, 1727260270547156, 'Core (System checks)', 'Normal', '', '', 'alexnguyen', 'nadiafischer,dianaortiz', '4.2', '', 'new', '', 'ModelForm validation does not respect DEFAULT_AUTO_FIELD setting', 'Discovered while writing tests for an unrelated feature. Reproducible on a fresh project with default settings. + +{{{#!py +urlpatterns = [ + path(''items//'', views.ItemDetail.as_view()), +] +}}}', ''), + (90051, 'New feature', 1735269505950469, 1735269505950469, 'contrib.redirects', 'Release blocker', '', 'tanyakovalenko', 'omarabdullah', 'tanyakovalenko', '4.0', '', 'closed', 'wontfix', 'Improve error message when resolving a URL with converters', 'Discovered while writing tests for an unrelated feature. Reproducible on a fresh project with default settings. + +{{{#!py +qs = MyModel.objects.filter(active=True).select_related(''owner'') +list(qs) # raises unexpectedly +}}}', 'admin regression'), + (90052, 'Bug', 1775695990762217, 1776214390762217, 'Internationalization', 'Normal', '', 'liamosullivan', 'farahsiddiqui', '', '2.2', '', 'assigned', '', 'Slow query generated by the admin changelist', 'This looks related to a recent change but I couldn''t find an existing ticket for it. Steps to reproduce below. + +{{{#!py +class MyForm(forms.ModelForm): + class Meta: + model = MyModel + fields = ''__all__'' +}}} + +This affects PostgreSQL specifically.', 'migrations'), + (90053, 'Bug', 1747443874582710, 1748999074582710, 'Error reporting', 'Normal', '', 'quinntanaka', 'liamosullivan', 'gracehoffman', '4.0', '', 'assigned', '', 'Slow query generated by the session backend', 'Discovered while writing tests for an unrelated feature. Reproducible on a fresh project with default settings. + +{{{#!py +qs = MyModel.objects.filter(active=True).select_related(''owner'') +list(qs) # raises unexpectedly +}}}', 'async regression'), + (90054, 'New feature', 1740254179962674, 1740945379962674, 'CSRF', 'Normal', '', '', 'katrinweiss', 'liamosullivan', '5.2', '', 'new', '', 'Incorrect SQL generated for using bulk_update() on a large queryset', 'I ran into this while upgrading a project from an older version. Here''s a minimal reproduction: + +{{{#!py +urlpatterns = [ + path(''items//'', views.ItemDetail.as_view()), +] +}}}', ''), + (90055, 'Bug', 1732837381627381, 1733182981627381, 'Core (System checks)', 'Normal', '', '', 'samirbenali', '', '2.2', '', 'new', '', 'Migration crashes when using select_related() with a proxy model', 'I ran into this while upgrading a project from an older version. Here''s a minimal reproduction: + +{{{#!py +class MyForm(forms.ModelForm): + class Meta: + model = MyModel + fields = ''__all__'' +}}}', 'migrations'), + (90056, 'Cleanup/optimization', 1726553871289937, 1727504271289937, 'CSRF', 'Normal', '', '', 'farahsiddiqui', '', '5.0', '', 'new', '', 'the session backend leaks memory during validating a formset', 'Discovered while writing tests for an unrelated feature. Reproducible on a fresh project with default settings. + +{{{#!py +urlpatterns = [ + path(''items//'', views.ItemDetail.as_view()), +] +}}}', ''), + (90057, 'Cleanup/optimization', 1734743675880375, 1736903675880375, 'Generic views', 'Normal', '', '', 'ethanpark', '', '1.11', '', 'new', '', 'Document edge case in QuerySet.bulk_create()', 'Not sure if this is expected, but the behavior differs from what''s documented. + +{{{#!py +urlpatterns = [ + path(''items//'', views.ItemDetail.as_view()), +] +}}}', ''), + (90058, 'New feature', 1740082578969857, 1741378578969857, 'CSRF', 'Normal', '', 'ethanpark', 'briannakim', '', '5.1', '', 'closed', 'invalid', 'Regression in ModelForm validation since 5.0', 'This looks related to a recent change but I couldn''t find an existing ticket for it. Steps to reproduce below.', ''), + (90059, 'Bug', 1762907749572277, 1764549349572277, 'Core (URLs)', 'Normal', '', 'isabelrocha', 'alexnguyen', '', '6.0', '', 'assigned', '', 'the file storage backend ignores ATOMIC_REQUESTS in async context', 'This looks related to a recent change but I couldn''t find an existing ticket for it. Steps to reproduce below. + +{{{#!py +qs = MyModel.objects.filter(active=True).select_related(''owner'') +list(qs) # raises unexpectedly +}}}', 'regression'), + (90060, 'Bug', 1742727604742064, 1742727604742064, 'Core (System checks)', 'Normal', '', '', 'isabelrocha', 'mayaibrahim', 'dev', '', 'new', '', 'Prefetch() raises a FieldError when resolving a URL with converters', 'Not sure if this is expected, but the behavior differs from what''s documented.', ''), + (90061, 'Cleanup/optimization', 1727874409498095, 1730380009498095, 'Internationalization', 'Normal', '', 'omarabdullah', 'hiroshiyamada', '', '6.0', '', 'assigned', '', 'ManyToManyField raises an AttributeError when applying annotate() after values()', 'Filing this after a discussion on the forum. Happy to provide a PR if this is confirmed as a bug. + +{{{#!py +qs = MyModel.objects.filter(active=True).select_related(''owner'') +list(qs) # raises unexpectedly +}}}', 'sqlite forms'), + (90062, 'Bug', 1732088501998362, 1733384501998362, 'Migrations', 'Normal', '', '', 'liamosullivan', '', '3.0', '', 'new', '', 'Incorrect SQL generated for filtering across a reverse relation', 'Filing this after a discussion on the forum. Happy to provide a PR if this is confirmed as a bug. + +{{{#!py +class MyForm(forms.ModelForm): + class Meta: + model = MyModel + fields = ''__all__'' +}}}', ''), + (90063, 'New feature', 1761431684893323, 1762122884893323, 'Documentation', 'Normal', '', 'hiroshiyamada', 'hiroshiyamada', '', '5.0', '', 'closed', 'fixed', 'Regression in the template autoescaping since 4.1', 'I ran into this while upgrading a project from an older version. Here''s a minimal reproduction: + +{{{#!py +qs = MyModel.objects.filter(active=True).select_related(''owner'') +list(qs) # raises unexpectedly +}}}', ''), + (90064, 'Cleanup/optimization', 1754679893002686, 1754939093002686, 'contrib.flatpages', 'Normal', '', 'hiroshiyamada', 'carlosmendez', 'carlosmendez', '5.0', '', 'assigned', '', 'Deprecation warning missing for the system check framework', 'This looks related to a recent change but I couldn''t find an existing ticket for it. Steps to reproduce below. + +{{{#!py +class Author(models.Model): + name = models.CharField(max_length=200) + +class Book(models.Model): + author = models.ForeignKey(Author, on_delete=models.CASCADE) +}}}', 'async'), + (90065, 'Bug', 1735827068391250, 1737641468391250, 'Template system', 'Normal', '', 'omarabdullah', 'priyapatel', 'renatasilva,isabelrocha', '6.0', '', 'closed', 'fixed', 'Add support for the CSRF middleware in core (system checks)', 'I ran into this while upgrading a project from an older version. Here''s a minimal reproduction: + +{{{#!py +class MyForm(forms.ModelForm): + class Meta: + model = MyModel + fields = ''__all__'' +}}}', 'has-patch-needs-tests async'), + (90066, 'Bug', 1772582811956700, 1772928411956700, 'Core (Serialization)', 'Normal', '', 'farahsiddiqui', 'farahsiddiqui', '', '5.0', '', 'assigned', '', 'the ORM''s F() expressions does not respect SECURE_PROXY_SSL_HEADER setting', 'Discovered while writing tests for an unrelated feature. Reproducible on a fresh project with default settings.', ''), + (90067, 'Bug', 1728892694780725, 1730447894780725, 'GIS', 'Normal', '', '', 'alexnguyen', 'jamalwright,tanyakovalenko', '1.11', '', 'new', '', 'Migration crashes when validating a formset', 'This looks related to a recent change but I couldn''t find an existing ticket for it. Steps to reproduce below. + +{{{#!py +qs = MyModel.objects.filter(active=True).select_related(''owner'') +list(qs) # raises unexpectedly +}}}', ''), + (90068, 'Cleanup/optimization', 1745589992811225, 1747922792811225, 'Uncategorized', 'Normal', '', 'gracehoffman', 'jamalwright', '', '5.2', '', 'closed', 'wontfix', 'the admin changelist does not respect FILE_UPLOAD_PERMISSIONS setting', 'I ran into this while upgrading a project from an older version. Here''s a minimal reproduction: + +{{{#!py +qs = MyModel.objects.filter(active=True).select_related(''owner'') +list(qs) # raises unexpectedly +}}}', 'i18n orm'), + (90069, 'New feature', 1730903313454353, 1732717713454353, 'contrib.postgres', 'Release blocker', '', 'ethanpark', 'ethanpark', '', '4.0', '', 'assigned', '', 'Inconsistent behavior between PostgreSQL and Oracle for the management command runner', 'I ran into this while upgrading a project from an older version. Here''s a minimal reproduction: + +{{{#!py +class Author(models.Model): + name = models.CharField(max_length=200) + +class Book(models.Model): + author = models.ForeignKey(Author, on_delete=models.CASCADE) +}}} + +This affects MySQL specifically.', 'async'), + (90070, 'Bug', 1740779329111537, 1741556929111537, 'contrib.sitemaps', 'Normal', '', '', 'mayaibrahim', '', '4.2', '', 'new', '', 'Deprecation warning missing for the template autoescaping', 'Filing this after a discussion on the forum. Happy to provide a PR if this is confirmed as a bug. + +{{{#!py +qs = MyModel.objects.filter(active=True).select_related(''owner'') +list(qs) # raises unexpectedly +}}} + +This affects PostgreSQL specifically.', 'regression'), + (90071, 'Bug', 1755400903467062, 1756956103467062, 'contrib.staticfiles', 'Normal', '', 'carlosmendez', 'carlosmendez', 'jamalwright', '5.1', '', 'closed', 'fixed', 'Migration crashes when rendering a template with autoescape off', 'Filing this after a discussion on the forum. Happy to provide a PR if this is confirmed as a bug. + +{{{#!py +class MyForm(forms.ModelForm): + class Meta: + model = MyModel + fields = ''__all__'' +}}}', 'admin'), + (90072, 'Bug', 1772798604322793, 1772798604322793, 'Core (System checks)', 'Normal', '', '', 'liamosullivan', '', '6.1', '', 'new', '', 'QuerySet.filter() raises an OperationalError when using bulk_update() on a large queryset', 'This looks related to a recent change but I couldn''t find an existing ticket for it. Steps to reproduce below. + +{{{#!py +class Author(models.Model): + name = models.CharField(max_length=200) + +class Book(models.Model): + author = models.ForeignKey(Author, on_delete=models.CASCADE) +}}}', ''), + (90073, 'Cleanup/optimization', 1782510471721031, 1783201671721031, 'Core (Other)', 'Normal', '', 'jamalwright', 'nadiafischer', '', '6.1', '', 'assigned', '', 'Add support for the template autoescaping in contrib.sessions', 'Discovered while writing tests for an unrelated feature. Reproducible on a fresh project with default settings. + +{{{#!py +class MyForm(forms.ModelForm): + class Meta: + model = MyModel + fields = ''__all__'' +}}} + +This affects SQLite specifically.', 'migrations'), + (90074, 'Bug', 1731561916190832, 1733635516190832, 'Error reporting', 'Normal', '', 'ethanpark', 'nadiafischer', 'farahsiddiqui,quinntanaka', '6.1', '', 'assigned', '', 'Flaky test in the session backend test suite', 'Discovered while writing tests for an unrelated feature. Reproducible on a fresh project with default settings. + +{{{#!py +class Author(models.Model): + name = models.CharField(max_length=200) + +class Book(models.Model): + author = models.ForeignKey(Author, on_delete=models.CASCADE) +}}}', ''), + (90075, 'Bug', 1758529553641505, 1760343953641505, 'GIS', 'Normal', '', 'samirbenali', 'quinntanaka', 'quinntanaka', '4.0', '', 'assigned', '', 'Deprecation warning missing for the admin changelist', 'I ran into this while upgrading a project from an older version. Here''s a minimal reproduction: + +{{{#!py +class Author(models.Model): + name = models.CharField(max_length=200) + +class Book(models.Model): + author = models.ForeignKey(Author, on_delete=models.CASCADE) +}}}', ''), + (90076, 'Bug', 1759356887803484, 1761516887803484, 'File uploads/storage', 'Normal', '', 'carlosmendez', 'jamalwright', '', '3.2', '', 'assigned', '', 'Migration crashes when running migrations on SQLite', 'Discovered while writing tests for an unrelated feature. Reproducible on a fresh project with default settings.', ''), + (90077, 'Bug', 1750148640364869, 1752654240364869, 'contrib.staticfiles', 'Release blocker', '', 'tanyakovalenko', 'katrinweiss', 'quinntanaka', '4.1', '', 'assigned', '', 'Document edge case in the staticfiles finder', 'This looks related to a recent change but I couldn''t find an existing ticket for it. Steps to reproduce below. + +{{{#!py +class Author(models.Model): + name = models.CharField(max_length=200) + +class Book(models.Model): + author = models.ForeignKey(Author, on_delete=models.CASCADE) +}}}', 'postgres async'), + (90078, 'Bug', 1747363968804603, 1747536768804603, 'contrib.admin', 'Normal', '', 'dianaortiz', 'jamalwright', '', '3.0', '', 'assigned', '', 'Inconsistent behavior between SQLite and SQLite for the CSRF middleware', 'I ran into this while upgrading a project from an older version. Here''s a minimal reproduction: + +{{{#!py +class MyForm(forms.ModelForm): + class Meta: + model = MyModel + fields = ''__all__'' +}}} + +This affects PostgreSQL specifically.', ''), + (90079, 'Cleanup/optimization', 1782529397857804, 1783652597857804, 'contrib.contenttypes', 'Normal', '', 'hiroshiyamada', 'katrinweiss', 'renatasilva', '4.2', '', 'closed', 'fixed', 'Deprecation warning missing for translation string extraction', 'Discovered while writing tests for an unrelated feature. Reproducible on a fresh project with default settings. + +{{{#!py +class MyForm(forms.ModelForm): + class Meta: + model = MyModel + fields = ''__all__'' +}}}', 'orm'), + (90080, 'Bug', 1759224759481507, 1759743159481507, 'Core (Serialization)', 'Release blocker', '', '', 'alexnguyen', '', '1.11', '', 'new', '', 'Slow query generated by the management command runner', 'Discovered while writing tests for an unrelated feature. Reproducible on a fresh project with default settings. + +{{{#!py +class Author(models.Model): + name = models.CharField(max_length=200) + +class Book(models.Model): + author = models.ForeignKey(Author, on_delete=models.CASCADE) +}}}', ''), + (90081, 'Bug', 1753026015458108, 1753285215458108, 'contrib.sites', 'Normal', '', 'quinntanaka', 'quinntanaka', '', '5.0', '', 'closed', 'wontfix', 'Improve error message when resolving a URL with converters', 'Discovered while writing tests for an unrelated feature. Reproducible on a fresh project with default settings. + +{{{#!py +urlpatterns = [ + path(''items//'', views.ItemDetail.as_view()), +] +}}}', ''), + (90082, 'Bug', 1726615237694393, 1728256837694393, 'GIS', 'Normal', '', 'omarabdullah', 'omarabdullah', '', '5.2', '', 'closed', 'wontfix', 'TypeError raised unexpectedly in the ORM''s F() expressions', 'Not sure if this is expected, but the behavior differs from what''s documented. + +{{{#!py +urlpatterns = [ + path(''items//'', views.ItemDetail.as_view()), +] +}}}', 'regression migrations'), + (90083, 'New feature', 1731898353129167, 1734403953129167, 'Internationalization', 'Normal', '', '', 'briannakim', '', '6.1', '', 'new', '', 'Add support for the template autoescaping in generic views', 'Not sure if this is expected, but the behavior differs from what''s documented. + +{{{#!py +class MyForm(forms.ModelForm): + class Meta: + model = MyModel + fields = ''__all__'' +}}}', 'postgres'), + (90084, 'Bug', 1740792389690176, 1741915589690176, 'contrib.postgres', 'Normal', '', 'dianaortiz', 'katrinweiss', '', '5.1', '', 'assigned', '', 'the management command runner ignores LANGUAGE_COOKIE_SECURE in async context', 'Discovered while writing tests for an unrelated feature. Reproducible on a fresh project with default settings.', ''), + (90085, 'Bug', 1778967738487676, 1779140538487676, 'Forms', 'Normal', '', 'alexnguyen', 'quinntanaka', '', '4.2', '', 'assigned', '', 'Add support for GeoDjango distance lookups in core (system checks)', 'Not sure if this is expected, but the behavior differs from what''s documented. + +{{{#!py +urlpatterns = [ + path(''items//'', views.ItemDetail.as_view()), +] +}}}', 'migrations has-patch-needs-tests'), + (90086, 'Bug', 1750497192456726, 1752570792456726, 'Core (URLs)', 'Normal', '', '', 'katrinweiss', '', '4.2', '', 'new', '', 'TypeError raised unexpectedly in the staticfiles finder', 'Discovered while writing tests for an unrelated feature. Reproducible on a fresh project with default settings.', ''), + (90087, 'New feature', 1782709883288295, 1783660283288295, 'contrib.redirects', 'Normal', '', 'nadiafischer', 'renatasilva', 'katrinweiss,mayaibrahim', '3.0', '', 'closed', 'fixed', 'TypeError raised unexpectedly in the staticfiles finder', 'Not sure if this is expected, but the behavior differs from what''s documented. + +{{{#!py +qs = MyModel.objects.filter(active=True).select_related(''owner'') +list(qs) # raises unexpectedly +}}}', ''), + (90088, 'New feature', 1749449084835017, 1749621884835017, 'Uncategorized', 'Normal', '', 'isabelrocha', 'briannakim', '', '4.2', '', 'closed', 'fixed', 'TypeError raised unexpectedly in the file storage backend', 'Filing this after a discussion on the forum. Happy to provide a PR if this is confirmed as a bug. + +{{{#!py +qs = MyModel.objects.filter(active=True).select_related(''owner'') +list(qs) # raises unexpectedly +}}}', 'forms gis'), + (90089, 'Cleanup/optimization', 1767609137907753, 1769250737907753, 'contrib.redirects', 'Normal', '', 'liamosullivan', 'dianaortiz', 'nadiafischer', '3.0', '', 'closed', 'fixed', 'Incorrect SQL generated for validating a formset', 'Not sure if this is expected, but the behavior differs from what''s documented.', ''), + (90090, 'New feature', 1739054358002704, 1739918358002704, 'contrib.messages', 'Normal', '', 'ethanpark', 'ethanpark', 'dianaortiz', '2.2', '', 'assigned', '', 'Improve error message when filtering across a reverse relation', 'Discovered while writing tests for an unrelated feature. Reproducible on a fresh project with default settings. + +{{{#!py +class MyForm(forms.ModelForm): + class Meta: + model = MyModel + fields = ''__all__'' +}}}', 'migrations forms'), + (90091, 'New feature', 1777836299021653, 1779045899021653, 'File uploads/storage', 'Normal', '', '', 'liamosullivan', 'liamosullivan', '4.0', '', 'new', '', 'Document edge case in the migration autodetector', 'Not sure if this is expected, but the behavior differs from what''s documented. + +{{{#!py +class Author(models.Model): + name = models.CharField(max_length=200) + +class Book(models.Model): + author = models.ForeignKey(Author, on_delete=models.CASCADE) +}}}', ''), + (90092, 'New feature', 1763153898829582, 1764881898829582, 'GIS', 'Normal', '', '', 'renatasilva', 'isabelrocha', '3.2', '', 'new', '', 'ManyToManyField raises an IntegrityError when applying annotate() after values()', 'I ran into this while upgrading a project from an older version. Here''s a minimal reproduction: + +{{{#!py +class MyForm(forms.ModelForm): + class Meta: + model = MyModel + fields = ''__all__'' +}}}', ''), + (90093, 'Cleanup/optimization', 1770331064038818, 1771454264038818, 'Forms', 'Normal', '', 'dianaortiz', 'dianaortiz', '', '6.1', '', 'assigned', '', 'Deprecation warning missing for the serializer', 'Discovered while writing tests for an unrelated feature. Reproducible on a fresh project with default settings.', 'migrations admin'), + (90094, 'Bug', 1735136052746180, 1735395252746180, 'contrib.auth', 'Release blocker', '', 'isabelrocha', 'hiroshiyamada', '', '3.2', '', 'assigned', '', 'Slow query generated by the ORM''s F() expressions', 'Discovered while writing tests for an unrelated feature. Reproducible on a fresh project with default settings.', 'forms regression'), + (90095, 'Bug', 1764009025352060, 1764009025352060, 'Core (Serialization)', 'Normal', '', 'ethanpark', 'mayaibrahim', '', '1.11', '', 'closed', 'duplicate', 'Slow query generated by translation string extraction', 'Not sure if this is expected, but the behavior differs from what''s documented. + +{{{#!py +class Author(models.Model): + name = models.CharField(max_length=200) + +class Book(models.Model): + author = models.ForeignKey(Author, on_delete=models.CASCADE) +}}} + +This affects SQLite specifically.', 'admin'), + (90096, 'Bug', 1743363242355466, 1745004842355466, 'CSRF', 'Normal', '', 'isabelrocha', 'isabelrocha', '', '5.1', '', 'assigned', '', 'Flaky test in GeoDjango distance lookups test suite', 'This looks related to a recent change but I couldn''t find an existing ticket for it. Steps to reproduce below. + +{{{#!py +class Author(models.Model): + name = models.CharField(max_length=200) + +class Book(models.Model): + author = models.ForeignKey(Author, on_delete=models.CASCADE) +}}}', ''), + (90097, 'Cleanup/optimization', 1782621925910386, 1784522725910386, 'Core (System checks)', 'Normal', '', 'mayaibrahim', 'isabelrocha', '', '4.0', '', 'closed', 'duplicate', 'Slow query generated by the template autoescaping', 'Discovered while writing tests for an unrelated feature. Reproducible on a fresh project with default settings. + +{{{#!py +qs = MyModel.objects.filter(active=True).select_related(''owner'') +list(qs) # raises unexpectedly +}}} + +This affects SQLite specifically.', 'async'), + (90098, 'Cleanup/optimization', 1772199193499695, 1772544793499695, 'Testing framework', 'Normal', '', 'jamalwright', 'nadiafischer', '', '5.1', '', 'closed', 'fixed', 'Inconsistent behavior between SQLite and MySQL for the session backend', 'Not sure if this is expected, but the behavior differs from what''s documented. + +{{{#!py +urlpatterns = [ + path(''items//'', views.ItemDetail.as_view()), +] +}}}', ''), + (90099, 'New feature', 1755721012888706, 1756844212888706, 'contrib.admin', 'Normal', '', '', 'omarabdullah', '', '3.1', '', 'new', '', 'Document edge case in the serializer', 'This looks related to a recent change but I couldn''t find an existing ticket for it. Steps to reproduce below. + +{{{#!py +urlpatterns = [ + path(''items//'', views.ItemDetail.as_view()), +] +}}}', ''), + (90100, 'Bug', 1773397293063952, 1775557293063952, 'CSRF', 'Release blocker', '', 'hiroshiyamada', 'katrinweiss', '', '4.1', '', 'closed', 'needsinfo', 'Improve error message when running migrations on SQLite', 'Filing this after a discussion on the forum. Happy to provide a PR if this is confirmed as a bug.', 'async'); + +INSERT INTO ticket_custom (ticket, name, value) VALUES + (90001, 'easy', '0'), + (90001, 'has_patch', '1'), + (90001, 'needs_better_patch', '0'), + (90001, 'needs_docs', '0'), + (90001, 'needs_tests', '0'), + (90001, 'stage', 'Accepted'), + (90001, 'ui_ux', '0'), + (90002, 'easy', '0'), + (90002, 'has_patch', '1'), + (90002, 'needs_better_patch', '1'), + (90002, 'needs_docs', '0'), + (90002, 'needs_tests', '0'), + (90002, 'stage', 'Accepted'), + (90002, 'ui_ux', '0'), + (90003, 'easy', '1'), + (90003, 'has_patch', '0'), + (90003, 'needs_better_patch', '0'), + (90003, 'needs_docs', '0'), + (90003, 'needs_tests', '0'), + (90003, 'stage', 'Ready for checkin'), + (90003, 'ui_ux', '0'), + (90004, 'easy', '0'), + (90004, 'has_patch', '0'), + (90004, 'needs_better_patch', '0'), + (90004, 'needs_docs', '0'), + (90004, 'needs_tests', '0'), + (90004, 'stage', 'Ready for checkin'), + (90004, 'ui_ux', '0'), + (90005, 'easy', '0'), + (90005, 'has_patch', '1'), + (90005, 'needs_better_patch', '1'), + (90005, 'needs_docs', '0'), + (90005, 'needs_tests', '0'), + (90005, 'stage', 'Ready for checkin'), + (90005, 'ui_ux', '0'), + (90006, 'easy', '0'), + (90006, 'has_patch', '1'), + (90006, 'needs_better_patch', '0'), + (90006, 'needs_docs', '0'), + (90006, 'needs_tests', '1'), + (90006, 'stage', 'Ready for checkin'), + (90006, 'ui_ux', '0'), + (90007, 'easy', '0'), + (90007, 'has_patch', '0'), + (90007, 'needs_better_patch', '0'), + (90007, 'needs_docs', '0'), + (90007, 'needs_tests', '0'), + (90007, 'stage', 'Unreviewed'), + (90007, 'ui_ux', '0'), + (90008, 'easy', '0'), + (90008, 'has_patch', '1'), + (90008, 'needs_better_patch', '0'), + (90008, 'needs_docs', '0'), + (90008, 'needs_tests', '0'), + (90008, 'stage', 'Unreviewed'), + (90008, 'ui_ux', '0'), + (90009, 'easy', '0'), + (90009, 'has_patch', '1'), + (90009, 'needs_better_patch', '1'), + (90009, 'needs_docs', '0'), + (90009, 'needs_tests', '0'), + (90009, 'stage', 'Accepted'), + (90009, 'ui_ux', '0'), + (90010, 'easy', '0'), + (90010, 'has_patch', '0'), + (90010, 'needs_better_patch', '0'), + (90010, 'needs_docs', '0'), + (90010, 'needs_tests', '0'), + (90010, 'stage', 'Unreviewed'), + (90010, 'ui_ux', '0'), + (90011, 'easy', '0'), + (90011, 'has_patch', '1'), + (90011, 'needs_better_patch', '0'), + (90011, 'needs_docs', '0'), + (90011, 'needs_tests', '0'), + (90011, 'stage', 'Accepted'), + (90011, 'ui_ux', '0'), + (90012, 'easy', '0'), + (90012, 'has_patch', '1'), + (90012, 'needs_better_patch', '0'), + (90012, 'needs_docs', '0'), + (90012, 'needs_tests', '0'), + (90012, 'stage', 'Accepted'), + (90012, 'ui_ux', '1'), + (90013, 'easy', '0'), + (90013, 'has_patch', '0'), + (90013, 'needs_better_patch', '0'), + (90013, 'needs_docs', '0'), + (90013, 'needs_tests', '1'), + (90013, 'stage', 'Unreviewed'), + (90013, 'ui_ux', '0'), + (90014, 'easy', '0'), + (90014, 'has_patch', '1'), + (90014, 'needs_better_patch', '0'), + (90014, 'needs_docs', '0'), + (90014, 'needs_tests', '0'), + (90014, 'stage', 'Ready for checkin'), + (90014, 'ui_ux', '0'), + (90015, 'easy', '0'), + (90015, 'has_patch', '1'), + (90015, 'needs_better_patch', '0'), + (90015, 'needs_docs', '0'), + (90015, 'needs_tests', '0'), + (90015, 'stage', 'Accepted'), + (90015, 'ui_ux', '0'), + (90016, 'easy', '0'), + (90016, 'has_patch', '0'), + (90016, 'needs_better_patch', '0'), + (90016, 'needs_docs', '0'), + (90016, 'needs_tests', '0'), + (90016, 'stage', 'Unreviewed'), + (90016, 'ui_ux', '0'), + (90017, 'easy', '0'), + (90017, 'has_patch', '1'), + (90017, 'needs_better_patch', '1'), + (90017, 'needs_docs', '0'), + (90017, 'needs_tests', '1'), + (90017, 'stage', 'Accepted'), + (90017, 'ui_ux', '0'), + (90018, 'easy', '0'), + (90018, 'has_patch', '0'), + (90018, 'needs_better_patch', '0'), + (90018, 'needs_docs', '0'), + (90018, 'needs_tests', '0'), + (90018, 'stage', 'Unreviewed'), + (90018, 'ui_ux', '0'), + (90019, 'easy', '0'), + (90019, 'has_patch', '1'), + (90019, 'needs_better_patch', '1'), + (90019, 'needs_docs', '1'), + (90019, 'needs_tests', '1'), + (90019, 'stage', 'Accepted'), + (90019, 'ui_ux', '1'), + (90020, 'easy', '0'), + (90020, 'has_patch', '1'), + (90020, 'needs_better_patch', '1'), + (90020, 'needs_docs', '0'), + (90020, 'needs_tests', '0'), + (90020, 'stage', 'Ready for checkin'), + (90020, 'ui_ux', '0'), + (90021, 'easy', '0'), + (90021, 'has_patch', '1'), + (90021, 'needs_better_patch', '0'), + (90021, 'needs_docs', '0'), + (90021, 'needs_tests', '0'), + (90021, 'stage', 'Ready for checkin'), + (90021, 'ui_ux', '0'), + (90022, 'easy', '1'), + (90022, 'has_patch', '1'), + (90022, 'needs_better_patch', '0'), + (90022, 'needs_docs', '0'), + (90022, 'needs_tests', '0'), + (90022, 'stage', 'Ready for checkin'), + (90022, 'ui_ux', '0'), + (90023, 'easy', '0'), + (90023, 'has_patch', '1'), + (90023, 'needs_better_patch', '0'), + (90023, 'needs_docs', '0'), + (90023, 'needs_tests', '0'), + (90023, 'stage', 'Ready for checkin'), + (90023, 'ui_ux', '0'), + (90024, 'easy', '0'), + (90024, 'has_patch', '1'), + (90024, 'needs_better_patch', '0'), + (90024, 'needs_docs', '0'), + (90024, 'needs_tests', '0'), + (90024, 'stage', 'Ready for checkin'), + (90024, 'ui_ux', '1'), + (90025, 'easy', '0'), + (90025, 'has_patch', '1'), + (90025, 'needs_better_patch', '0'), + (90025, 'needs_docs', '0'), + (90025, 'needs_tests', '0'), + (90025, 'stage', 'Accepted'), + (90025, 'ui_ux', '0'), + (90026, 'easy', '0'), + (90026, 'has_patch', '0'), + (90026, 'needs_better_patch', '0'), + (90026, 'needs_docs', '0'), + (90026, 'needs_tests', '1'), + (90026, 'stage', 'Unreviewed'), + (90026, 'ui_ux', '0'), + (90027, 'easy', '0'), + (90027, 'has_patch', '1'), + (90027, 'needs_better_patch', '0'), + (90027, 'needs_docs', '0'), + (90027, 'needs_tests', '0'), + (90027, 'stage', 'Ready for checkin'), + (90027, 'ui_ux', '0'), + (90028, 'easy', '0'), + (90028, 'has_patch', '1'), + (90028, 'needs_better_patch', '0'), + (90028, 'needs_docs', '0'), + (90028, 'needs_tests', '0'), + (90028, 'stage', 'Accepted'), + (90028, 'ui_ux', '0'), + (90029, 'easy', '0'), + (90029, 'has_patch', '1'), + (90029, 'needs_better_patch', '1'), + (90029, 'needs_docs', '0'), + (90029, 'needs_tests', '0'), + (90029, 'stage', 'Accepted'), + (90029, 'ui_ux', '1'), + (90030, 'easy', '0'), + (90030, 'has_patch', '0'), + (90030, 'needs_better_patch', '0'), + (90030, 'needs_docs', '0'), + (90030, 'needs_tests', '0'), + (90030, 'stage', 'Unreviewed'), + (90030, 'ui_ux', '0'), + (90031, 'easy', '0'), + (90031, 'has_patch', '1'), + (90031, 'needs_better_patch', '0'), + (90031, 'needs_docs', '0'), + (90031, 'needs_tests', '0'), + (90031, 'stage', 'Accepted'), + (90031, 'ui_ux', '0'), + (90032, 'easy', '0'), + (90032, 'has_patch', '1'), + (90032, 'needs_better_patch', '0'), + (90032, 'needs_docs', '0'), + (90032, 'needs_tests', '1'), + (90032, 'stage', 'Accepted'), + (90032, 'ui_ux', '0'), + (90033, 'easy', '0'), + (90033, 'has_patch', '1'), + (90033, 'needs_better_patch', '0'), + (90033, 'needs_docs', '0'), + (90033, 'needs_tests', '0'), + (90033, 'stage', 'Ready for checkin'), + (90033, 'ui_ux', '0'), + (90034, 'easy', '0'), + (90034, 'has_patch', '1'), + (90034, 'needs_better_patch', '0'), + (90034, 'needs_docs', '1'), + (90034, 'needs_tests', '0'), + (90034, 'stage', 'Accepted'), + (90034, 'ui_ux', '0'), + (90035, 'easy', '0'), + (90035, 'has_patch', '0'), + (90035, 'needs_better_patch', '0'), + (90035, 'needs_docs', '0'), + (90035, 'needs_tests', '0'), + (90035, 'stage', 'Ready for checkin'), + (90035, 'ui_ux', '0'), + (90036, 'easy', '0'), + (90036, 'has_patch', '0'), + (90036, 'needs_better_patch', '0'), + (90036, 'needs_docs', '0'), + (90036, 'needs_tests', '0'), + (90036, 'stage', 'Unreviewed'), + (90036, 'ui_ux', '0'), + (90037, 'easy', '0'), + (90037, 'has_patch', '1'), + (90037, 'needs_better_patch', '0'), + (90037, 'needs_docs', '0'), + (90037, 'needs_tests', '0'), + (90037, 'stage', 'Accepted'), + (90037, 'ui_ux', '0'), + (90038, 'easy', '0'), + (90038, 'has_patch', '1'), + (90038, 'needs_better_patch', '0'), + (90038, 'needs_docs', '0'), + (90038, 'needs_tests', '0'), + (90038, 'stage', 'Accepted'), + (90038, 'ui_ux', '0'), + (90039, 'easy', '0'), + (90039, 'has_patch', '0'), + (90039, 'needs_better_patch', '0'), + (90039, 'needs_docs', '1'), + (90039, 'needs_tests', '0'), + (90039, 'stage', 'Unreviewed'), + (90039, 'ui_ux', '0'), + (90040, 'easy', '0'), + (90040, 'has_patch', '1'), + (90040, 'needs_better_patch', '0'), + (90040, 'needs_docs', '0'), + (90040, 'needs_tests', '0'), + (90040, 'stage', 'Accepted'), + (90040, 'ui_ux', '0'), + (90041, 'easy', '0'), + (90041, 'has_patch', '1'), + (90041, 'needs_better_patch', '0'), + (90041, 'needs_docs', '0'), + (90041, 'needs_tests', '0'), + (90041, 'stage', 'Ready for checkin'), + (90041, 'ui_ux', '0'), + (90042, 'easy', '1'), + (90042, 'has_patch', '0'), + (90042, 'needs_better_patch', '0'), + (90042, 'needs_docs', '0'), + (90042, 'needs_tests', '0'), + (90042, 'stage', 'Unreviewed'), + (90042, 'ui_ux', '0'), + (90043, 'easy', '0'), + (90043, 'has_patch', '1'), + (90043, 'needs_better_patch', '0'), + (90043, 'needs_docs', '0'), + (90043, 'needs_tests', '0'), + (90043, 'stage', 'Accepted'), + (90043, 'ui_ux', '0'), + (90044, 'easy', '0'), + (90044, 'has_patch', '1'), + (90044, 'needs_better_patch', '0'), + (90044, 'needs_docs', '0'), + (90044, 'needs_tests', '1'), + (90044, 'stage', 'Ready for checkin'), + (90044, 'ui_ux', '0'), + (90045, 'easy', '0'), + (90045, 'has_patch', '0'), + (90045, 'needs_better_patch', '0'), + (90045, 'needs_docs', '0'), + (90045, 'needs_tests', '0'), + (90045, 'stage', 'Unreviewed'), + (90045, 'ui_ux', '0'), + (90046, 'easy', '0'), + (90046, 'has_patch', '1'), + (90046, 'needs_better_patch', '1'), + (90046, 'needs_docs', '1'), + (90046, 'needs_tests', '0'), + (90046, 'stage', 'Ready for checkin'), + (90046, 'ui_ux', '0'), + (90047, 'easy', '0'), + (90047, 'has_patch', '1'), + (90047, 'needs_better_patch', '0'), + (90047, 'needs_docs', '0'), + (90047, 'needs_tests', '1'), + (90047, 'stage', 'Ready for checkin'), + (90047, 'ui_ux', '0'), + (90048, 'easy', '1'), + (90048, 'has_patch', '1'), + (90048, 'needs_better_patch', '0'), + (90048, 'needs_docs', '0'), + (90048, 'needs_tests', '0'), + (90048, 'stage', 'Accepted'), + (90048, 'ui_ux', '0'), + (90049, 'easy', '0'), + (90049, 'has_patch', '0'), + (90049, 'needs_better_patch', '0'), + (90049, 'needs_docs', '1'), + (90049, 'needs_tests', '0'), + (90049, 'stage', 'Accepted'), + (90049, 'ui_ux', '0'), + (90050, 'easy', '0'), + (90050, 'has_patch', '0'), + (90050, 'needs_better_patch', '0'), + (90050, 'needs_docs', '1'), + (90050, 'needs_tests', '0'), + (90050, 'stage', 'Unreviewed'), + (90050, 'ui_ux', '0'), + (90051, 'easy', '0'), + (90051, 'has_patch', '1'), + (90051, 'needs_better_patch', '0'), + (90051, 'needs_docs', '0'), + (90051, 'needs_tests', '1'), + (90051, 'stage', 'Ready for checkin'), + (90051, 'ui_ux', '0'), + (90052, 'easy', '0'), + (90052, 'has_patch', '0'), + (90052, 'needs_better_patch', '0'), + (90052, 'needs_docs', '0'), + (90052, 'needs_tests', '0'), + (90052, 'stage', 'Ready for checkin'), + (90052, 'ui_ux', '0'), + (90053, 'easy', '0'), + (90053, 'has_patch', '0'), + (90053, 'needs_better_patch', '0'), + (90053, 'needs_docs', '0'), + (90053, 'needs_tests', '0'), + (90053, 'stage', 'Unreviewed'), + (90053, 'ui_ux', '0'), + (90054, 'easy', '0'), + (90054, 'has_patch', '1'), + (90054, 'needs_better_patch', '0'), + (90054, 'needs_docs', '0'), + (90054, 'needs_tests', '0'), + (90054, 'stage', 'Unreviewed'), + (90054, 'ui_ux', '0'), + (90055, 'easy', '1'), + (90055, 'has_patch', '1'), + (90055, 'needs_better_patch', '0'), + (90055, 'needs_docs', '0'), + (90055, 'needs_tests', '0'), + (90055, 'stage', 'Unreviewed'), + (90055, 'ui_ux', '0'), + (90056, 'easy', '0'), + (90056, 'has_patch', '0'), + (90056, 'needs_better_patch', '0'), + (90056, 'needs_docs', '0'), + (90056, 'needs_tests', '0'), + (90056, 'stage', 'Unreviewed'), + (90056, 'ui_ux', '0'), + (90057, 'easy', '0'), + (90057, 'has_patch', '0'), + (90057, 'needs_better_patch', '0'), + (90057, 'needs_docs', '0'), + (90057, 'needs_tests', '0'), + (90057, 'stage', 'Unreviewed'), + (90057, 'ui_ux', '0'), + (90058, 'easy', '0'), + (90058, 'has_patch', '1'), + (90058, 'needs_better_patch', '0'), + (90058, 'needs_docs', '0'), + (90058, 'needs_tests', '0'), + (90058, 'stage', 'Accepted'), + (90058, 'ui_ux', '0'), + (90059, 'easy', '0'), + (90059, 'has_patch', '1'), + (90059, 'needs_better_patch', '0'), + (90059, 'needs_docs', '0'), + (90059, 'needs_tests', '1'), + (90059, 'stage', 'Ready for checkin'), + (90059, 'ui_ux', '0'), + (90060, 'easy', '0'), + (90060, 'has_patch', '0'), + (90060, 'needs_better_patch', '0'), + (90060, 'needs_docs', '0'), + (90060, 'needs_tests', '0'), + (90060, 'stage', 'Unreviewed'), + (90060, 'ui_ux', '0'), + (90061, 'easy', '0'), + (90061, 'has_patch', '0'), + (90061, 'needs_better_patch', '0'), + (90061, 'needs_docs', '0'), + (90061, 'needs_tests', '0'), + (90061, 'stage', 'Unreviewed'), + (90061, 'ui_ux', '0'), + (90062, 'easy', '0'), + (90062, 'has_patch', '0'), + (90062, 'needs_better_patch', '0'), + (90062, 'needs_docs', '0'), + (90062, 'needs_tests', '0'), + (90062, 'stage', 'Unreviewed'), + (90062, 'ui_ux', '0'), + (90063, 'easy', '1'), + (90063, 'has_patch', '1'), + (90063, 'needs_better_patch', '0'), + (90063, 'needs_docs', '0'), + (90063, 'needs_tests', '0'), + (90063, 'stage', 'Accepted'), + (90063, 'ui_ux', '0'), + (90064, 'easy', '0'), + (90064, 'has_patch', '0'), + (90064, 'needs_better_patch', '0'), + (90064, 'needs_docs', '0'), + (90064, 'needs_tests', '0'), + (90064, 'stage', 'Unreviewed'), + (90064, 'ui_ux', '0'), + (90065, 'easy', '0'), + (90065, 'has_patch', '1'), + (90065, 'needs_better_patch', '0'), + (90065, 'needs_docs', '1'), + (90065, 'needs_tests', '0'), + (90065, 'stage', 'Ready for checkin'), + (90065, 'ui_ux', '0'), + (90066, 'easy', '0'), + (90066, 'has_patch', '0'), + (90066, 'needs_better_patch', '0'), + (90066, 'needs_docs', '1'), + (90066, 'needs_tests', '0'), + (90066, 'stage', 'Accepted'), + (90066, 'ui_ux', '0'), + (90067, 'easy', '0'), + (90067, 'has_patch', '1'), + (90067, 'needs_better_patch', '0'), + (90067, 'needs_docs', '0'), + (90067, 'needs_tests', '0'), + (90067, 'stage', 'Unreviewed'), + (90067, 'ui_ux', '1'), + (90068, 'easy', '0'), + (90068, 'has_patch', '1'), + (90068, 'needs_better_patch', '0'), + (90068, 'needs_docs', '0'), + (90068, 'needs_tests', '0'), + (90068, 'stage', 'Ready for checkin'), + (90068, 'ui_ux', '1'), + (90069, 'easy', '1'), + (90069, 'has_patch', '0'), + (90069, 'needs_better_patch', '0'), + (90069, 'needs_docs', '0'), + (90069, 'needs_tests', '0'), + (90069, 'stage', 'Accepted'), + (90069, 'ui_ux', '0'), + (90070, 'easy', '0'), + (90070, 'has_patch', '0'), + (90070, 'needs_better_patch', '0'), + (90070, 'needs_docs', '0'), + (90070, 'needs_tests', '0'), + (90070, 'stage', 'Unreviewed'), + (90070, 'ui_ux', '0'), + (90071, 'easy', '0'), + (90071, 'has_patch', '1'), + (90071, 'needs_better_patch', '0'), + (90071, 'needs_docs', '0'), + (90071, 'needs_tests', '0'), + (90071, 'stage', 'Accepted'), + (90071, 'ui_ux', '0'), + (90072, 'easy', '0'), + (90072, 'has_patch', '0'), + (90072, 'needs_better_patch', '0'), + (90072, 'needs_docs', '0'), + (90072, 'needs_tests', '0'), + (90072, 'stage', 'Unreviewed'), + (90072, 'ui_ux', '0'), + (90073, 'easy', '0'), + (90073, 'has_patch', '1'), + (90073, 'needs_better_patch', '0'), + (90073, 'needs_docs', '0'), + (90073, 'needs_tests', '1'), + (90073, 'stage', 'Accepted'), + (90073, 'ui_ux', '0'), + (90074, 'easy', '0'), + (90074, 'has_patch', '0'), + (90074, 'needs_better_patch', '0'), + (90074, 'needs_docs', '0'), + (90074, 'needs_tests', '0'), + (90074, 'stage', 'Accepted'), + (90074, 'ui_ux', '0'), + (90075, 'easy', '0'), + (90075, 'has_patch', '0'), + (90075, 'needs_better_patch', '0'), + (90075, 'needs_docs', '0'), + (90075, 'needs_tests', '0'), + (90075, 'stage', 'Unreviewed'), + (90075, 'ui_ux', '0'), + (90076, 'easy', '0'), + (90076, 'has_patch', '1'), + (90076, 'needs_better_patch', '0'), + (90076, 'needs_docs', '0'), + (90076, 'needs_tests', '0'), + (90076, 'stage', 'Ready for checkin'), + (90076, 'ui_ux', '0'), + (90077, 'easy', '1'), + (90077, 'has_patch', '0'), + (90077, 'needs_better_patch', '0'), + (90077, 'needs_docs', '1'), + (90077, 'needs_tests', '1'), + (90077, 'stage', 'Unreviewed'), + (90077, 'ui_ux', '1'), + (90078, 'easy', '0'), + (90078, 'has_patch', '0'), + (90078, 'needs_better_patch', '0'), + (90078, 'needs_docs', '0'), + (90078, 'needs_tests', '1'), + (90078, 'stage', 'Accepted'), + (90078, 'ui_ux', '0'), + (90079, 'easy', '1'), + (90079, 'has_patch', '1'), + (90079, 'needs_better_patch', '0'), + (90079, 'needs_docs', '0'), + (90079, 'needs_tests', '0'), + (90079, 'stage', 'Accepted'), + (90079, 'ui_ux', '0'), + (90080, 'easy', '0'), + (90080, 'has_patch', '0'), + (90080, 'needs_better_patch', '0'), + (90080, 'needs_docs', '0'), + (90080, 'needs_tests', '0'), + (90080, 'stage', 'Unreviewed'), + (90080, 'ui_ux', '0'), + (90081, 'easy', '0'), + (90081, 'has_patch', '1'), + (90081, 'needs_better_patch', '0'), + (90081, 'needs_docs', '1'), + (90081, 'needs_tests', '0'), + (90081, 'stage', 'Ready for checkin'), + (90081, 'ui_ux', '0'), + (90082, 'easy', '1'), + (90082, 'has_patch', '1'), + (90082, 'needs_better_patch', '0'), + (90082, 'needs_docs', '0'), + (90082, 'needs_tests', '0'), + (90082, 'stage', 'Ready for checkin'), + (90082, 'ui_ux', '1'), + (90083, 'easy', '0'), + (90083, 'has_patch', '0'), + (90083, 'needs_better_patch', '0'), + (90083, 'needs_docs', '0'), + (90083, 'needs_tests', '0'), + (90083, 'stage', 'Unreviewed'), + (90083, 'ui_ux', '0'), + (90084, 'easy', '0'), + (90084, 'has_patch', '1'), + (90084, 'needs_better_patch', '0'), + (90084, 'needs_docs', '0'), + (90084, 'needs_tests', '0'), + (90084, 'stage', 'Ready for checkin'), + (90084, 'ui_ux', '0'), + (90085, 'easy', '0'), + (90085, 'has_patch', '1'), + (90085, 'needs_better_patch', '0'), + (90085, 'needs_docs', '0'), + (90085, 'needs_tests', '0'), + (90085, 'stage', 'Ready for checkin'), + (90085, 'ui_ux', '0'), + (90086, 'easy', '0'), + (90086, 'has_patch', '0'), + (90086, 'needs_better_patch', '0'), + (90086, 'needs_docs', '1'), + (90086, 'needs_tests', '1'), + (90086, 'stage', 'Unreviewed'), + (90086, 'ui_ux', '0'), + (90087, 'easy', '0'), + (90087, 'has_patch', '1'), + (90087, 'needs_better_patch', '1'), + (90087, 'needs_docs', '0'), + (90087, 'needs_tests', '1'), + (90087, 'stage', 'Accepted'), + (90087, 'ui_ux', '0'), + (90088, 'easy', '0'), + (90088, 'has_patch', '1'), + (90088, 'needs_better_patch', '0'), + (90088, 'needs_docs', '0'), + (90088, 'needs_tests', '0'), + (90088, 'stage', 'Ready for checkin'), + (90088, 'ui_ux', '0'), + (90089, 'easy', '0'), + (90089, 'has_patch', '1'), + (90089, 'needs_better_patch', '0'), + (90089, 'needs_docs', '0'), + (90089, 'needs_tests', '0'), + (90089, 'stage', 'Ready for checkin'), + (90089, 'ui_ux', '0'), + (90090, 'easy', '0'), + (90090, 'has_patch', '1'), + (90090, 'needs_better_patch', '0'), + (90090, 'needs_docs', '0'), + (90090, 'needs_tests', '0'), + (90090, 'stage', 'Accepted'), + (90090, 'ui_ux', '1'), + (90091, 'easy', '0'), + (90091, 'has_patch', '0'), + (90091, 'needs_better_patch', '0'), + (90091, 'needs_docs', '0'), + (90091, 'needs_tests', '0'), + (90091, 'stage', 'Unreviewed'), + (90091, 'ui_ux', '0'), + (90092, 'easy', '0'), + (90092, 'has_patch', '0'), + (90092, 'needs_better_patch', '0'), + (90092, 'needs_docs', '0'), + (90092, 'needs_tests', '0'), + (90092, 'stage', 'Unreviewed'), + (90092, 'ui_ux', '0'), + (90093, 'easy', '0'), + (90093, 'has_patch', '0'), + (90093, 'needs_better_patch', '0'), + (90093, 'needs_docs', '0'), + (90093, 'needs_tests', '0'), + (90093, 'stage', 'Accepted'), + (90093, 'ui_ux', '0'), + (90094, 'easy', '0'), + (90094, 'has_patch', '0'), + (90094, 'needs_better_patch', '0'), + (90094, 'needs_docs', '0'), + (90094, 'needs_tests', '0'), + (90094, 'stage', 'Accepted'), + (90094, 'ui_ux', '0'), + (90095, 'easy', '0'), + (90095, 'has_patch', '1'), + (90095, 'needs_better_patch', '0'), + (90095, 'needs_docs', '0'), + (90095, 'needs_tests', '0'), + (90095, 'stage', 'Accepted'), + (90095, 'ui_ux', '1'), + (90096, 'easy', '0'), + (90096, 'has_patch', '0'), + (90096, 'needs_better_patch', '0'), + (90096, 'needs_docs', '0'), + (90096, 'needs_tests', '0'), + (90096, 'stage', 'Unreviewed'), + (90096, 'ui_ux', '0'), + (90097, 'easy', '0'), + (90097, 'has_patch', '1'), + (90097, 'needs_better_patch', '0'), + (90097, 'needs_docs', '0'), + (90097, 'needs_tests', '1'), + (90097, 'stage', 'Accepted'), + (90097, 'ui_ux', '0'), + (90098, 'easy', '0'), + (90098, 'has_patch', '1'), + (90098, 'needs_better_patch', '0'), + (90098, 'needs_docs', '0'), + (90098, 'needs_tests', '0'), + (90098, 'stage', 'Ready for checkin'), + (90098, 'ui_ux', '0'), + (90099, 'easy', '1'), + (90099, 'has_patch', '0'), + (90099, 'needs_better_patch', '0'), + (90099, 'needs_docs', '0'), + (90099, 'needs_tests', '0'), + (90099, 'stage', 'Unreviewed'), + (90099, 'ui_ux', '0'), + (90100, 'easy', '0'), + (90100, 'has_patch', '1'), + (90100, 'needs_better_patch', '1'), + (90100, 'needs_docs', '0'), + (90100, 'needs_tests', '0'), + (90100, 'stage', 'Accepted'), + (90100, 'ui_ux', '0'); + +INSERT INTO ticket_change (ticket, "time", author, field, oldvalue, newvalue) VALUES + (90001, 1737098016936839, 'hiroshiyamada', 'comment', '', 'Attached a draft PR, feedback welcome.'), + (90006, 1750343452200565, 'samirbenali', 'comment', '', 'Attached a draft PR, feedback welcome.'), + (90007, 1747955604191553, 'alexnguyen', 'comment', '', 'Needs a regression test before this can be merged.'), + (90012, 1749342398073274, 'omarabdullah', 'comment', '', 'Marking as accepted, this looks like a genuine regression.'), + (90014, 1738983467200727, 'nadiafischer', 'comment', '', 'Marking as accepted, this looks like a genuine regression.'), + (90015, 1761730487714047, 'quinntanaka', 'comment', '', 'Can reproduce on a fresh project, thanks for the detailed report.'), + (90022, 1764617712442389, 'alexnguyen', 'comment', '', 'Marking as accepted, this looks like a genuine regression.'), + (90028, 1734238932513192, 'briannakim', 'comment', '', 'I think this is a duplicate of an older issue, but couldn''t find it -- leaving open for now.'), + (90030, 1754435110595961, 'farahsiddiqui', 'comment', '', 'Can reproduce on a fresh project, thanks for the detailed report.'), + (90032, 1758722373632447, 'liamosullivan', 'comment', '', 'Needs a regression test before this can be merged.'), + (90034, 1752739751059687, 'nadiafischer', 'comment', '', 'Needs a regression test before this can be merged.'), + (90035, 1759832634016892, 'dianaortiz', 'comment', '', 'Attached a draft PR, feedback welcome.'), + (90036, 1775807959522110, 'isabelrocha', 'comment', '', 'Needs a regression test before this can be merged.'), + (90037, 1786191234857233, 'jamalwright', 'comment', '', 'Needs a regression test before this can be merged.'), + (90045, 1744700464074866, 'mayaibrahim', 'comment', '', 'Attached a draft PR, feedback welcome.'), + (90046, 1752404067812308, 'katrinweiss', 'comment', '', 'Can reproduce on a fresh project, thanks for the detailed report.'), + (90048, 1763555811419509, 'gracehoffman', 'comment', '', 'Attached a draft PR, feedback welcome.'), + (90049, 1747509576628540, 'gracehoffman', 'comment', '', 'Needs a regression test before this can be merged.'), + (90051, 1735269505950469, 'renatasilva', 'comment', '', 'Attached a draft PR, feedback welcome.'), + (90052, 1776214390762217, 'tanyakovalenko', 'comment', '', 'Marking as accepted, this looks like a genuine regression.'), + (90056, 1727012413769251, 'renatasilva', 'comment', '', 'Attached a draft PR, feedback welcome.'), + (90058, 1741378578969857, 'mayaibrahim', 'comment', '', 'Can reproduce on a fresh project, thanks for the detailed report.'), + (90067, 1730131029188267, 'samirbenali', 'comment', '', 'Needs a regression test before this can be merged.'), + (90074, 1733113154314497, 'hiroshiyamada', 'comment', '', 'Can reproduce on a fresh project, thanks for the detailed report.'), + (90079, 1783109230156243, 'renatasilva', 'comment', '', 'I think this is a duplicate of an older issue, but couldn''t find it -- leaving open for now.'), + (90083, 1733536835363440, 'alexnguyen', 'comment', '', 'I think this is a duplicate of an older issue, but couldn''t find it -- leaving open for now.'), + (90090, 1739235762689413, 'liamosullivan', 'comment', '', 'Attached a draft PR, feedback welcome.'), + (90095, 1764009025352060, 'priyapatel', 'comment', '', 'Needs a regression test before this can be merged.'), + (90100, 1774691943191332, 'mayaibrahim', 'comment', '', 'Needs a regression test before this can be merged.'); + +SELECT setval('ticket_id_seq', GREATEST((SELECT MAX(id) FROM ticket), 1)); + +COMMIT;