Разрешено ли отменять устаревание поля protobuf? - PullRequest
0 голосов
/ 30 августа 2018

У нас есть тип protobuf, в который мы добавили поле, а затем никогда не реализовывали функции, использующие его (поэтому было [deprecated=true], чтобы намекнуть, что его не следует использовать). Несколько лет спустя пришло время, и теперь мы do хотим использовать это поле в конце концов.

Безопасно ли просто удалить [deprecated=true] и начать использовать поле, или это может что-нибудь сломать?

Поле с таким же типом и семантикой уже существует в другом сообщении, поэтому было бы очень хорошо использовать имя, которое мы дали ему изначально, вместо добавления нового поля и раздувания определения с двумя похожими полями.

Редактировать: В разделе руководства по языку proto3 по опциям сказано следующее:

deprecated (опция поля): если установлено значение true, означает, что поле устарело и не должно использоваться новым кодом. На большинстве языков это не имеет никакого реального эффекта. В Java это становится аннотацией @Deprecated. В будущем другие специфичные для языка генераторы кода могут генерировать аннотации устаревания на методах доступа поля, что, в свою очередь, вызовет предупреждение при компиляции кода, который пытается использовать поле. Если поле никем не используется и вы хотите, чтобы новые пользователи не могли его использовать, рассмотрите возможность замены объявления поля оператором reserved .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...