Date: 2021-04-21

Tag: 1.10.10

## Overview

1.10.10 is the next stable release in the [long-term support (LTS)
version][release_policy][release_policy] 1.10.x release series.

The label "stable" means there are 1.10.x-based applications running in
production for quite a while without known crashes, incorrect results or
other showstopper bugs.

This release introduces 12 improvements and resolves roughly 3
issues since the 1.10.9 version.

[release_policy]: https://www.tarantool.io/en/doc/1.10/dev_guide/release_management/#release-policy
[issues]: https://github.com/tarantool/tarantool/issues

## Compatibility

Tarantool 1.10.x is backward compatible with Tarantool 1.9.x in binary data
layout, client-server protocol and replication protocol.

Please [upgrade][upgrade] using the `box.schema.upgrade()` procedure to unlock
all the new features of the 1.10.x series.

[upgrade]: https://www.tarantool.io/en/doc/1.10/book/admin/upgrades/

## Functionality added or changed

### Build

* Updated CMake minimum required version in Tarantool build infrastructure to 3.1.
* Stop publishing new binary packages for CentOS 6.
* Stop publishing new binary packages for Debian Jessie.
* Publish binary packages for Fedora 33 (gh-5502).
* Backported `-DENABLE_LTO=ON/OFF` cmake option (gh-3117, gh-3743). It is
  useful for building packages for Fedora 33 (gh-5502).
* Bump built-in zstd version from v1.3.3 to v1.4.8 (part of gh-5502).
* libcurl symbols in the case of bundled libcurl are now exported (gh-5223,
  gh-5542).
* Enable smtp and smtps protocols in bundled libcurl (gh-4559).
* Ship libcurl headers to system path "${PREFIX}/include/tarantool" in the
  case of libcurl included as bundled library or static build (gh-4559).

### Testing

* We're moving to GitHub Actions (gh-5662).
* Implemented self-sufficient LuaJIT testing environment. As a result LuaJIT
  build system is partially ported to CMake and all testing machinery is
  enclosed within tarantool/luajit repository (gh-4862, gh-5470).
* Switch to Python 3 by default in a test infrastructure. (gh-5652)

## Bugs fixed

### Core

* Extensive usage of `uri` and `uuid` modules with debug log level could lead to
  a crash or corrupted result of the functions from these modules. Also their
  usage from the callbacks passed to `ffi.gc()` could lead to the same but much
  easier. The same could happen with some functions from the modules `fio`,
  `box.tuple`, `iconv` (gh-5632).

### Lua

* Fixed -e option, when tarantool always entered interactive mode
  when stdin is a tty. Now, `tarantool -e 'print"Hello"'` doesn't
  enter interactive mode as it was before, just prints 'Hello' and
  exits (gh-5040).

### Build

* Make recovering with force_recovery option delete newer than snapshot vylog
  files. So that instance can recover after incidents during checkpoint(gh-5823).
