Code

Changes between Version 20 and Version 21 of SummerOfCode2010


Ignore:
Timestamp:
03/16/10 06:28:07 (4 years ago)
Author:
russellm
Comment:

Next set of project updates.

Legend:

Unmodified
Added
Removed
Modified
  • SummerOfCode2010

    v20 v21  
    9393 * The [source:django/trunk/django/template django.contrib.auth code module] 
    9494 
    95 === Housekeeping === 
    96  * '''Complexity:''' Minor 
    97  
    98 Django has gone through three recent cycles of rapid change, culminating in the release of versions 1.0, 1.1 and 1.2. These releases have all been feature heavy, which is good for ticking off checkboxes on feature lists, but it does mean that some internal housekeeping and code cleanup tasks have been avoided in order to deliver new features. These housekeeping issues would be well suited to a Summer of Code student wishing to gain a deep understanding of the internal workings of the Django framework. 
    99  
    100 Issues to consider: 
    101  * Django's Model._meta class is officially internal API, but in practice, many parts of _meta are in such common use that they couldn't be changed without causing major problems to Django users. The contents of _meta should be surveyed, cleaned up where necessary, documented and tested as part of formal API. 
    102  * While the public API for foreign keys and m2m relations in Django is quite elegant, the implementation is anything but. This implementation should be cleaned up. 
    103  * There are several internal components (such as the datastructures library) that are heavily used, but have not been extensively profiled to ensure that they are efficient. Profile the Django test suite to find the areas of code that are performance bottlenecks, and optimize them. 
    104  
    105 See also: 
    106  * Trac, bugs by component. Any component with lots of bugs is potentially a candidate for inclusion in this project. 
    107  * [source:django/trunk/django/db/models/options.py The Model._meta class definition] 
    108  * [source:django/trunk/django/db/models/fields/related.py The related fields implementation] 
    109  
    11095=== Improved error reporting === 
    11196 * '''Complexity:''' Medium 
     
    140125 * [http://code.djangoproject.com/query?status=new&status=assigned&status=reopened&component=ORM+aggregation&order=priority Trac's list of ORM aggregation tickets] 
    141126 * The [source:django/trunk/django/db/query.py Django's QuerySet implementation] 
     127 
     128=== App loading === 
     129 * '''Complexity:''' Medium 
     130 
     131Django currently assumes that an application will only ever be loaded once, and that the name of that application will be determined solely by the package name holding the models.py file. However, this has several consequences; 
     132 * You can't deploy several instances of the same application 
     133 * You can't deploy two applications with the same name  
     134 * There is no convenient interface for internationalizing application names 
     135 * There is no way to rename an application with a name that isn't helpful from a UI perspective. 
     136 
     137This project would address these limitations by changing the way applications are loaded. Ticket #3591 contains a description of one proposal. 
     138 
     139Issues to consider: 
     140 * How can we change the app loading mechanism without breaking every existing use of INSTALLED_APPS in the wild? 
     141 * How should two instances of the same application be differentiated during runtime -- especially during URL reversal? 
     142 
     143See also: 
     144 * #3591, and any discussion on [http://groups.google.com/group/django-developers django-developers] that references it. 
     145 * [source:django/trunk/django/db/models/loading.py The current app loading mechanism] 
     146 
     147=== Housekeeping === 
     148 * '''Complexity:''' Minor 
     149 
     150Django has gone through three recent cycles of rapid change, culminating in the release of versions 1.0, 1.1 and 1.2. These releases have all been feature heavy, which is good for ticking off checkboxes on feature lists, but it does mean that some internal housekeeping and code cleanup tasks have been avoided in order to deliver new features. These housekeeping issues would be well suited to a Summer of Code student wishing to gain a deep understanding of the internal workings of the Django framework. 
     151 
     152Issues to consider: 
     153 * Django's Model._meta class is officially internal API, but in practice, many parts of _meta are in such common use that they couldn't be changed without causing major problems to Django users. The contents of _meta should be surveyed, cleaned up where necessary, documented and tested as part of formal API. 
     154 * While the public API for foreign keys and m2m relations in Django is quite elegant, the implementation is anything but. This implementation should be cleaned up. 
     155 * There are several internal components (such as the datastructures library) that are heavily used, but have not been extensively profiled to ensure that they are efficient. Profile the Django test suite to find the areas of code that are performance bottlenecks, and optimize them. 
     156 
     157See also: 
     158 * Trac, bugs by component. Any component with lots of bugs is potentially a candidate for inclusion in this project. 
     159 * [source:django/trunk/django/db/models/options.py The Model._meta class definition] 
     160 * [source:django/trunk/django/db/models/fields/related.py The related fields implementation] 
    142161 
    143162=== Customizable serialization === 
     
    167186 * The [http://groups.google.com/group/django-developers/search?group=django-developers&q=serialization+gsoc&qt_g=Search+this+group many past unsuccessful GSoC proposals regarding serialization improvements]. 
    168187 
    169 === App loading === 
    170  * '''Complexity:''' Minor 
    171  
    172 Refactoring of the app loading mechanism (ref. #3591) 
    173  
    174 Issues to consider: 
    175  * 
    176  
    177 See also: 
    178  * 
    179  
    180188=== IPv6 support === 
    181189 * '''Complexity:''' Minor