All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
tt create: add template for Tarantool Config Storage.
The release introduces a fix for the tt logrotate command, which now properly
releases the descriptor of the old log file.
tt logrotate: properly release descriptor of the old log file.
The release introduces command support for working with Tarantool
Cluster Manager (TCM). Also added support for fish shell autocompletion.
In addition, code verification with pre-commit hooks has been configured.
- In commands
tt cat|play <DIR>added options-r/--recursiveto allow find WAL files inside nested subdirectories. tt search tcm- the command performs a search for tarantool cluster manager (TCM) in the customer zone or localdistfilesdirectory.tt install tcm- the command performs an install for tarantool cluster manager (TCM) from the customer zone or localdistfilesdirectory.tt uninstall tcm [version]- the command removes installed tarantool cluster manager from thebindirectory.tt tcm status: added command to check TCM runtime status (modes:watchdogorinteractive).tt tcm stop: add command for graceful termination of TCM processes (modes:watchdogorinteractive).- Add support manage installed
tcmversions viatt binariesCLI. - Added support for completion with shell
fishsee the commandtt completion fish. - Repository use
pre-commithooks to check code style. - Added support for showing TCM logs with
tt tcm logcommand.
tt pack: packs TCM config, if any.
- Fixed a crash in
tt aeon connectwhen processing responses from certain SQL commands. tt cat|play <DIR>with directories handles only.snapor.xlogfiles.rs vshard bootstrap: ignore an error and retry withintimeoutflag period.packwith modules include only under rootttenvironment directory. Modules outside of the directory withtt.yamlwill be ignored.tt connect|replicaset|cluster|aeon|play: fixed using of IPv6 in instance URI.play: extend error message if space to play is unavailable or user does not have permission to work with it, because thenet.boxmodule does not have means to distinguish between these errors.
The release includes minor fixes identified by Svacer and CVE linters.
The release introduces advanced features to connect to the Aeon database and start tcm commands. Further improvements on packaging the customized application. Major changes on working with external modules.
-
tt aeon connectadded tests for connect file/app. -
tt modules listadded command to show available modules. If support extra flags:--version- to show information about version.--path- to show module executables.
-
tt aeon connectadded tests for connect file/app. -
tt aeon connect: add connection from the etcd/tcs config. -
tt pack: support.packignorefile to specify files that should not be included in package (works the same as.gitignore). -
tt tcm start: add the tcm command. -
tt tcm startORtt tcm start --path /path/to/tcm: added the capability to run TCM in interactive mode. -
tt tcm start --watchdog: implemented Watchdog mode for automatic restarting of TCM upon unexpected termination.
- The following functions were moved from
cluster/cmdtolib/cluster:- CreateCollector → lib/cluster/cluster.go,
- ConnectEtcdUriOpts → lib/cluster/etcd.go,
- DoOnStorage → lib/cluster/etcd.go,
- MakeEtcdOptsFromUriOpts → lib/cluster/etcd.go,
- MakeConnectOptsFromUriOpts → lib/cluster/tarantool.go,
- ConnectTarantool → lib/cluster/tarantool.go.
- Added new submodule
lib/connect.
-
tt pack: added TCM packing when executing the tt pack command, except for the flag without-binaries in this case TCM will not be in the archive. -
Arguments of an internal command are not parsed if it is forced over its existent external counterpart.
-
aeon: fix SSL paths configuration for aeon connection.
-
tt pack rpm: failed to pack if only one of--preinst/--postinstoptions is specified.
The release introduces minor changes in stabilization of tt connect
command. Expanded possibility to connect to aeon base.
Improvement in the work of templates.
tt aeon connect: add connection from theapp:instance_name.- Added support for the
{{ metricsPort }}construct in Go text templates. This new function allows template users to generate a monitoring port value directly within their templates, providing more flexibility and simplifying configuration management.
tt connect: allow to disconnect withCtrl+CorCtrl+\if script execution hung.- Moved
cluster.cmd.UriOptstoconnect.UriOpts.
tt connect: return Lua parse error.tt connect: panic on render empty table.ttcan be built without linking to OpenSSL.
The release introduces an expanded ways to connect to aeon DB using:
configuration file and fixing of using root certificates.
TCM binary could be packed with pack subcommand.
tt pack: added TCM file packaging.tt aeon connect: add connection from the cluster config.
tt aeon: did not use system CAs by default.
The release introduces an experimental support of console for AeonDB and
continues to improve tt play command.
tt aeon connect: add support to connect Aeon database.tt play: support of the SSL parameters by using next flags:sslkeyfile- path to a private SSL key file,sslcertfile- path to an SSL certificate file,sslcafile- path to a trusted certificate authorities (CA) file,sslciphers- colon-separated list of SSL cipher suites the connection.
tt play: support connection to a target instance byapplicationname orapplication:instancename.tt coredump pack: add options to customize coredump packing:-e (--executable): specify Tarantool executable path.-p (--pid): specify PID of the dumped process.-t (--time): specify time of dump (seconds since the Epoch).
tt.yaml: allows to specify a list of modules directories.- Environment variable TT_CLI_MODULES_PATH can be used to specify an extra path with modules.
tt stop/kill/clean/logrotate: no longer need:- Instances scripts for multi-instance applications.
- Cluster config for tarantool3-based cluster applications.
tt logrotate: don't exit at non-running instance, just warn and proceed with the other instances, likett stopandtt killdo.tt coredump pack: if-eoption is omitted first search tarantool executable in tt environment then inPATHinstead of using the hardcoded path/usr/bin/tarantool.tt replicaset downgrade: drop option-v(--version). Pass version as a positional argument rather than option.
tt coredump inspect: fails for tarantool-ee coredump archive if the source directory is missing.tt pack: fails ifetcdortcsare present in the configuration and not available.
The release introduces upgrade and downgrade subcommands for
tt replicaset and adds minor improves to tt cat, tt play and
tt connect.
tt replicaset downgrade: command to downgrade the schema on a Tarantool cluster.-v (--version): (required) specify schema version to downgrade to.-r (--replicaset): specify the replicaset name(s) to downgrade.-t (--timeout): timeout for waiting the LSN synchronization (in seconds) (default 5).
tt replicaset upgrade: command to upgrade the schema on a Tarantool cluster.-r (--replicaset): specify the replicaset name(s) to upgrade.-t (--timeout): timeout for waiting the LSN synchronization (in seconds) (default 5).- supports upgrading the database schema on remote cluster by upgrading
each replicaset individually using
tt replicaset upgrade <URI>.
- New flag
--timestampoftt catandtt playcommands is added to specify operations ending with the given timestamp. This value can be specified as a number or using RFC3339/RFC3339Nano time format. tt connect: add new--evaleroption to support for customizing the way user input is processed.tt cat/play: allows to specify a list of directories to search WAL files.
tt rocks: don't load local configs.
The release updates luarocks and libraries version.
tt rocks: a wrong Lua interpreter is selected.
The release updates the MessagePack library in a release build.
- Release packages were built using the outdated and buggy MessagePack library.
The release introduces a set of subcommands for replicaset roles, improves
clarity regarding the version number to install, enhances the status display,
and adds a flag to disable interactivity when the application is stopped.
Additionally, several fixes were implemented to improve stability.
tt status: displayconfig,box, andreplication upstreamstatuses.--details: display detailed reports of errors and warnings from instances.
tt stopconfirmation prompt.-yoption is added to accept stop without prompting.tt cluster replicaset roles add: command to add roles in config scope provided by flags.tt cluster replicaset roles remove: command to remove roles from config scope provided by flags.tt replicaset roles add: command to add roles in the tarantool replicaset with cluster config (3.0) or cartridge orchestrator.tt replicaset roles remove: command to remove roles in the tarantool replicaset with cluster config (3.0) or cartridge orchestrator.tt install tt|tarantool <version>- allow be incomplete. So2.3will install the the last available release with specified <major=2>.<minor=3> in .
tt consolecommand\set delimiter [marker]don't hangtt.tt log -fcrash on removing log directory.tt connectcrash due to an empty response.tt starterror on start Tarantool 3 with encrypted etcd.tt replicaset vshard bootstrapunable to bootstrap large clusters due to a timeout.tt replicaset vshard bootstraptimeout was 3s instead of 10s.
tt log: a module for viewing instances logs. Supported options:--linesnumber of lines to print.--followprint appended data as log files grow.
tt connect: support format for Tarantool tuples for Tarantool versions >= 3.2.tt enable: create a symbolic link in 'instances_enabled' directory to a script or an application directory.tt replicaset bootstrap: command to bootstrap a Cartridge cluster or an instance.tt rs rebootstrap: re-bootstraps an instance.-s (--self)flag to executettitself and don't search for othertts in bin_dir provided in config.tt startinteractive mode with-ioption.
- Sorted by name order of columns for
tableandttableformats. tt switch tt: does not work withx.x.xversion format.tt install ttreturns expected exit status code on unsuccessful dependency check.tt pack: failed to start instances using systemctl due topermissions denied.tt uninstall tt: does not work withx.y.zversion format.- Ability to update a latest version of
mastertarantool and tt withtt install.
- Do not create Dockerfile.* in application's directory.
- Building Linux AArch64
ttpackages.
tt status: displays the mode of the instance.tt coredump: enhances coredump inspection:tt coredump pack: puts gdb.sh and GDB-extensions into the archive so that it contains everything necessary for convenient coredump inspection.tt coredump inspect: allows archive path as an argument (archive should be created withtt coredump pack).tt coredump inspect: added-soption to specify the location of tarantool sources.
tt cluster publish: ability to publish a new instance config.tt packdoes not create unnecessary directories and removes files that are required only for building from the resulting package.
tt cluster failover: added supervised failover management commands.tt status: addedprettyoption for pretty-formatted table output.TT_CLI_CFG: environment variable to specify the path to the configuration file.tt pack: systemd unit parameterize support.tt replicaset vshard: module to manage vshard in the tarantool replicaset.tt replicaset vshard bootstrap: command to bootstrap vshard.
tt cleanno longer tries to clean files multiple times.- Tarantool 3 config instance fails to use 108 symbols control socket on
tt start. - Incorrect application name in case of explicit providing config path without directories.
- Application build failure during pack with Tarantool from the current environment.
tt create: added single instance application template.tt replicaset promote: command to promote an instance in the tarantool replicaset with cluster config (3.0) or cartridge orchestrator.tt replicaset demote: command to demote an instance in the tarantool replicaset with cluster config (3.0) orchestrator.tt cluster replicaset: module to manage replicaset via 3.0 cluster config storage.tt cluster replicaset promote: command to promote an instance in the replicaset.tt cluster replicaset demote: command to demote an instance in the replicaset.
tt connect --binary: connect to instance using binary port.tt kill: command to stop instance(s) with SIGQUIT and SIGKILL signals.
tt startnow creates binary port.
tt packgenerates a separate systemd unit for each packed application. Common (all instances) unit is removed.tt packdefault data, run, log files location is changed for rpm/deb packages to/var/[log | run | lib]/tarantool/<env_name>- create
/var/[log | run | lib]/tarantool/<env_name>on target system for packed applications.
tt start: not working on FreeBSD.tt packandtt buildfail in verbose mode with "invalid argument" error.tt packpacks applications, which are not valid: instances file is empty, for example.tt packwith--use-dockerfails due to incompatible versions ofttbetween local system and docker container. Install currentttversion in docker image if possible.tt binaries listinvalid argument error iftarantoolis not a symlink.- if a user provides pre or post install script to
tt pack rpm, it uses file name as a script instead of its content.
- Built-in vshard cluster application template.
- Building tt in Linux-aarch64, FreeBSD environments.
tt binaries switch: switch to installed binary.tt download: download Tarantool SDK.
tt replicaset: prefer cartridge instances without critical issues on it during discovery.tt binariesrenamed tott binaries list
tt rocks: not working on macOs.tt install tarantoolfails due to checkout error.tt binaries list: not showingactivetag formasterversion.- missing 3.0 SDK in search results for
tarantool-ee.
- Module
tt replicaset, to manage replicasets:tt replicaset statusto show a cluster status information.
- Disable
tt runtarantool flag parsing.
tt start: not working globalttflags.
- Make cartridge app dependencies less strict.
tt connectauto-completion shows directories and files when there are no running apps.tt rocks --servernow accepts several URL's.- Disable
tt runtarantool flag parsing. - Now
tt runstarts instance without our wrapper.
tt env: add current environment binaries location to the PATH variable.tt cluster: add an ability to specify a key forshow/publishvia URI.tt cluster: add an ability to publish/show configuration from tarantool config storage.
- Print log messages to stderr.
- Global flags are required to be positioned only before child
commands. Example:
tt --cfg tt.yaml install tt. - tt config format: separate tt environment options from application options.
- tt version: additional version information for non-release builds.
- Working directory is changed to an application source directory. If the application is a script, new working directory will be created in instances enabled location.
- Re-worked application runtime artifacts layout:
appsection relative paths are considered relative to working directory, which is an application source directory. Application name sub-directory no longer used for relative paths. Default names are changed for PID-files, control sockets and log files. - Enable logging to file by default for
tarantoolcluster instances. Default log file name for an instance istarantool.log.tarantool's stdout/stderr andttlogs go tott.logfile. - Remove URI with credentials from console title and prompt.
- Ignore app-instance delimiters for Tarantool 3.0 instances.
- Don't use dash as an app-instance delimiter. At the same time,
cartridge_app-stateboardtreated as a special case. - Log rotation functionality and configuration is removed from
tt.tt logrotatecommand re-opens a log file and sends SIGHUP to the childtarantoolprocesses. tt cat: all diagnostic messages are printed to stderr.- Print
tarantoolstdout/stderr and watchdog logs to the same log file -tt.log.
- tt completion: added luarocks completions.
- tarantool-ee: search and install development builds.
tt play: ability to pass username and password via flags and environment variables.- tt cluster: credentials could be passed via environment variables and command flags.
tt rocks: broken--verboseoption.tt binaries: tarantool-ee binaries not shown.tt cluster: recognize app:instance as a etcd URL.
- Use CLI arg connect string for the prompt line and the title to avoid too long prompt line when using 'app:instance' target format.
tt rocks: luarocks version has been updated to 3.9.2.
tt install tarantool/tt: ability to install tarantool and tt from an arbitrary commit. The binary has the name tt/tarantool_ + seven-digit hash.- New
tt packflag--tarantool-versionis added to specify tarantool version for pack in docker. It is supported only with--use-dockerenabled. - Module
tt cluster, to show or publish a cluster or an instance configuration. tt connect: added command\helpto show the help with a list of available commands.tt connect: added command\quitto quit from the console.tt connect: expanded formatting modes for the interactive console.tt rocks: addedadmincommands tree.tt rocks adminimplementsluarocks-admincommands tree.
- Installation failure from a commit hash.
- Crash on
tt install <tool> master. --with-binariesflag fortt packnot working while packing with--cartridge-compat.tarantoolbinary afterpacknow always named"tarantool".
tt packnow skips all.gitfiles in packed environment, not only in main directory.tt connect: the reverse search function to work consistently with tarantool.
tt install tarantool-dev: ability to install tarantool from the local build directory.tt uninstall: smart auto-completion. It shows installed versions of programs.tt uninstall: when removing symlinks and an existing installed version, the symlink will be switched to the latest installed version, so thatttcan continue working with the program.tt connect: support for multi-line commands in the history.- New
tt packflag--cartridge-compatis added to maintain backward compatibility with the cartridge-cli. It is supported only bytgztype packing. tt pack: added option--without-modulesallowing not to take external modules into the pack bundle.tt connect: added command\shortcutslisting all available shortcuts and hotkeys in go-prompt.- initial support for Tarantool 3.0 instances running using cluster config.
tt install tarantool: symlink to the directory with tarantool headers is now updated when installing an existing version.tt connect: terminal failure after throwing an error.
- Set
compat.fiber_slice_defaulttonewby default in cartridge application template. - Treat the directory containing the instances file (instances.y[a]ml) as an application.
tt connect: support for the../and~/at the beginning of the URI, when using unix sockets.
- Panic in tarantool 1.10.15 static build by
tt. - Removed
--use-dockerflag fromtt uninstall tarantoolsince it was added by mistake.
tt buildnow hides building output if-Vis not provided.
tt startnow does not start an instance if it is already running.tt rocksuses rocks repo path relative to tt environment config location.tt connectnow does not crash on\qinput.
- smart auto-completion for
tt start,tt stop,tt restart,tt connect,tt build,tt clean,tt logrotate,tt status. It shows suitable apps, in case of the pattern doesn't contain delimiter:, and suitable instances otherwise. - support tt environment directories overriding using environment variables:
- TT_CLI_REPO_ROCKS environment variable value is used as rocks repository path if it is set and there is no tt.repo.rocks in tt configuration file or tt.repo.rocks directory does not include repository manifest file.
- TT_CLI_TARANTOOL_PREFIX environment variable value is used for as tarantool installation prefix directory for rocks commands if it is set and tarantool executable is found in PATH.
- smart auto-completion for
tt create. It shows a list of built-in templates and templates from the config. tt connect: support for the timestamp format in the history file.
tt install tarantoolwithout version specification now installs the latest release.tt install/search tarantool-eenow uses credentials fromtarantool.iocustomer zone. Also, installation now requires specifying the version.tt search tarantool-eeoptions changed. A new--versionflag has been added to allow search for a specific release. The--devand--dbgoptions have been merged into a single--debugoption.tt searchnow uses subcommands for searching tarantool/tarantool-ee/tt binaries
--dynamicoption fortt install tarantoolcommand to build non-static tarantool executable.
tt connectcommand does not break a console after executingos.exit()command anymore.
tt cartridgecommand takes into account run dir path from thettenvironment. So most of thett cartridgesub-commands are able to work without specifying--run-diroption.tt installcommand checks it's write rights to binary and include directories before installing binaries.
tt install/uninstallcommand line interface is updated. Program names have become sub-commands with their own options.
- A configurable variable
cluster_cookiefortt create cartridgetemplate. tt buildaccepts application name for building.- Creating wal, vinyl and memtx directories for
tt pack. If these directories are not located in the same directory in the environment for packing, the result package will contain separate snap/vinyl/wal directories for corresponding artifacts.
- Packing symlinks into RPM package.
tt uninstalldoes not ask version if only one version of a program is installed.tt rocks initis disabled.
- Follow-up message support for application templates.
- tarantool_layout config option to enable compatibility mode with tarantoolctl
artifacts layout. If this option is set to
true,ttwill not create sub-directories for runtime artifacts such as control socket, pid file and log file. This option affects only single instance applications. - An ability to set different directories for WAL, vinyl and snapshots artifacts.
tt instancescommand to print a list of enabled applications.- SSL options for
tt connectcommand. - An ability to pass arguments to a connect command.
tt binariescommand. It shows a list of installed binaries and their versions.
- tt config is renamed to tt.yaml.
- Do not use
makecommand options fortarantoolbuild ifMAKEFLAGSenvironment variable is set. binaries,build,check,clean,create,install,instances,logrotate,pack,restart,run,start,status,stop,uninstallrequire environment configuration file.
- Output of the
helpwith all commands. - Allow more characters for URI credentials.
- Support of rocks repository specified in tt config.
cfg dumpmodule. It prints tt environment configuration.--use-dockeroption fortt packfor packing environments in docker container.- Support of MacOS.
- Updated cartridge-cli version to 2.12.4.
tt restartconfirmation prompt.-yoption is added to accept restart without prompting.tt packwill generate systemd unit for rpm and deb packages.--use-dockeroption fortt installto build Tarantool in Ubuntu 16.04 container.- Ability to use the
start/stop/restart/status/checkcommands without arguments to interact with all instances of the environment simultaneously. - Starting from version 2.8.1, we can specify configuration parameters of tarantool via special environment variables. Added support for this feature when running older versions of tarantools via tt.
tt cartridgesub-commandscreate,build,packare removed.removecommand is renamed touninstall.- Updated values in system
tarantool.yamlforbin_dir,inc_dirandrepo: distfiles.
- Working of the
helpmodule with multi-level commands (commands with several subcommands). - Using the system
tarantool.yamlwhen installing from the repository.
- Fixed building for MacOS.
- A unified error writing style has been introduced.
- Module
tt init, to create tt environment configuration file. - Module
tt daemon, to manage thettdaemon. - Built-in application templates support. Cartridge application template is added.
- Using
default_cfgfrom.tarantoolctlfortarantool.yamlgeneration intt init.
- Modules
tt start,tt connectandtt catridgenow use relative paths for unix sockets. It allows to use socket paths longer than sun_path limit.(108/106 on linux/macOS) e.g foo/bar.sock -> ./bar.sock
- Module
tt version, to get information about the version of the CLI. - Module
tt completion, to generate autocompletion for a specified shell. - Module
tt help, to get information about the CLI and its modules. - Module
tt start, responsible for launching the instance according to the application file. - Module
tt stop, responsible for terminating the instance. - Module
tt status, to get information about the state of the instance. - Module
tt restart, responsible for restarting of the instance. - Module
tt logrotate, to rotate instance logs. - Module
tt check, to check an application file for syntax errors. - Module
tt connect, used to connect to a running instance. - Module
tt rocks, LuaRocks package manager. - Module
tt cat, to print into stdout the contents of .snap/.xlog files. - Module
tt play, to play the contents of .snap/.xlog files to another Tarantool instance. - Module
tt coredump, to pack/unpack/inspect tarantool coredump. - Module
tt run, to start tarantool instance using tt wrapper. - Module
tt search, to show available tt/tarantool versions. - Module
tt create, to create an application from a template. - Module
tt build, to build an application. - Module
tt install, to install tarantool/tt. - Module
tt remove, to remove tarantool/tt.