yandex-cloud / cloudapi

Interface definitions of Yandex.Cloud API
MIT License
77 stars 33 forks source link

API Versioning? #5

Closed mmarinchenko closed 4 years ago

mmarinchenko commented 4 years ago

Hi!

Yersteday I read about YC CLI 0.46.0 release in Y.Cloud telegram channel. This is cool but how may I know which commit corresponds to current production version of YC?

We have here only master branch with "sync upstream" commits. No tags. No VERSION.txt. It would be good to add versioning in some form.

MAnyKey commented 4 years ago

Hi,

Right now there's no clear correspondence between versions of YC CLI and commits in this repo. Our API is based on the principle that we don't break backward compatibility. Should we do that, we will add another directory to the corresponding service dir with the new version.

I'd like to know what task you want to accomplish by introducing this correspondence.

mmarinchenko commented 4 years ago

I started to think about API versioning recently when I'd updated YC API to commit b903a81 (it was the last commit then) and found out that it's broken:

1>Proto/yandex/cloud/ai/stt/v2/stt_service.proto(105,25): error : Option "(yandex.cloud.api.tools.field)" unknown. Ensure that your proto definition file imports the proto which defines the option.
1>Proto/yandex/cloud/ai/stt/v2/stt_service.proto(113,25): error : Option "(yandex.cloud.api.tools.field)" unknown. Ensure that your proto definition file imports the proto which defines the option.

After that I have to rollback the update.

Now I see it's fixed but this is the main reason why I opened this issue. There must be stable branch which receive commits only after all tests are passed.

I thought YC CLI is build on top of these protos so that's why I made an assumption that syncing with YC CLI releases may solve this issue.