# Τεκμηρίωση του Django - 5.2.8

# Σταθερότητα του API

Django is committed to API stability and forwards-compatibility. In a nutshell, this means that code you develop against a version of Django will continue to work with future releases. You may need to make minor changes when upgrading the version of Django your project uses: see the «Backwards incompatible changes» section of the release note for the version or versions to which you are upgrading.

At the same time as making API stability a very high priority, Django is also committed to continual improvement, along with aiming for «one way to do it» (eventually) in the APIs we provide. This means that when we discover clearly superior ways to do things, we will deprecate and eventually remove the old ways. Our aim is to provide a modern, dependable web framework of the highest quality that encourages best practices in all projects that use it. By using incremental improvements, we try to avoid both stagnation and large breaking upgrades.

## Τι σημαίνει «σταθερότητα»

Μέσα σε αυτό το πλαίσιο, σταθερότητα σημαίνει:

- Όλα τα δημόσια APIs (το οτιδήποτε μέσα σε αυτό το εγχειρίδιο) δεν θα μετακινηθούν ή μετονομαστούν χωρίς πρώτα να ορίσουν τα κατάλληλα aliases προκειμένου να είναι συμβατά με παλαιότερες εκδόσεις.

- Όταν προστεθούν νέα features σε αυτά τα δημόσια APIs – που είναι αρκετά συχνό φαινόμενο – δε θα σπάσουν ή αλλάξουν την έννοια των ήδη υπαρχουσών μεθόδων. Με άλλα λόγια, «σταθερότητα» δεν σημαίνει (απαραιτήτως) «τελικό», δηλαδή, αν προσθέσουμε μια μέθοδο Χ σε κάποιο API και στο μέλλον την εμπλουτίσουμε να δέχεται περισσότερα ορίσματα αλλά εσείς συνεχίζετε να χρησιμοποιείτε την πρώτη έκδοση της μεθόδου αυτής, τότε η μέθοδος που χρησιμοποιείτε παραμένει «σταθερή» (στη λειτουργία της) αλλά όχι στο «τελικό» της στάδιο (καθώς προστέθηκαν νέα features σε αυτή).

- Αν, για κάποιο λόγο, ένα API, δηλωμένο ως σταθερό, χρειαστεί να αφαιρεθεί ή να αντικατασταθεί, θα οριστεί ως deprecated και θα παραμείνει στο Django για τις επόμενες δύο διανομές, τουλάχιστον. Αν χρησιμοποιείτε, στον κώδικα σας, αυτό το API τότε θα εμφανίζονται κατάλληλα warnings για να σας ενημερώνουν σχετικά με το deprecation του API αυτού.

  Δείτε στις επίσημες διανομές για περισσότερες πληροφορίες σχετικά με την αρίθμηση των εκδόσεων του Django και την πολιτική του deprecation του Django.

- We’ll only break backwards compatibility of these APIs without a deprecation process if a bug or security hole makes it completely unavoidable.

## Σταθερά APIs

Γενικά, οτιδήποτε είναι γραμμένο στο εγχειρίδιο του Django, με εξαίρεση αυτά που είναι γραμμένα στα εσωτερικά του Django, θεωρείται σταθερό.

## Εξαιρέσεις

Ωστόσο, υπάρχουν μερικές εξαιρέσεις στην ανωτέρω υπόσχεση σχετικά με τη σταθερότητα και την συμβατότητα με παλαιότερες εκδόσεις.

### Διορθώσεις σε θέματα ασφάλειας

Αν αντιληφθούμε κάποιο πρόβλημα σχετικά με την ασφάλεια – από κάποιον που ακολούθησε την διαδικασία αναφοράς σφαλμάτων για θέματα ασφάλειας – θα κάνουμε ότι είναι δυνατόν για να το φτιάξουμε. Αν χρειαστεί, για λόγους ασφάλειας, θα «σπάσουμε» τη συμβατότητα με παλαιότερες εκδόσεις. Βλέπετε, η ασφάλεια προέχει της συμβατότητας.

### APIs που έχουν οριστεί ως εσωτερικά

Κάποια συγκεκριμένα APIs έχουν οριστεί ως «εσωτερικά» με δύο τρόπους:

- Μερικά σημεία στο εγχειρίδιο αναφέρονται στα «εσωτερικά» και τα αποκαλούν κατ’ αυτό τον τρόπο. Αν το εγχειρίδιο αναφέρει ότι κάτι είναι εσωτερικό, διατηρούμε το δικαίωμα να το αλλάξουμε.

- Συναρτήσεις, μέθοδοι και άλλα objects με το πρόθεμα της κάτω παύλας (`_`). Αυτός είναι ο συνήθης τρόπος στην Python για να προσδιορίσουμε κάτι ως private. Αν κάποια μέθοδος ξεκινάει με μια `_`, τότε θεωρείται εσωτερικό API.