Django è votato alla stabilità delle API ed alla compatibilità futura. In poche parole, questo significa che il codice che sviluppi per una versione di Django continuerà a funzionare con le release future. Potresti avere bisogno di applicare alcuni piccoli cambiamenti quando aggiorni la versione di Django del tuo progetto: vedi la sezione «Modifiche non retrocompatibili» in release note relativa alla versione o alle versioni verso le quali stai aggiornando.
Pur essendo la stabilità delle API una priorità molto alta, Django è anche votato al miglioramento continuo, avendo congiuntamente l’obiettivo di illustrare (con il tempo) «un unico modo di fare le cose» nelle API che fornisce. Questo significa che quando troviamo un modo decisamente migliore di fare le cose, renderemo deprecati e rimuoveremo i vecchi modi di farle. Il nostro scopo è quello di fornire un web framework moderno ed affidabile che incoraggi le best practices in tutti i progetti che lo utilizzano. Con i miglioramenti incrementali, cerchiamo di evitare nello stesso modo la stagnazione ed i grandi breaking-upgrades.
In questo contesto, stabile significa:
Tutte le API pubbliche (tutto in questa documentazione) non saranno spostate o rinominate senza fornire alias retro-compatibili.
Se nuove caratteristiche sono aggiunte a queste API – che è del tutto possibile – non romperanno o cambieranno il significato dei metodi già esistenti. In altre parole, «stabile» non (necessariamente) significa «completo».
Se, per qualche motivo, una API dichiarata stabile deve essere rimossa o sostituta, verrà definita come deprecata ma rimarrà tra le API per almeno due rilasci futuri. Si riceveranno degli avvertimenti quando si chiameranno i metodi deprecati.
Controlla Official releases per maggiori dettagli su come funziona lo scema di numerazione delle versioni di Django, e come le features saranno deprecate.
Interromperemo la retrocompatibilità di quelle API senza un processo di deprecazione se un bug oppure un problema di sicurezza lo rende completamente inevitabile.
In generale, tutto quello che è coperto nella documentazione – ad eccezione di qualsiasi cosa si trovi nell’area internals area è da considerarsi stabile.
Ci sono alcune eccezioni per questa promessa di stabilità e retrocompatibilità.
Se veniamo a conoscenza di un problema di sicurezza – magari da parte di chi segue la nostra :ref:` politica di security reporting <reporting-security-issues>` – faremo il necessario per sistemarlo. Questo potrebbe comportare il fatto di interrompere la retrocompatibilità; la sicurezza trionfa sulla garanzia di compatibilità.
Alcune API sono esplicitamente marcate come «internal» in diversi modi :
_
). Questo è il modo standard di Python per indicare che qualcosa è privato; se qualsiasi metodo inizia con un singolo _
, allora è una API internal.mag 03, 2024