mkql_runtime_version.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536
  1. #pragma once
  2. #include <util/system/types.h>
  3. namespace NKikimr {
  4. namespace NMiniKQL {
  5. // Problem: rolling update of services based on minikql runtime (example: YDB)
  6. // requires careful management of minikql runtime versions. A minikql program
  7. // that was built with a YDB stable-19-6 must work correctly at YDB stable-19-4
  8. // (previous stable) if YDB rollback happens.
  9. //
  10. // Solution: we support minikql runtime version. Every incompatible change to
  11. // minikql runtime increments MKQL_RUNTIME_VERSION. A user of minikql runtime
  12. // (YDB for example) manually chooses 'RuntimeVersion' to provide major/minor
  13. // releases compatibility. For instance, if YDB stable-19-4 support version X,
  14. // the owner of YDB stable-19-6 sets RuntimeVersion to version X to allow
  15. // graceful rolling update. When there is not chance to rollback to previous
  16. // version, for instance stable-19-4, the YDB owner can switch to the new
  17. // version Y (Y > X).
  18. //
  19. // Details: https://wiki.yandex-team.ru/yql/runtime/
  20. // 1. Bump this version every time incompatible runtime nodes are introduced.
  21. // 2. Make sure you provide runtime node generation for previous runtime versions.
  22. #ifndef MKQL_RUNTIME_VERSION
  23. #define MKQL_RUNTIME_VERSION 57U
  24. #endif
  25. // History:
  26. // v4 is the version supported by kikimr-19-6
  27. // v14 is the version supported by kikimr-20-2
  28. constexpr ui32 RuntimeVersion = MKQL_RUNTIME_VERSION;
  29. }
  30. }