Dépréciations
Ce processus est provisoire ; nous l'évaluons en pratique. Le jugement humain prime : ignorez les étapes qui ne s'appliquent pas. Les nouvelles API techniquement publiques mais peu utilisées peuvent être dépréciées ou supprimées plus rapidement à la discrétion de l'humain.
La BC policy fait autorité :
- Lire la release N depuis
version.txt. - Avertir pendant au moins deux releases (180 jours pour les utilisateurs nightly) ; la suppression au plus tôt est N+2.
Déprécier ou geler
-
Indiquer la version de début, la cible de suppression, le remplacement (ou comment conserver le comportement actuel), et l'URL de l'issue de suivi dans l'avertissement.
-
Avertir une fois par processus. Python :
FutureWarningderrière un flag au niveau du module :_warned = False def foo(): global _warned if not _warned or torch.is_warn_always_enabled(): warnings.warn(message, FutureWarning, stacklevel=2) _warned = True -
Utiliser
@deprecateduniquement aveccategory=Nonepour les diagnostics du type-checker. -
C++ : préférer
TORCH_WARN_ONCE;TORCH_WARN_DEPRECATIONse répète et mappe versDeprecationWarningcaché (#72948). -
Ajouter la docstring
.. deprecated:: <N>, migrer les appelants internes, tester l'avertissement (sousset_warn_always_context(True)), et labelliser la PRtopic: deprecation. -
Les composants gelés ont aussi besoin d'issues de suivi qui enregistrent la décision de gel ; linker lors de la fermeture d'issues contre le composant. Utiliser Kind: Frozen component, avec Removal target et Next step:
nonesi aucune suppression n'est prévue.
Suivre
-
Réutiliser ou créer une issue par élément via
.github/ISSUE_TEMPLATE/deprecation.yml. Conserver ses en-têtes### <field>. -
Obtenir l'approbation utilisateur du texte exact avant de créer ou modifier une issue (
AI_POLICY.md). La labellisermodule: deprecation; utiliserslowrolluniquement pour les déploiements opt-in échelonnés (#191236). -
L'attacher comme sub-issue de #201298 en utilisant son id interne, pas le numéro :
id=$(gh api repos/pytorch/pytorch/issues/<N> --jq .id) gh api -X POST repos/pytorch/pytorch/issues/201298/sub_issues -F sub_issue_id="$id" -
Tenir
Next stepà jour (ex.remove in 2.18). -
Linker les PRs avec
Part of #N, ouFixes #Npour l'étape finale.
Supprimer ou auditer
-
Vérifier que deux releases d'avertissement ont été livrées et que la cible de suppression est arrivée.
-
Supprimer le code, les avertissements, les tests et les références, y compris
.pyi.in, la docs, ettorch/overrides.py. Utiliser.. versionchanged:: <version>avec guidance de migration là où la docs persiste ; labelliser la PRtopic: bc breaking. -
Auditer les cibles contre
version.txt; supprimer les éléments en retard ou les recibler avec une raison, en traçant chacun sous #201298 :git grep -nIE "(removed|deleted|dropped|become an error) (in|by|after) (PyTorch |version |release |v)?[0-9]+\.[0-9]+" -- torch aten c10