Changes between Version 11 and Version 12 of SummerOfCode2022


Ignore:
Timestamp:
Mar 1, 2022, 4:38:37 AM (2 years ago)
Author:
Carlton Gibson
Comment:

Expand project ideas

Legend:

Unmodified
Added
Removed
Modified
  • SummerOfCode2022

    v11 v12  
    136136Adapt schema editors to operate from model states instead of fake rendered models.
    137137
    138 This is [https://code.djangoproject.com/ticket/29898 Ticket #29898].
    139 It's a big task overall, that was part of a successful GSoC project in 2021.
    140 Carrying-on and extending that work would be a great addition.
    141 
    142 (Hard project. 350hr project)
    143 
    144 Possible mentor: ''Mariusz Felisiak''.
     138This is [https://code.djangoproject.com/ticket/29898 Ticket #29898].
     139It's a big task overall, that was part of a successful GSoC project in 2021.
     140Carrying-on and extending that work would be a great addition.
     141
     142Hard project. 350hr project
     143
     144Would require knowledge of the Django ORM, plus an investigation of the
     145previous project, and discussions linked from that.
     146
     147Expected outcome would be a PR (or a number of them) on the migrations
     148framework.
     149
     150Possible mentor: ''Mariusz Felisiak'', ''Simon Charette''.
    145151
    146152== Window expressions improvements ==
    147153
    148 Add support for filtering against window expressions (see #28333), for `EXCLUDE` and currently not covered `RowRange()` cases (see #29850).
    149 
    150 (Hard project. 350hr project)
     154Add support for filtering against window expressions (see #28333), for `EXCLUDE` and currently not covered `RowRange()` cases (see #29850).
     155
     156Hard project. 350hr project
     157
     158Would require knowledge of the Django ORM, and the supported databases.
     159
     160Expected outcome would be a PR (or a number of them) on the ORM.
    151161
    152162Possible mentor: ''Mariusz Felisiak''.
     
    168178benchmarking up to the next level.
    169179
    170 There's particular work in benchmarking the efforts to bring async to Django. 
    171 It would be great to be able to see the effects of using ASGI (vs WSGI say), and 
    172 of particular suggested changes (such as [https://code.djangoproject.com/ticket/32172 making signals async aware]). 
     180There's particular work in benchmarking the efforts to bring async to Django.
     181It would be great to be able to see the effects of using ASGI (vs WSGI say), and
     182of particular suggested changes (such as [https://code.djangoproject.com/ticket/32172 making signals async aware]).
    173183The [https://github.com/django/channels/tree/main/loadtesting Channels project also has benchmarks that need updating].
    174184
    175 Creating a test harness using (say) [https://locust.io Locust.io] would make a great project.
    176 
    177 (Likely medium difficulty. Could be scoped as a 175hr or a 350hr project)
     185Creating a test harness using (say) [https://locust.io Locust.io] would make a great project.
     186
     187Likely medium difficulty. Could be scoped as a 175hr or a 350hr project
     188
     189Would require some sys-admin knowledge to spin-up a testing harness and
     190coordinate multiple services. Knowledge of GitHub Actions CI for integration
     191would be useful.
     192
     193Expected outcome would be improvements to the way in which we can the
     194benchmarking suite, and ideally integration with the Django CI.
    178195
    179196Possible mentor: ''David Smith''.
     
    187204If you're interesting in this, open a discussion on the django-stubs repo or [https://gitter.im/mypy-django/Lobby the project chat].
    188205
    189 (Likely Hard project. Could be scoped as a 175hr or a 350hr project)
     206Likely Hard project. Could be scoped as a 175hr or a 350hr project
     207
     208Would require knowledge of typing in Python, and the mypy project in-particular.
     209
     210Expected outcome would be a PR (or series of PRs) to the django-stubs project,
     211improving the typing support in Django.
    190212
    191213Possible mentor: ''Nikita Sobolev''.
     
    195217There's an old ticket to [https://code.djangoproject.com/ticket/21961 Add support for database-level cascading options].
    196218This means that rather than Django's in-Python options for `on_delete` clauses, we'd allow the database to handle this with it's native implementation.
    197 This would be a new option `db_on_delete` maybe, with the existing `on_delete` being `DO_NOTHING` if it were used. 
     219This would be a new option `db_on_delete` maybe, with the existing `on_delete` being `DO_NOTHING` if it were used.
    198220
    199221This had a couple of PRs that were in the right direction ([https://github.com/django/django/pull/14550 1], [https://github.com/django/django/pull/8661 2]), and [https://groups.google.com/g/django-developers/c/FJMoGgtYIX4/m/LTdjlWydJ2EJ a long-discussion on django-developers].
    200 Adjusting `DatabaseSchemaEditor.sql_create_fk()` to be able to use the native options is the beginning.
    201 
    202 (Hard project. 350hr project)
     222Adjusting `DatabaseSchemaEditor.sql_create_fk()` to be able to use the native options is the beginning.
     223
     224Medium project. 350hr project
     225
     226Would require knowledge of the Django ORM, SQL, and the supported database backends.
     227Significant work has already gone into the project, so research of the links given would be needed, and beneficial.
     228
     229Expected outcome would be a PR adding support for Database-level Cascades to the Django ORM.
    203230
    204231Possible mentor: ''Mariusz Felisiak''.
    205232
    206 == Per field-instance lookups == 
     233== Per field-instance lookups ==
    207234
    208235There's a ticket to [https://code.djangoproject.com/ticket/29799 Allow registration and unregistration of lookups per field instances].
    209236
    210 You may want a [https://docs.djangoproject.com/en/4.0/howto/custom-lookups/ custom lookup] not for every instance of a `Field`, but just **this** instance, on **this** model.
    211 
    212 Implementing that would be a lovely addition to the ORM.
    213 
    214 (Hard project. 350hr project)
    215 
    216 Possible mentor: ''Mariusz Felisiak''.
    217 
    218 == Add rate-limiting to core ==
    219 
    220 There's an old ticket [https://code.djangoproject.com/ticket/21289 Add login rate limiting to contrib.auth].
    221 There's a quite recent [https://github.com/django/django/pull/13242 WIP PR] that shows the way there.
    222 
    223 Contrasting with the third-party [https://django-ratelimit.readthedocs.io/en/stable/index.html django-ratelimit] to determine what's the appropriate scope for what we'd want in the core framework would be important, and a good source of stretch-goals.
    224 
    225 (Hard project. 350hr project)
     237You may want a [https://docs.djangoproject.com/en/4.0/howto/custom-lookups/ custom lookup] not for every instance of a `Field`, but just **this** instance, on **this** model.
     238
     239Implementing that would be a lovely addition to the ORM.
     240
     241Medium project. 350hr project
     242
     243Would require knowledge of the Django ORM, and the lookup API.
     244
     245Expected outcome would be a PR adding support for per-field-instance lookups to
     246the Django ORM.
     247
     248Possible mentor: ''Mariusz Felisiak''/''Carlton Gibson''.
     249
     250== Add rate-limiting to core ==
     251
     252There's an old ticket [https://code.djangoproject.com/ticket/21289 Add login rate limiting to contrib.auth].
     253There's a quite recent [https://github.com/django/django/pull/13242 WIP PR] that shows the way there.
     254
     255Contrasting with the third-party [https://django-ratelimit.readthedocs.io/en/stable/index.html django-ratelimit] to determine what's the appropriate scope for what we'd want in the core framework would be important, and a good source of stretch-goals.
     256
     257Medium project. 350hr project
     258
     259Would require knowledge of Django's HTTP layer, and middleware. Research into the existing PR and third-party package would be required, and beneficial.
     260
     261Expected outcome would be a PR adding rate-limiting to Django.
    226262
    227263Possible mentor: ''Carlton Gibson''.
Back to Top