#36844: Update packaging tutorial and AppConfig docs to mandate setting
default_auto_field for reusable apps
-------------------------------------+-------------------------------------
     Reporter:  Jacob Walls          |                     Type:
                                     |  Cleanup/optimization
       Status:  new                  |                Component:
                                     |  Documentation
      Version:  dev                  |                 Severity:  Normal
     Keywords:                       |             Triage Stage:
                                     |  Unreviewed
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  1                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
 A reusable (third-party) app that:
 - has models
 - but does ''not'' set `AppConfig.default_auto_field`

 is in a
 [https://github.com/django/django/pull/20319#discussion_r2631747194
 "completely broken" situation], given that any user attempting to use
 `DEFAULT_AUTO_FIELD` in their own settings will generate migrations for
 the reusable app, which can conflict with later migrations shipped by that
 app, or possibly get stored in the app's installation location:

 > Third-party apps should set default_auto_field so that the migrations
 the app includes match the models.

 This discussion took place in a
 [https://github.com/django/django/pull/20319 PR that was not accepted]
 proposing to advise on user workarounds. Instead, I think we should advise
 app authors to do the right thing.

 That would include:
 - strengthening the wording in `AppConfig.default_auto_field` docs,
 replacing "You can use this... for third party applications" to something
 like "Third-party applications *must* set this ..."
 - Fixing the tutorial to show this step under
 [https://docs.djangoproject.com/en/dev/intro/reusable-apps/#packaging-
 your-app "Packaging your app"]. To my knowledge (I'm hoping someone will
 confirm), when you follow the tutorial and arrive at this step modeling
 how to make your app reusable, there is no `default_auto_field` attribute
 on the `AppConfig` in apps.py.

 This would be an approachable issue for a new contributor, as it involves
 following the tutorial to verify completeness and accuracy.
-- 
Ticket URL: <https://code.djangoproject.com/ticket/36844>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/django-updates/0107019b90710518-ffa26ba1-70aa-4869-8210-950ab934ef4a-000000%40eu-central-1.amazonses.com.

Reply via email to