From d4e31f149ca0fd5271a80fb7ef10f4525615b439 Mon Sep 17 00:00:00 2001 From: Alexander Sherikov Date: Tue, 23 Jul 2024 00:28:36 +0400 Subject: [PATCH] Bump to 2.3.2 --- ariles/CHANGELOG.md | 8 +++++ ariles/CMakeLists.txt | 2 +- ariles/include/ariles2/adapters/std_vector.h | 32 +++++++++++++++++++ ariles/tests/api_v2/regression_test_226.ref | 10 ++++++ .../tests/api_v2/types/complex_auto_declare.h | 1 + ariles/tests/api_v2/types/complex_base.h | 9 ++++++ ariles/tests/api_v2/types/complex_verbose.h | 2 ++ ariles/tests/api_v2/types/copy/complex.h | 1 + ariles2_core_ws/CHANGELOG.rst | 5 +++ ariles2_core_ws/CMakeLists.txt | 2 +- ariles2_core_ws/package.xml | 2 +- ariles2_graphviz_ws/CHANGELOG.rst | 5 +++ ariles2_graphviz_ws/CMakeLists.txt | 2 +- ariles2_graphviz_ws/package.xml | 2 +- ariles2_namevalue2_ws/CMakeLists.txt | 2 +- ariles2_namevalue2_ws/package.xml | 2 +- ariles2_octave_ws/CHANGELOG.rst | 5 +++ ariles2_octave_ws/CMakeLists.txt | 2 +- ariles2_octave_ws/package.xml | 2 +- ariles2_pugixml_ws/CHANGELOG.rst | 5 +++ ariles2_pugixml_ws/CMakeLists.txt | 2 +- ariles2_pugixml_ws/package.xml | 2 +- ariles2_rapidjson_ws/CHANGELOG.rst | 5 +++ ariles2_rapidjson_ws/CMakeLists.txt | 2 +- ariles2_rapidjson_ws/package.xml | 2 +- ariles2_ros2param_ws/CHANGELOG.rst | 5 +++ ariles2_ros2param_ws/CMakeLists.txt | 2 +- ariles2_ros2param_ws/package.xml | 2 +- ariles2_rosparam_ws/CHANGELOG.rst | 5 +++ ariles2_rosparam_ws/CMakeLists.txt | 2 +- ariles2_rosparam_ws/package.xml | 2 +- ariles2_yamlcpp_ws/CHANGELOG.rst | 5 +++ ariles2_yamlcpp_ws/CMakeLists.txt | 2 +- ariles2_yamlcpp_ws/package.xml | 2 +- 34 files changed, 122 insertions(+), 19 deletions(-) diff --git a/ariles/CHANGELOG.md b/ariles/CHANGELOG.md index 2f42629a..b13012c4 100644 --- a/ariles/CHANGELOG.md +++ b/ariles/CHANGELOG.md @@ -1,6 +1,14 @@ CHANGELOG ========= +2.3.2 +===== + +Fixed +----- +* std::vector support + + 2.3.1 ===== diff --git a/ariles/CMakeLists.txt b/ariles/CMakeLists.txt index 03a89204..028bb7c5 100644 --- a/ariles/CMakeLists.txt +++ b/ariles/CMakeLists.txt @@ -1,6 +1,6 @@ # General parameters cmake_minimum_required (VERSION 3.5.0) -project(ariles2 VERSION 2.3.1) +project(ariles2 VERSION 2.3.2) set(ARILES_HOMEPAGE http://asherikov.github.io/ariles/2) diff --git a/ariles/include/ariles2/adapters/std_vector.h b/ariles/include/ariles2/adapters/std_vector.h index 41df9855..0569c7b0 100644 --- a/ariles/include/ariles2/adapters/std_vector.h +++ b/ariles/include/ariles2/adapters/std_vector.h @@ -42,6 +42,23 @@ namespace ariles2 } visitor.endArray(); } + + template + void ARILES2_VISIBILITY_ATTRIBUTE apply_read( + t_Visitor &visitor, + std::vector &entry, + const typename t_Visitor::Parameters ¶m) + { + CPPUT_TRACE_FUNCTION; + entry.resize(visitor.startArray()); + for (std::size_t i = 0; i < entry.size(); ++i) + { + bool value; + visitor.visitArrayElement(value, param); + entry[i] = value; + } + visitor.endArray(); + } } // namespace read } // namespace ariles2 @@ -126,6 +143,21 @@ namespace ariles2 apply_process(visitor, value, param); } } + + template + void ARILES2_VISIBILITY_ATTRIBUTE apply_process( + const t_Visitor &visitor, + std::vector &entry, + const typename t_Visitor::Parameters ¶m) + { + CPPUT_TRACE_FUNCTION; + for (std::size_t i = 0; i < entry.size(); ++i) + { + bool value = entry[i]; + apply_process(visitor, value, param); + entry[i] = value; + } + } } // namespace process } // namespace ariles2 diff --git a/ariles/tests/api_v2/regression_test_226.ref b/ariles/tests/api_v2/regression_test_226.ref index 84a0e5ff..20dbc33d 100644 --- a/ariles/tests/api_v2/regression_test_226.ref +++ b/ariles/tests/api_v2/regression_test_226.ref @@ -23,6 +23,16 @@ ariles_std_vector_3[label="std_vector_3"]; ariles_std_vector->ariles_std_vector_3; ariles_std_vector_4[label="std_vector_4"]; ariles_std_vector->ariles_std_vector_4; +ariles_std_vector_bool[label="std_vector_bool"]; +ariles->ariles_std_vector_bool; +ariles_std_vector_bool_0[label="std_vector_bool_0"]; +ariles_std_vector_bool->ariles_std_vector_bool_0; +ariles_std_vector_bool_1[label="std_vector_bool_1"]; +ariles_std_vector_bool->ariles_std_vector_bool_1; +ariles_std_vector_bool_2[label="std_vector_bool_2"]; +ariles_std_vector_bool->ariles_std_vector_bool_2; +ariles_std_vector_bool_3[label="std_vector_bool_3"]; +ariles_std_vector_bool->ariles_std_vector_bool_3; ariles_std_nested_vector[label="std_nested_vector"]; ariles->ariles_std_nested_vector; ariles_std_nested_vector_0[label="std_nested_vector_0"]; diff --git a/ariles/tests/api_v2/types/complex_auto_declare.h b/ariles/tests/api_v2/types/complex_auto_declare.h index 6aac749a..de0ed8da 100644 --- a/ariles/tests/api_v2/types/complex_auto_declare.h +++ b/ariles/tests/api_v2/types/complex_auto_declare.h @@ -23,6 +23,7 @@ namespace ariles_tests ARILES2_TYPED_ENTRY_(v, complex_float, std::complex) \ ARILES2_TYPED_ENTRY_(v, string, std::string) \ ARILES2_TYPED_ENTRY_(v, std_vector, std::vector) \ + ARILES2_TYPED_ENTRY_(v, std_vector_bool, std::vector) \ ARILES2_TYPED_ENTRY_(v, std_nested_vector, std::vector>) \ ARILES2_TYPED_ENTRY_(v, some_enum, SomeEnum) \ ARILES2_TYPED_ENTRY_(v, boolean_true, bool) \ diff --git a/ariles/tests/api_v2/types/complex_base.h b/ariles/tests/api_v2/types/complex_base.h index 12e277eb..446c83f2 100644 --- a/ariles/tests/api_v2/types/complex_base.h +++ b/ariles/tests/api_v2/types/complex_base.h @@ -51,6 +51,8 @@ namespace ariles_tests impl->std_vector_[i] = i * 5.22 + 2.3; } + impl->std_vector_bool_ = {false, false, true, false}; + impl->std_nested_vector_.resize(3); for (std::size_t i = 0; i < impl->std_nested_vector_.size(); ++i) { @@ -131,6 +133,8 @@ namespace ariles_tests impl->std_vector_[i] = GET_RANDOM_REAL; } + impl->std_vector_bool_ = {false, true, false}; + impl->std_nested_vector_.resize(3); for (std::size_t i = 0; i < impl->std_nested_vector_.size(); ++i) { @@ -221,6 +225,7 @@ namespace ariles_tests BOOST_CHECK_EQUAL(configurable_out.better_enum_, configurable_in.better_enum_); BOOST_CHECK_EQUAL(configurable_out.std_vector_.size(), configurable_in.std_vector_.size()); + BOOST_CHECK_EQUAL(configurable_out.std_vector_bool_.size(), configurable_in.std_vector_bool_.size()); BOOST_CHECK_EQUAL(configurable_out.std_nested_vector_.size(), configurable_in.std_nested_vector_.size()); for (std::size_t i = 0; i < configurable_out.std_vector_.size(); ++i) @@ -228,6 +233,10 @@ namespace ariles_tests BOOST_CHECK_CLOSE(configurable_out.std_vector_[i], configurable_in.std_vector_[i], g_tolerance); } + for (std::size_t i = 0; i < configurable_out.std_vector_bool_.size(); ++i) + { + BOOST_CHECK_EQUAL(configurable_out.std_vector_bool_[i], configurable_in.std_vector_bool_[i]); + } for (std::size_t i = 0; i < configurable_out.std_nested_vector_.size(); ++i) { diff --git a/ariles/tests/api_v2/types/complex_verbose.h b/ariles/tests/api_v2/types/complex_verbose.h index a0aa6e2e..12be0e4f 100644 --- a/ariles/tests/api_v2/types/complex_verbose.h +++ b/ariles/tests/api_v2/types/complex_verbose.h @@ -24,6 +24,7 @@ namespace ariles_tests ARILES2_ENTRY_(v, complex_float) \ ARILES2_ENTRY_(v, string) \ ARILES2_ENTRY_(v, std_vector) \ + ARILES2_ENTRY_(v, std_vector_bool) \ ARILES2_ENTRY_(v, std_nested_vector) \ ARILES2_ENTRY_(v, some_enum) \ ARILES2_ENTRY_(v, boolean_true) \ @@ -71,6 +72,7 @@ namespace ariles_tests std::vector std_vector_; + std::vector std_vector_bool_; std::vector> std_nested_vector_; std::string string_; diff --git a/ariles/tests/api_v2/types/copy/complex.h b/ariles/tests/api_v2/types/copy/complex.h index cf4dd461..c090b8a6 100644 --- a/ariles/tests/api_v2/types/copy/complex.h +++ b/ariles/tests/api_v2/types/copy/complex.h @@ -22,6 +22,7 @@ namespace ariles_tests std::vector std_vector; + std::vector std_vector_bool; std::vector> std_nested_vector; std::string string; diff --git a/ariles2_core_ws/CHANGELOG.rst b/ariles2_core_ws/CHANGELOG.rst index 8800f1bd..9f2e385e 100644 --- a/ariles2_core_ws/CHANGELOG.rst +++ b/ariles2_core_ws/CHANGELOG.rst @@ -2,6 +2,11 @@ Changelog for package ariles2_core_ws ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +2.3.2 (2024-07-22) +------------------ + +- See https://github.com/asherikov/ariles/blob/head_2/CHANGELOG.md + 2.3.1 (2024-07-21) ------------------ diff --git a/ariles2_core_ws/CMakeLists.txt b/ariles2_core_ws/CMakeLists.txt index 73db8a09..e15084dc 100644 --- a/ariles2_core_ws/CMakeLists.txt +++ b/ariles2_core_ws/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.0) -project(ariles2_core_ws VERSION 2.3.1) +project(ariles2_core_ws VERSION 2.3.2) option(ARILES_ROS_ENABLE_TESTS "Enable tests." OFF) diff --git a/ariles2_core_ws/package.xml b/ariles2_core_ws/package.xml index dab2b5b2..613bc22e 100644 --- a/ariles2_core_ws/package.xml +++ b/ariles2_core_ws/package.xml @@ -1,7 +1,7 @@ ariles2_core_ws - 2.3.1 + 2.3.2 Ariles serialization/configuration library (core module) Alexander Sherikov diff --git a/ariles2_graphviz_ws/CHANGELOG.rst b/ariles2_graphviz_ws/CHANGELOG.rst index eee37f4d..1d24ad04 100644 --- a/ariles2_graphviz_ws/CHANGELOG.rst +++ b/ariles2_graphviz_ws/CHANGELOG.rst @@ -2,6 +2,11 @@ Changelog for package ariles2_graphviz_ws ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +2.3.2 (2024-07-22) +------------------ + +- See https://github.com/asherikov/ariles/blob/head_2/CHANGELOG.md + 2.3.1 (2024-07-21) ------------------ diff --git a/ariles2_graphviz_ws/CMakeLists.txt b/ariles2_graphviz_ws/CMakeLists.txt index 89cdcb10..919f27f8 100644 --- a/ariles2_graphviz_ws/CMakeLists.txt +++ b/ariles2_graphviz_ws/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.0) -project(ariles2_graphviz_ws VERSION 2.3.1) +project(ariles2_graphviz_ws VERSION 2.3.2) option(ARILES_ROS_ENABLE_TESTS "Enable tests." OFF) diff --git a/ariles2_graphviz_ws/package.xml b/ariles2_graphviz_ws/package.xml index 58940467..181a56ce 100644 --- a/ariles2_graphviz_ws/package.xml +++ b/ariles2_graphviz_ws/package.xml @@ -1,7 +1,7 @@ ariles2_graphviz_ws - 2.3.1 + 2.3.2 Ariles serialization/configuration library (graphviz module) Alexander Sherikov diff --git a/ariles2_namevalue2_ws/CMakeLists.txt b/ariles2_namevalue2_ws/CMakeLists.txt index 4829ba72..59e18ffa 100644 --- a/ariles2_namevalue2_ws/CMakeLists.txt +++ b/ariles2_namevalue2_ws/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.0) -project(ariles2_namevalue2_ws VERSION 2.3.1) +project(ariles2_namevalue2_ws VERSION 2.3.2) option(ARILES_ROS_ENABLE_TESTS "Enable tests." OFF) diff --git a/ariles2_namevalue2_ws/package.xml b/ariles2_namevalue2_ws/package.xml index 756dc85d..b4954edf 100644 --- a/ariles2_namevalue2_ws/package.xml +++ b/ariles2_namevalue2_ws/package.xml @@ -1,7 +1,7 @@ ariles2_namevalue2_ws - 2.3.1 + 2.3.2 Ariles serialization/configuration library (namevalue2 module) Alexander Sherikov diff --git a/ariles2_octave_ws/CHANGELOG.rst b/ariles2_octave_ws/CHANGELOG.rst index cc1875c7..4ce4fcf5 100644 --- a/ariles2_octave_ws/CHANGELOG.rst +++ b/ariles2_octave_ws/CHANGELOG.rst @@ -2,6 +2,11 @@ Changelog for package ariles2_octave_ws ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +2.3.2 (2024-07-22) +------------------ + +- See https://github.com/asherikov/ariles/blob/head_2/CHANGELOG.md + 2.3.1 (2024-07-21) ------------------ diff --git a/ariles2_octave_ws/CMakeLists.txt b/ariles2_octave_ws/CMakeLists.txt index 9cbb6ce2..bf20c472 100644 --- a/ariles2_octave_ws/CMakeLists.txt +++ b/ariles2_octave_ws/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.0) -project(ariles2_octave_ws VERSION 2.3.1) +project(ariles2_octave_ws VERSION 2.3.2) option(ARILES_ROS_ENABLE_TESTS "Enable tests." OFF) diff --git a/ariles2_octave_ws/package.xml b/ariles2_octave_ws/package.xml index 4c06c845..84289e1b 100644 --- a/ariles2_octave_ws/package.xml +++ b/ariles2_octave_ws/package.xml @@ -1,7 +1,7 @@ ariles2_octave_ws - 2.3.1 + 2.3.2 Ariles serialization/configuration library (octave module) Alexander Sherikov diff --git a/ariles2_pugixml_ws/CHANGELOG.rst b/ariles2_pugixml_ws/CHANGELOG.rst index e0bce25e..1d7612d3 100644 --- a/ariles2_pugixml_ws/CHANGELOG.rst +++ b/ariles2_pugixml_ws/CHANGELOG.rst @@ -2,6 +2,11 @@ Changelog for package ariles2_pugixml_ws ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +2.3.2 (2024-07-22) +------------------ + +- See https://github.com/asherikov/ariles/blob/head_2/CHANGELOG.md + 2.3.1 (2024-07-21) ------------------ diff --git a/ariles2_pugixml_ws/CMakeLists.txt b/ariles2_pugixml_ws/CMakeLists.txt index 6c93cc67..dc412be9 100644 --- a/ariles2_pugixml_ws/CMakeLists.txt +++ b/ariles2_pugixml_ws/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.0) -project(ariles2_pugixml_ws VERSION 2.3.1) +project(ariles2_pugixml_ws VERSION 2.3.2) option(ARILES_ROS_ENABLE_TESTS "Enable tests." OFF) diff --git a/ariles2_pugixml_ws/package.xml b/ariles2_pugixml_ws/package.xml index e94a5113..12d1860d 100644 --- a/ariles2_pugixml_ws/package.xml +++ b/ariles2_pugixml_ws/package.xml @@ -1,7 +1,7 @@ ariles2_pugixml_ws - 2.3.1 + 2.3.2 Ariles serialization/configuration library (PugiXML module) Alexander Sherikov diff --git a/ariles2_rapidjson_ws/CHANGELOG.rst b/ariles2_rapidjson_ws/CHANGELOG.rst index 956b8053..0ebe7a44 100644 --- a/ariles2_rapidjson_ws/CHANGELOG.rst +++ b/ariles2_rapidjson_ws/CHANGELOG.rst @@ -2,6 +2,11 @@ Changelog for package ariles2_rapidjson_ws ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +2.3.2 (2024-07-22) +------------------ + +- See https://github.com/asherikov/ariles/blob/head_2/CHANGELOG.md + 2.3.1 (2024-07-21) ------------------ diff --git a/ariles2_rapidjson_ws/CMakeLists.txt b/ariles2_rapidjson_ws/CMakeLists.txt index 4bc5dac1..c028b757 100644 --- a/ariles2_rapidjson_ws/CMakeLists.txt +++ b/ariles2_rapidjson_ws/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.0) -project(ariles2_rapidjson_ws VERSION 2.3.1) +project(ariles2_rapidjson_ws VERSION 2.3.2) option(ARILES_ROS_ENABLE_TESTS "Enable tests." OFF) diff --git a/ariles2_rapidjson_ws/package.xml b/ariles2_rapidjson_ws/package.xml index cddd0608..663a5314 100644 --- a/ariles2_rapidjson_ws/package.xml +++ b/ariles2_rapidjson_ws/package.xml @@ -1,7 +1,7 @@ ariles2_rapidjson_ws - 2.3.1 + 2.3.2 Ariles serialization/configuration library (RapidJSON module) Alexander Sherikov diff --git a/ariles2_ros2param_ws/CHANGELOG.rst b/ariles2_ros2param_ws/CHANGELOG.rst index 1f85b213..c799a354 100644 --- a/ariles2_ros2param_ws/CHANGELOG.rst +++ b/ariles2_ros2param_ws/CHANGELOG.rst @@ -2,6 +2,11 @@ Changelog for package ariles2_ros2param_ws ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +2.3.2 (2024-07-22) +------------------ + +- See https://github.com/asherikov/ariles/blob/head_2/CHANGELOG.md + 2.3.1 (2024-07-21) ------------------ diff --git a/ariles2_ros2param_ws/CMakeLists.txt b/ariles2_ros2param_ws/CMakeLists.txt index ba3af1eb..2359f8bb 100644 --- a/ariles2_ros2param_ws/CMakeLists.txt +++ b/ariles2_ros2param_ws/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.0) -project(ariles2_ros2param_ws VERSION 2.3.1) +project(ariles2_ros2param_ws VERSION 2.3.2) option(ARILES_ROS_ENABLE_TESTS "Enable tests." OFF) diff --git a/ariles2_ros2param_ws/package.xml b/ariles2_ros2param_ws/package.xml index 89e0005f..91767d32 100644 --- a/ariles2_ros2param_ws/package.xml +++ b/ariles2_ros2param_ws/package.xml @@ -1,7 +1,7 @@ ariles2_ros2param_ws - 2.3.1 + 2.3.2 Ariles serialization/configuration library (ros2param module) Alexander Sherikov diff --git a/ariles2_rosparam_ws/CHANGELOG.rst b/ariles2_rosparam_ws/CHANGELOG.rst index 53c47b0f..501501c2 100644 --- a/ariles2_rosparam_ws/CHANGELOG.rst +++ b/ariles2_rosparam_ws/CHANGELOG.rst @@ -2,6 +2,11 @@ Changelog for package ariles2_rosparam_ws ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +2.3.2 (2024-07-22) +------------------ + +- See https://github.com/asherikov/ariles/blob/head_2/CHANGELOG.md + 2.3.1 (2024-07-21) ------------------ diff --git a/ariles2_rosparam_ws/CMakeLists.txt b/ariles2_rosparam_ws/CMakeLists.txt index 20f4bb18..cde48fa4 100644 --- a/ariles2_rosparam_ws/CMakeLists.txt +++ b/ariles2_rosparam_ws/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.0) -project(ariles2_rosparam_ws VERSION 2.3.1) +project(ariles2_rosparam_ws VERSION 2.3.2) option(ARILES_ROS_ENABLE_TESTS "Enable tests." OFF) diff --git a/ariles2_rosparam_ws/package.xml b/ariles2_rosparam_ws/package.xml index 3e0acdfd..c1225051 100644 --- a/ariles2_rosparam_ws/package.xml +++ b/ariles2_rosparam_ws/package.xml @@ -1,7 +1,7 @@ ariles2_rosparam_ws - 2.3.1 + 2.3.2 Ariles serialization/configuration library (rosparam module) Alexander Sherikov diff --git a/ariles2_yamlcpp_ws/CHANGELOG.rst b/ariles2_yamlcpp_ws/CHANGELOG.rst index 39080215..739c48ad 100644 --- a/ariles2_yamlcpp_ws/CHANGELOG.rst +++ b/ariles2_yamlcpp_ws/CHANGELOG.rst @@ -2,6 +2,11 @@ Changelog for package ariles2_yamlcpp_ws ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +2.3.2 (2024-07-22) +------------------ + +- See https://github.com/asherikov/ariles/blob/head_2/CHANGELOG.md + 2.3.1 (2024-07-21) ------------------ diff --git a/ariles2_yamlcpp_ws/CMakeLists.txt b/ariles2_yamlcpp_ws/CMakeLists.txt index c3cff04c..dfe44d4d 100644 --- a/ariles2_yamlcpp_ws/CMakeLists.txt +++ b/ariles2_yamlcpp_ws/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.0) -project(ariles2_yamlcpp_ws VERSION 2.3.1) +project(ariles2_yamlcpp_ws VERSION 2.3.2) option(ARILES_ROS_ENABLE_TESTS "Enable tests." OFF) diff --git a/ariles2_yamlcpp_ws/package.xml b/ariles2_yamlcpp_ws/package.xml index e5ab3e25..92c043b4 100644 --- a/ariles2_yamlcpp_ws/package.xml +++ b/ariles2_yamlcpp_ws/package.xml @@ -1,7 +1,7 @@ ariles2_yamlcpp_ws - 2.3.1 + 2.3.2 Ariles serialization/configuration library (yaml-cpp module) Alexander Sherikov