Обратная совместимость («Backward Compatibility», чаще упоминается как «BC») — свойство программного обеспечения позволяющее старым возможностям работать на новых версиях.
Как правило, обратная совместимость это некая политика или договорённость в конкретном ПО о том, каким образом будет поддерживаться старый функционал и как будет на него влиять ввод новых возможностей.
Виды обратной совместимости можно поделить примерно на следующии три типа:
- Отсутствие обратной совместимости — в таком случае все старые возможности будут удалены в следующей версии, всё что будет реализовано на текущий момент, практически гарантированно не заработает на новой.
- Мягкая обратная совместимость — в данном случае подразумевается что возможности текущей версии ПО, которые хотят удалить или заменить в будущих, помечаются тем или иным образом и удаляются в будущих версиях. Как правило, для него используется процесс депрекации возможностей.
- Полная обратная совместимость — это когда старые возможности никогда не выводятся из ПО и продолжают работать в новых версиях. Так, новые версии, почти никогда не сломают то, что было написано ранее и под старые версии.
¶Обратная совместимость в Drupal
Drupal можно отнести к категории ПО с «мягкой обратной совместимостью».
Ядро, в соответствии с семантическим версионированием, гарантирует что API и возможности мажорной версии могут быть удалены только в новой мажорной версии.
Начиная с Drupal 8 используется механизм депрекации устаревших возможностей. Так, возможности что были помечены в Drupal 8 устаревшими были удалены в Drupal 9, аналогично, то что пометят устаревшим в Drupal 9 будет удалено в Drupal 10.