lua: introduce Tarantool compatibility module
As a followup to #6200 and a result of #6912, Tarantool compatibility module was implemented to simplify introduction of debatable behavior changes. Closes #7000 Needed for #6200 See also #6912 @TarantoolBot document Title: Tarantool compatibility module Compat module is basically a global options table with additional verbose interface and helper functions. There are tree stages of changing a behavior: - old behavior by default - new behavior by default - new behavior is frozen and the old behavior is removed on first two stages user can toggle options via interface and change the behavior according to his needs, on the last stage old behavior is removed from codebase and option is marked as obsolete. As compat is a global instance, options can be hardcoded into it or added in runtime e.g. by external module. There should be a link to tarantool.wiki/compat on the doc page. There are pages for each existing option with detailed description, list of known compatibility issues and some tips on detecting problems in codebase. Tutorial can be found here: https://github.com/tarantool/tarantool/wiki/compat%3Atutorial Full API description is here (private): https://www.notion.so/tarantool/tarantool-compat-introduce-compatibility-module-to-tarantool-8cb33e23932b490384c05f1cdfbf7baa
Showing
- changelogs/unreleased/gh-7000-compat-module.md 4 additions, 0 deletionschangelogs/unreleased/gh-7000-compat-module.md
- src/CMakeLists.txt 2 additions, 0 deletionssrc/CMakeLists.txt
- src/lua/compat.c 18 additions, 0 deletionssrc/lua/compat.c
- src/lua/compat.h 22 additions, 0 deletionssrc/lua/compat.h
- src/lua/compat.lua 365 additions, 0 deletionssrc/lua/compat.lua
- src/lua/init.c 4 additions, 0 deletionssrc/lua/init.c
- src/lua/init.lua 4 additions, 0 deletionssrc/lua/init.lua
- test/app-luatest/gh_7000_compat_module_test.lua 281 additions, 0 deletionstest/app-luatest/gh_7000_compat_module_test.lua
Loading
Please register or sign in to comment