public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/xeus] epel10: Update to latest version (#2007795)
@ 2026-07-11 22:28 Elliott Sales de Andrade
0 siblings, 0 replies; only message in thread
From: Elliott Sales de Andrade @ 2026-07-11 22:28 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/xeus
Branch : epel10
Commit : 4bff22283c24aa4d3f112916cf52f8201084cedc
Author : Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date : 2023-01-22T01:13:45-05:00
Stats : +5/-1313 in 6 file(s)
URL : https://src.fedoraproject.org/rpms/xeus/c/4bff22283c24aa4d3f112916cf52f8201084cedc?branch=epel10
Log:
Update to latest version (#2007795)
---
diff --git a/.gitignore b/.gitignore
index d6f8858..e0bb1ec 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,3 +19,4 @@
/xeus-1.0.3.tar.gz
/xeus-1.0.4.tar.gz
/xeus-2.0.0.tar.gz
+/xeus-3.0.5.tar.gz
diff --git a/0001-switched-from-gtest-to-doctest-292.patch b/0001-switched-from-gtest-to-doctest-292.patch
deleted file mode 100644
index f6aecac..0000000
--- a/0001-switched-from-gtest-to-doctest-292.patch
+++ /dev/null
@@ -1,523 +0,0 @@
-From 8964ef30354f59c19ed5f723c579350eb249c0ba Mon Sep 17 00:00:00 2001
-From: Thorsten Beier <derthorstenbeier@gmail.com>
-Date: Tue, 21 Sep 2021 13:33:39 +0200
-Subject: [PATCH 1/3] switched from gtest to doctest (#292)
-
-Switchted to doctest
-
-Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
----
- .appveyor.yml | 4 +-
- .azure-pipelines/unix-build.yml | 2 +-
- CMakeLists.txt | 3 +-
- environment-dev.yml | 1 +
- test/CMakeLists.txt | 55 +---------
- test/copyGTest.cmake.in | 23 ----
- test/downloadGTest.cmake.in | 24 -----
- test/test_main.cpp | 2 +
- test/test_unit_kernel.cpp | 36 ++++---
- test/test_xin_memory_history_manager.cpp | 130 ++++++++++++-----------
- 10 files changed, 98 insertions(+), 182 deletions(-)
- delete mode 100644 test/copyGTest.cmake.in
- delete mode 100644 test/downloadGTest.cmake.in
- create mode 100644 test/test_main.cpp
-
-diff --git a/.appveyor.yml b/.appveyor.yml
-index e6596e8..a4d8393 100644
---- a/.appveyor.yml
-+++ b/.appveyor.yml
-@@ -29,12 +29,12 @@ install:
- - conda update -q conda
- - conda info -a
- - conda install mamba -c conda-forge
-- - mamba install cmake cppzmq=4.7.1 zeromq=4.3.2 xtl=0.7 nlohmann_json OpenSSL=1 -c conda-forge
-+ - mamba install cmake cppzmq=4.7.1 zeromq=4.3.2 xtl=0.7 nlohmann_json OpenSSL=1 doctest -c conda-forge
- - mamba install pytest jupyter_kernel_test=0.3.0 -c conda-forge
- # Build
- - mkdir build
- - cd build
-- - cmake -G "NMake Makefiles" -D CMAKE_INSTALL_PREFIX=%MINICONDA%\\LIBRARY -D XEUS_DOWNLOAD_GTEST=ON -Dgtest_force_shared_crt=ON ..
-+ - cmake -G "NMake Makefiles" -D CMAKE_INSTALL_PREFIX=%MINICONDA%\\LIBRARY -D XEUS_BUILD_TESTS=ON ..
- - nmake install
- # Build example
- - cd ..\example
-diff --git a/.azure-pipelines/unix-build.yml b/.azure-pipelines/unix-build.yml
-index 733972b..cfe556b 100644
---- a/.azure-pipelines/unix-build.yml
-+++ b/.azure-pipelines/unix-build.yml
-@@ -25,7 +25,7 @@ steps:
- if [[ $(xeus_build_shared_lib) == '0' ]]; then
- CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DXEUS_BUILD_SHARED_LIBS=OFF";
- fi
-- cmake -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX -DXEUS_DOWNLOAD_GTEST=ON -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_C_COMPILER=$CC -DCMAKE_CXX_COMPILER=$CXX $CMAKE_EXTRA_ARGS $(Build.SourcesDirectory)
-+ cmake -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX -DXEUS_BUILD_TESTS=ON -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_C_COMPILER=$CC -DCMAKE_CXX_COMPILER=$CXX $CMAKE_EXTRA_ARGS $(Build.SourcesDirectory)
- displayName: Configure xeus
- workingDirectory: $(Build.BinariesDirectory)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 41e6692..5cd2aab 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -55,7 +55,6 @@ option(XEUS_STATIC_DEPENDENCIES "link statically with xeus dependencies" OFF)
-
- # Test options
- option(XEUS_BUILD_TESTS "xeus test suite" OFF)
--option(XEUS_DOWNLOAD_GTEST "build gtest from downloaded sources" OFF)
-
- # Static build configuration
- # ==========================
-@@ -352,7 +351,7 @@ endif ()
-
- include(CTest)
-
--if(XEUS_DOWNLOAD_GTEST OR GTEST_SRC_DIR OR XEUS_BUILD_TESTS)
-+if(XEUS_BUILD_TESTS)
- set(BUILD_TESTING ON)
- message(STATUS "tests enabled")
- else ()
-diff --git a/environment-dev.yml b/environment-dev.yml
-index a6c688a..d109add 100644
---- a/environment-dev.yml
-+++ b/environment-dev.yml
-@@ -14,5 +14,6 @@ dependencies:
- - libopenssl-static=1
- - nlohmann_json
- # Test dependencies
-+ - doctest >= 2.4.6
- - pytest
- - jupyter_kernel_test=0.3.0
-diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
-index 61aaade..b24a3e5 100644
---- a/test/CMakeLists.txt
-+++ b/test/CMakeLists.txt
-@@ -48,44 +48,15 @@ if(CMAKE_CXX_COMPILER_ID MATCHES MSVC)
- set(CMAKE_EXE_LINKER_FLAGS /MANIFEST:NO)
- endif()
-
--if(XEUS_DOWNLOAD_GTEST OR GTEST_SRC_DIR)
-- if(XEUS_DOWNLOAD_GTEST)
-- # Download and unpack googletest at configure time
-- configure_file(downloadGTest.cmake.in googletest-download/CMakeLists.txt)
-- else()
-- # Copy local source of googletest at configure time
-- configure_file(copyGTest.cmake.in googletest-download/CMakeLists.txt)
-- endif()
-- execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
-- RESULT_VARIABLE result
-- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download )
-- if(result)
-- message(FATAL_ERROR "CMake step for googletest failed: ${result}")
-- endif()
-- execute_process(COMMAND ${CMAKE_COMMAND} --build .
-- RESULT_VARIABLE result
-- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download )
-- if(result)
-- message(FATAL_ERROR "Build step for googletest failed: ${result}")
-- endif()
-
-- # Add googletest directly to our build. This defines
-- # the gtest and gtest_main targets.
-- add_subdirectory(${CMAKE_CURRENT_BINARY_DIR}/googletest-src
-- ${CMAKE_CURRENT_BINARY_DIR}/googletest-build EXCLUDE_FROM_ALL)
-+find_package(doctest REQUIRED)
-
-- set(GTEST_INCLUDE_DIRS "${gtest_SOURCE_DIR}/include")
-- set(GTEST_BOTH_LIBRARIES gtest_main gtest)
--else()
-- find_package(GTest REQUIRED)
--endif()
-
- find_package(Threads)
-
--find_program(PYTEST
-- NAMES pytest-3 pytest py.test-3 py.test)
-+find_program(PYTEST
-+ NAMES pytest-3 pytest py.test-3 py.test REQUIRED)
-
--include_directories(${GTEST_INCLUDE_DIRS})
-
- set(XEUS_TESTS
- test_xin_memory_history_manager.cpp
-@@ -113,27 +84,11 @@ endif ()
- foreach(filename IN LISTS XEUS_TESTS)
- get_filename_component(targetname ${filename} NAME_WE)
-
-- add_executable(${targetname} ${filename})
-- target_link_libraries(${targetname} PRIVATE ${xeus_TARGET} ${GTEST_BOTH_LIBRARIES} Threads::Threads ${nlohmann_json_TARGET})
--
-+ add_executable(${targetname} test_main.cpp ${filename})
-+ target_link_libraries(${targetname} PRIVATE ${xeus_TARGET} doctest::doctest Threads::Threads ${nlohmann_json_TARGET})
- add_test(NAME ${targetname} COMMAND ${targetname})
- endforeach()
-
--if(XEUS_DOWNLOAD_GTEST OR GTEST_SRC_DIR)
-- # https://github.com/jupyter-xeus/xeus/pull/126
-- # This should really just be post gtest and gtest_main targets, but CMake
-- # won't allow us to do that. So do it after the last test (which depends on
-- # those anyway.)
-- if (XEUS_BUILD_SHARED_LIBS)
-- add_custom_command(
-- TARGET ${targetname} POST_BUILD
-- COMMAND ${CMAKE_COMMAND} -E copy "$<TARGET_FILE:gtest>" "${CMAKE_CURRENT_BINARY_DIR}/")
--
-- add_custom_command(
-- TARGET ${targetname} POST_BUILD
-- COMMAND ${CMAKE_COMMAND} -E copy "$<TARGET_FILE:gtest_main>" "${CMAKE_CURRENT_BINARY_DIR}/")
-- endif ()
--endif()
-
- # Test_kernel tests
- # =================
-diff --git a/test/copyGTest.cmake.in b/test/copyGTest.cmake.in
-deleted file mode 100644
-index 1e5d3ed..0000000
---- a/test/copyGTest.cmake.in
-+++ /dev/null
-@@ -1,23 +0,0 @@
--############################################################################
--# Copyright (c) 2016, Johan Mabille, Sylvain Corlay and Wolf Vollprecht #
--# #
--# Distributed under the terms of the BSD 3-Clause License. #
--# #
--# The full license is in the file LICENSE, distributed with this software. #
--############################################################################
--
--cmake_minimum_required(VERSION 2.8.2)
--
--project(googletest-download NONE)
--
--include(ExternalProject)
--ExternalProject_Add(googletest
-- URL "${GTEST_SRC_DIR}"
-- SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest-src"
-- BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest-build"
-- CONFIGURE_COMMAND ""
-- BUILD_COMMAND ""
-- INSTALL_COMMAND ""
-- TEST_COMMAND ""
--)
--
-diff --git a/test/downloadGTest.cmake.in b/test/downloadGTest.cmake.in
-deleted file mode 100644
-index 852d43c..0000000
---- a/test/downloadGTest.cmake.in
-+++ /dev/null
-@@ -1,24 +0,0 @@
--############################################################################
--# Copyright (c) 2016, Johan Mabille, Sylvain Corlay and Wolf Vollprecht #
--# #
--# Distributed under the terms of the BSD 3-Clause License. #
--# #
--# The full license is in the file LICENSE, distributed with this software. #
--############################################################################
--
--cmake_minimum_required(VERSION 2.8.2)
--
--project(googletest-download NONE)
--
--include(ExternalProject)
--ExternalProject_Add(googletest
-- GIT_REPOSITORY https://github.com/google/googletest.git
-- GIT_TAG release-1.10.0
-- SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest-src"
-- BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest-build"
-- CONFIGURE_COMMAND ""
-- BUILD_COMMAND ""
-- INSTALL_COMMAND ""
-- TEST_COMMAND ""
--)
--
-diff --git a/test/test_main.cpp b/test/test_main.cpp
-new file mode 100644
-index 0000000..84684c0
---- /dev/null
-+++ b/test/test_main.cpp
-@@ -0,0 +1,2 @@
-+#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
-+#include "doctest/doctest.h"
-\ No newline at end of file
-diff --git a/test/test_unit_kernel.cpp b/test/test_unit_kernel.cpp
-index 74b9f07..ee8709b 100644
---- a/test/test_unit_kernel.cpp
-+++ b/test/test_unit_kernel.cpp
-@@ -6,9 +6,10 @@
- * The full license is in the file LICENSE, distributed with this software. *
- ****************************************************************************/
-
--#include "gtest/gtest.h"
-+#include "doctest/doctest.h"
-
- #include <string>
-+#include <iostream>
-
- #include "nlohmann/json.hpp"
-
-@@ -20,48 +21,51 @@ namespace nl = nlohmann;
-
- namespace xeus
- {
-- TEST(kernel, get_username)
-+ TEST_SUITE("kernel") {
-+
-+ TEST_CASE("get_username")
- {
- std::string username;
- username = get_user_name();
-- EXPECT_NE(username, "unspecified user");
-+ REQUIRE_NE(username, "unspecified user");
- }
-
-- TEST(kernel, find_free_port)
-+ TEST_CASE("find_free_port")
- {
- std::string port = find_free_port();
-- EXPECT_NE(port, "");
-- EXPECT_EQ(port.length(), std::size_t(5));
-+ REQUIRE_NE(port, "");
-+ REQUIRE_EQ(port.length(), std::size_t(5));
- }
-
-- TEST(kernel, temp_directory_path)
-+ TEST_CASE("temp_directory_path")
- {
- std::string path = get_temp_directory_path();
- std::cout << "Temporary directory path: " << path << std::endl;
-- EXPECT_NE(path, "");
-- EXPECT_NE(path.back(), '/');
-- EXPECT_NE(path.back(), '\\');
-+ REQUIRE_NE(path, "");
-+ REQUIRE_NE(path.back(), '/');
-+ REQUIRE_NE(path.back(), '\\');
- }
-
-- TEST(kernel, create_directory)
-+ TEST_CASE("create_directory")
- {
- std::string temp_path = get_temp_directory_path();
- std::string path = temp_path + "/intermediate/logs";
- bool res = create_directory(path);
-- EXPECT_TRUE(res);
-+ REQUIRE_UNARY(res);
- }
-
-- TEST(kernel, get_current_pid)
-+ TEST_CASE("get_current_pid")
- {
- int pid = get_current_pid();
-- EXPECT_NE(pid, -1);
-+ REQUIRE_NE(pid, -1);
- }
-
-- TEST(kernel, get_tmp_hash_seed)
-+ TEST_CASE("get_tmp_hash_seed")
- {
- size_t hs = get_tmp_hash_seed();
- size_t expected = static_cast<std::size_t>(0xc70f6907UL);
-- EXPECT_EQ(hs, expected);
-+ REQUIRE_EQ(hs, expected);
-+ }
- }
- }
-
-diff --git a/test/test_xin_memory_history_manager.cpp b/test/test_xin_memory_history_manager.cpp
-index df2275a..a204ca1 100644
---- a/test/test_xin_memory_history_manager.cpp
-+++ b/test/test_xin_memory_history_manager.cpp
-@@ -6,7 +6,7 @@
- * The full license is in the file LICENSE, distributed with this software. *
- ****************************************************************************/
-
--#include "gtest/gtest.h"
-+#include "doctest/doctest.h"
-
- #include <vector>
- #include <array>
-@@ -23,7 +23,8 @@ namespace xeus
- using history_manager_ptr = std::unique_ptr<xhistory_manager>;
- using history_type = std::vector<std::array<std::string, 3>>;
-
-- TEST(xin_memory_history_manager, get_tail)
-+ TEST_SUITE("xin_memory_history_manager"){
-+ TEST_CASE("get_tail")
- {
- history_manager_ptr hist = xeus::make_in_memory_history_manager();
- hist->store_inputs(0, 1, "print(3)");
-@@ -32,29 +33,29 @@ namespace xeus
- hist->store_inputs(0, 4, "a");
-
- nl::json tail1 = hist->get_tail(1000, true, false);
-- ASSERT_EQ(tail1["status"], "ok");
-+ REQUIRE_EQ(tail1["status"], "ok");
- auto history1 = tail1["history"].get<history_type>();
-- ASSERT_EQ(history1.size(), std::size_t(4));
-- ASSERT_EQ(history1[0][1], "1");
-- ASSERT_EQ(history1[0][2], "print(3)");
-- ASSERT_EQ(history1[1][1], "2");
-- ASSERT_EQ(history1[1][2], "a = 3");
-- ASSERT_EQ(history1[2][1], "3");
-- ASSERT_EQ(history1[2][2], "print(a)");
-- ASSERT_EQ(history1[3][1], "4");
-- ASSERT_EQ(history1[3][2], "a");
-+ REQUIRE_EQ(history1.size(), std::size_t(4));
-+ REQUIRE_EQ(history1[0][1], "1");
-+ REQUIRE_EQ(history1[0][2], "print(3)");
-+ REQUIRE_EQ(history1[1][1], "2");
-+ REQUIRE_EQ(history1[1][2], "a = 3");
-+ REQUIRE_EQ(history1[2][1], "3");
-+ REQUIRE_EQ(history1[2][2], "print(a)");
-+ REQUIRE_EQ(history1[3][1], "4");
-+ REQUIRE_EQ(history1[3][2], "a");
-
- nl::json tail2 = hist->get_tail(2, true, false);
-- ASSERT_EQ(tail2["status"], "ok");
-+ REQUIRE_EQ(tail2["status"], "ok");
- auto history2 = tail2["history"].get<history_type>();
-- ASSERT_EQ(history2.size(), std::size_t(2));
-- ASSERT_EQ(history2[0][1], "3");
-- ASSERT_EQ(history2[0][2], "print(a)");
-- ASSERT_EQ(history2[1][1], "4");
-- ASSERT_EQ(history2[1][2], "a");
-+ REQUIRE_EQ(history2.size(), std::size_t(2));
-+ REQUIRE_EQ(history2[0][1], "3");
-+ REQUIRE_EQ(history2[0][2], "print(a)");
-+ REQUIRE_EQ(history2[1][1], "4");
-+ REQUIRE_EQ(history2[1][2], "a");
- }
-
-- TEST(xin_memory_history_manager, get_range)
-+ TEST_CASE("get_range")
- {
- history_manager_ptr hist = xeus::make_in_memory_history_manager();
- hist->store_inputs(0, 1, "print(3)");
-@@ -63,26 +64,26 @@ namespace xeus
- hist->store_inputs(0, 4, "a");
-
- nl::json range1 = hist->get_range(0, 1, 2, true, false);
-- ASSERT_EQ(range1["status"], "ok");
-+ REQUIRE_EQ(range1["status"], "ok");
- auto history1 = range1["history"].get<history_type>();
-- ASSERT_EQ(history1.size(), std::size_t(1));
-- ASSERT_EQ(history1[0][1], "2");
-- ASSERT_EQ(history1[0][2], "a = 3");
-+ REQUIRE_EQ(history1.size(), std::size_t(1));
-+ REQUIRE_EQ(history1[0][1], "2");
-+ REQUIRE_EQ(history1[0][2], "a = 3");
-
- nl::json range2 = hist->get_range(0, 1, 3, true, false);
-- ASSERT_EQ(range2["status"], "ok");
-+ REQUIRE_EQ(range2["status"], "ok");
- auto history2 = range2["history"].get<history_type>();
-- ASSERT_EQ(history2.size(), std::size_t(2));
-- ASSERT_EQ(history2[0][1], "2");
-- ASSERT_EQ(history2[0][2], "a = 3");
-- ASSERT_EQ(history2[1][1], "3");
-- ASSERT_EQ(history2[1][2], "print(a)");
-+ REQUIRE_EQ(history2.size(), std::size_t(2));
-+ REQUIRE_EQ(history2[0][1], "2");
-+ REQUIRE_EQ(history2[0][2], "a = 3");
-+ REQUIRE_EQ(history2[1][1], "3");
-+ REQUIRE_EQ(history2[1][2], "print(a)");
-
- nl::json range3 = hist->get_range(0, 1000, 2, true, false);
-- ASSERT_EQ(range3["status"], "error");
-+ REQUIRE_EQ(range3["status"], "error");
- }
-
-- TEST(xin_memory_history_manager, search)
-+ TEST_CASE("search")
- {
- history_manager_ptr hist = xeus::make_in_memory_history_manager();
- hist->store_inputs(0, 1, "print(36)");
-@@ -91,55 +92,56 @@ namespace xeus
- hist->store_inputs(0, 4, "a");
-
- nl::json search1 = hist->search("print*", true, false, 10, false);
-- ASSERT_EQ(search1["status"], "ok");
-+ REQUIRE_EQ(search1["status"], "ok");
- auto history1 = search1["history"].get<history_type>();
-- ASSERT_EQ(history1.size(), std::size_t(2));
-- ASSERT_EQ(history1[0][1], "1");
-- ASSERT_EQ(history1[0][2], "print(36)");
-- ASSERT_EQ(history1[1][1], "3");
-- ASSERT_EQ(history1[1][2], "print(a)");
-+ REQUIRE_EQ(history1.size(), std::size_t(2));
-+ REQUIRE_EQ(history1[0][1], "1");
-+ REQUIRE_EQ(history1[0][2], "print(36)");
-+ REQUIRE_EQ(history1[1][1], "3");
-+ REQUIRE_EQ(history1[1][2], "print(a)");
-
- nl::json search2 = hist->search("print(*)", true, false, 10, false);
-- ASSERT_EQ(search2["status"], "ok");
-+ REQUIRE_EQ(search2["status"], "ok");
- auto history2 = search2["history"].get<history_type>();
-- ASSERT_EQ(history2.size(), std::size_t(2));
-- ASSERT_EQ(history2[0][1], "1");
-- ASSERT_EQ(history2[0][2], "print(36)");
-- ASSERT_EQ(history2[1][1], "3");
-- ASSERT_EQ(history2[1][2], "print(a)");
-+ REQUIRE_EQ(history2.size(), std::size_t(2));
-+ REQUIRE_EQ(history2[0][1], "1");
-+ REQUIRE_EQ(history2[0][2], "print(36)");
-+ REQUIRE_EQ(history2[1][1], "3");
-+ REQUIRE_EQ(history2[1][2], "print(a)");
-
- nl::json search3 = hist->search("print(?)", true, false, 10, false);
-- ASSERT_EQ(search3["status"], "ok");
-+ REQUIRE_EQ(search3["status"], "ok");
- auto history3 = search3["history"].get<history_type>();
-- ASSERT_EQ(history3.size(), std::size_t(1));
-- ASSERT_EQ(history3[0][1], "3");
-- ASSERT_EQ(history3[0][2], "print(a)");
-+ REQUIRE_EQ(history3.size(), std::size_t(1));
-+ REQUIRE_EQ(history3[0][1], "3");
-+ REQUIRE_EQ(history3[0][2], "print(a)");
-
- nl::json search4 = hist->search("print*", true, false, 1, false);
-- ASSERT_EQ(search4["status"], "ok");
-+ REQUIRE_EQ(search4["status"], "ok");
- auto history4 = search4["history"].get<history_type>();
-- ASSERT_EQ(history4.size(), std::size_t(1));
-- ASSERT_EQ(history4[0][1], "3");
-- ASSERT_EQ(history4[0][2], "print(a)");
-+ REQUIRE_EQ(history4.size(), std::size_t(1));
-+ REQUIRE_EQ(history4[0][1], "3");
-+ REQUIRE_EQ(history4[0][2], "print(a)");
-
- hist->store_inputs(0, 3, "print(a)");
- nl::json search5 = hist->search("print*", true, false, 10, false);
-- ASSERT_EQ(search5["status"], "ok");
-+ REQUIRE_EQ(search5["status"], "ok");
- auto history5 = search5["history"].get<history_type>();
-- ASSERT_EQ(history5.size(), std::size_t(3));
-- ASSERT_EQ(history2[0][1], "1");
-- ASSERT_EQ(history2[0][2], "print(36)");
-- ASSERT_EQ(history5[1][1], "3");
-- ASSERT_EQ(history5[1][2], "print(a)");
-- ASSERT_EQ(history5[2][1], "3");
-- ASSERT_EQ(history5[2][2], "print(a)");
-+ REQUIRE_EQ(history5.size(), std::size_t(3));
-+ REQUIRE_EQ(history2[0][1], "1");
-+ REQUIRE_EQ(history2[0][2], "print(36)");
-+ REQUIRE_EQ(history5[1][1], "3");
-+ REQUIRE_EQ(history5[1][2], "print(a)");
-+ REQUIRE_EQ(history5[2][1], "3");
-+ REQUIRE_EQ(history5[2][2], "print(a)");
-
- nl::json search6 = hist->search("print*", true, false, 10, true);
-- ASSERT_EQ(search6["status"], "ok");
-+ REQUIRE_EQ(search6["status"], "ok");
- auto history6 = search6["history"].get<history_type>();
-- ASSERT_EQ(history2[0][1], "1");
-- ASSERT_EQ(history2[0][2], "print(36)");
-- ASSERT_EQ(history5[1][1], "3");
-- ASSERT_EQ(history5[1][2], "print(a)");
-+ REQUIRE_EQ(history2[0][1], "1");
-+ REQUIRE_EQ(history2[0][2], "print(36)");
-+ REQUIRE_EQ(history5[1][1], "3");
-+ REQUIRE_EQ(history5[1][2], "print(a)");
-+ }
- }
- }
---
-2.36.1
-
diff --git a/0002-Never-delete-context-before-sockets.patch b/0002-Never-delete-context-before-sockets.patch
deleted file mode 100644
index 77551e5..0000000
--- a/0002-Never-delete-context-before-sockets.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 206f54ea54c0a5355adb1531e0d523501aa9c2b9 Mon Sep 17 00:00:00 2001
-From: Johan Mabille <johan.mabille@gmail.com>
-Date: Fri, 24 Sep 2021 00:48:26 +0200
-Subject: [PATCH 2/3] Never delete context before sockets
-
-Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
----
- include/xeus/xkernel.hpp | 5 ++++-
- src/xkernel.cpp | 4 ++--
- 2 files changed, 6 insertions(+), 3 deletions(-)
-
-diff --git a/include/xeus/xkernel.hpp b/include/xeus/xkernel.hpp
-index 4ef0dd3..d32c07e 100644
---- a/include/xeus/xkernel.hpp
-+++ b/include/xeus/xkernel.hpp
-@@ -84,13 +84,16 @@ namespace xeus
- std::string m_kernel_id;
- std::string m_session_id;
- std::string m_user_name;
-+ // The context must be declared before any other
-+ // middleware component since it must be destroyed
-+ // last
-+ context_ptr p_context;
- interpreter_ptr p_interpreter;
- history_manager_ptr p_history_manager;
- logger_ptr p_logger;
- server_ptr p_server;
- debugger_builder m_debugger_builder;
- debugger_ptr p_debugger;
-- context_ptr p_context;
- kernel_core_ptr p_core;
- nl::json m_debugger_config;
- nl::json::error_handler_t m_error_handler;
-diff --git a/src/xkernel.cpp b/src/xkernel.cpp
-index 2bda8af..c8e263a 100644
---- a/src/xkernel.cpp
-+++ b/src/xkernel.cpp
-@@ -82,11 +82,11 @@ namespace xeus
- nl::json::error_handler_t eh)
- : m_config(config)
- , m_user_name(user_name)
-+ , p_context(std::move(context))
- , p_interpreter(std::move(interpreter))
- , p_history_manager(std::move(history_manager))
- , p_logger(std::move(logger))
- , m_debugger_builder(dbuilder)
-- , p_context(std::move(context))
- , m_debugger_config(debugger_config)
- , m_error_handler(eh)
- {
-@@ -103,11 +103,11 @@ namespace xeus
- nl::json debugger_config,
- nl::json::error_handler_t eh)
- : m_user_name(user_name)
-+ , p_context(std::move(context))
- , p_interpreter(std::move(interpreter))
- , p_history_manager(std::move(history_manager))
- , p_logger(std::move(logger))
- , m_debugger_builder(dbuilder)
-- , p_context(std::move(context))
- , m_debugger_config(debugger_config)
- , m_error_handler(eh)
- {
---
-2.36.1
-
diff --git a/0003-Fix-non-standard-messages.patch b/0003-Fix-non-standard-messages.patch
deleted file mode 100644
index 4c5fc5d..0000000
--- a/0003-Fix-non-standard-messages.patch
+++ /dev/null
@@ -1,707 +0,0 @@
-From 271c3e1c4c134336323b979b6b0d5d702e0baa38 Mon Sep 17 00:00:00 2001
-From: Mariana Meireles <mariana@psychonautgirl.space>
-Date: Fri, 24 Sep 2021 07:30:56 +0000
-Subject: [PATCH 3/3] Fix non-standard messages
-
-Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
----
- CMakeLists.txt | 4 +-
- example/src/custom_interpreter.cpp | 61 ++++--------
- include/xeus/xhelper.hpp | 72 ++++++++++++++
- src/xhelper.cpp | 155 +++++++++++++++++++++++++++++
- test/CMakeLists.txt | 3 +-
- test/test_interpreter.cpp | 78 ++++++---------
- test/test_unit_kernel.cpp | 127 +++++++++++++++--------
- 7 files changed, 367 insertions(+), 133 deletions(-)
- create mode 100644 include/xeus/xhelper.hpp
- create mode 100644 src/xhelper.cpp
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 5cd2aab..b968abb 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -133,6 +133,7 @@ set(XEUS_HEADERS
- ${XEUS_INCLUDE_DIR}/xeus/xkernel_configuration.hpp
- ${XEUS_INCLUDE_DIR}/xeus/xlogger.hpp
- ${XEUS_INCLUDE_DIR}/xeus/xmessage.hpp
-+ ${XEUS_INCLUDE_DIR}/xeus/xhelper.hpp
- ${XEUS_INCLUDE_DIR}/xeus/xmiddleware.hpp
- ${XEUS_INCLUDE_DIR}/xeus/xserver.hpp
- ${XEUS_INCLUDE_DIR}/xeus/xserver_control_main.hpp
-@@ -168,6 +169,7 @@ set(XEUS_SOURCES
- ${XEUS_SOURCE_DIR}/xlogger_impl.hpp
- ${XEUS_SOURCE_DIR}/xlogger_impl.cpp
- ${XEUS_SOURCE_DIR}/xmessage.cpp
-+ ${XEUS_SOURCE_DIR}/xhelper.cpp
- ${XEUS_SOURCE_DIR}/xmock_interpreter.cpp
- ${XEUS_SOURCE_DIR}/xmock_interpreter.hpp
- ${XEUS_SOURCE_DIR}/xmiddleware.cpp
-@@ -351,7 +353,7 @@ endif ()
-
- include(CTest)
-
--if(XEUS_BUILD_TESTS)
-+if(XEUS_DOWNLOAD_GTEST OR GTEST_SRC_DIR OR XEUS_BUILD_TESTS)
- set(BUILD_TESTING ON)
- message(STATUS "tests enabled")
- else ()
-diff --git a/example/src/custom_interpreter.cpp b/example/src/custom_interpreter.cpp
-index caad375..e2dbfca 100644
---- a/example/src/custom_interpreter.cpp
-+++ b/example/src/custom_interpreter.cpp
-@@ -10,7 +10,7 @@
- #include <iostream>
-
- #include "nlohmann/json.hpp"
--
-+#include "xeus/xhelper.hpp"
- #include "custom_interpreter.hpp"
-
- namespace nl = nlohmann;
-@@ -44,9 +44,7 @@ namespace custom
- // publish_execution_error(error_name, error_value, error_traceback);
- publish_execution_error("TypeError", "123", {"!@#$", "*(*"});
-
-- nl::json result;
-- result["status"] = "ok";
-- return result;
-+ return xeus::create_successful_reply();
- }
-
- void custom_interpreter::configure_impl()
-@@ -57,26 +55,16 @@ namespace custom
- nl::json custom_interpreter::complete_request_impl(const std::string& code,
- int cursor_pos)
- {
-- nl::json result;
--
- // Code starts with 'H', it could be the following completion
- if (code[0] == 'H')
- {
-- result["status"] = "ok";
-- result["matches"] = {"Hello", "Hey", "Howdy"};
-- result["cursor_start"] = 5;
-- result["cursor_end"] = cursor_pos;
-+ return xeus::create_complete_reply({"Hello", "Hey", "Howdy"}, 5, cursor_pos);
- }
- // No completion result
- else
- {
-- result["status"] = "ok";
-- result["matches"] = nl::json::array();
-- result["cursor_start"] = cursor_pos;
-- result["cursor_end"] = cursor_pos;
-+ return xeus::create_complete_reply({}, cursor_pos, cursor_pos);
- }
--
-- return result;
- }
-
- nl::json custom_interpreter::inspect_request_impl(const std::string& code,
-@@ -87,48 +75,33 @@ namespace custom
-
- if (code.compare("print") == 0)
- {
-- result["found"] = true;
-- result["text/plain"] = "Print objects to the text stream file, [...]";
-+ return xeus::create_inspect_reply(true,
-+ {"text/plain", "Print objects to the text stream file, [...]"});
- }
- else
- {
-- result["found"] = false;
-+ return xeus::create_inspect_reply();
- }
--
-- result["status"] = "ok";
-- return result;
- }
-
- nl::json custom_interpreter::is_complete_request_impl(const std::string& /*code*/)
- {
-- nl::json result;
--
-- // if (is_complete(code))
-- // {
-- result["status"] = "complete";
-- // }
-- // else
-- // {
-- // result["status"] = "incomplete";
-- // result["indent"] = 4;
-- //}
--
-- return result;
-+ return xeus::create_is_complete_reply("complete");
- }
-
- nl::json custom_interpreter::kernel_info_request_impl()
- {
-- nl::json result;
-- result["implementation"] = "my_kernel";
-- result["implementation_version"] = "0.1.0";
-- result["language_info"]["name"] = "python";
-- result["language_info"]["version"] = "3.7";
-- result["language_info"]["mimetype"] = "text/x-python";
-- result["language_info"]["file_extension"] = ".py";
-- return result;
-+ return xeus::create_info_reply("",
-+ "my_kernel",
-+ "0.1.0",
-+ "python",
-+ "3.7",
-+ "text/x-python",
-+ ".py");
- }
-
-- void custom_interpreter::shutdown_request_impl() {
-+ void custom_interpreter::shutdown_request_impl()
-+ {
- std::cout << "Bye!!" << std::endl;
- }
-
-diff --git a/include/xeus/xhelper.hpp b/include/xeus/xhelper.hpp
-new file mode 100644
-index 0000000..584c150
---- /dev/null
-+++ b/include/xeus/xhelper.hpp
-@@ -0,0 +1,72 @@
-+/***************************************************************************
-+* Copyright (c) 2016, Johan Mabille, Sylvain Corlay, Martin Renou *
-+* Copyright (c) 2016, QuantStack *
-+* *
-+* Distributed under the terms of the BSD 3-Clause License. *
-+* *
-+* The full license is in the file LICENSE, distributed with this software. *
-+****************************************************************************/
-+
-+#ifndef XEUS_HELPER_HPP
-+#define XEUS_HELPER_HPP
-+
-+#include <iostream>
-+#include <string>
-+#include <vector>
-+
-+#include "xeus/xeus.hpp"
-+#include "xeus/xkernel_configuration.hpp"
-+
-+#include "nlohmann/json.hpp"
-+
-+namespace nl = nlohmann;
-+
-+namespace xeus
-+{
-+ XEUS_API std::string print_starting_message(const xconfiguration& config);
-+
-+ XEUS_API std::string extract_filename(int argc, char* argv[]);
-+
-+ XEUS_API bool should_print_version(int argc, char* argv[]);
-+
-+ XEUS_API
-+ nl::json create_error_reply(const std::string& ename = std::string(),
-+ const std::string& evalue = std::string(),
-+ const nl::json& trace_back = nl::json::array());
-+
-+ XEUS_API
-+ nl::json create_successful_reply(const nl::json& payload = nl::json::array(),
-+ const nl::json& user_expressions = nl::json::object());
-+
-+ XEUS_API
-+ nl::json create_complete_reply(const nl::json& matches,
-+ const int& cursor_start,
-+ const int& cursor_end,
-+ const nl::json& metadata = nl::json::object());
-+
-+ XEUS_API
-+ nl::json create_inspect_reply(const bool found = false,
-+ const nl::json& data = nl::json::object(),
-+ const nl::json& metadata = nl::json::object());
-+
-+ XEUS_API
-+ nl::json create_is_complete_reply(const std::string& status = std::string(),
-+ const std::string& indent = std::string(""));
-+
-+ XEUS_API
-+ nl::json create_info_reply(const std::string& protocol_version = std::string(),
-+ const std::string& implementation = std::string(),
-+ const std::string& implementation_version = std::string(),
-+ const std::string& language_name = std::string(),
-+ const std::string& language_version = std::string(),
-+ const std::string& language_mimetype = std::string(),
-+ const std::string& language_file_extension = std::string(),
-+ const std::string& pygments_lexer = std::string(),
-+ const std::string& language_codemirror_mode = std::string(),
-+ const std::string& language_nbconvert_exporter = std::string(),
-+ const std::string& banner = std::string(),
-+ const bool debugger = false,
-+ const nl::json& help_links = nl::json::array());
-+}
-+
-+#endif
-diff --git a/src/xhelper.cpp b/src/xhelper.cpp
-new file mode 100644
-index 0000000..7526f0d
---- /dev/null
-+++ b/src/xhelper.cpp
-@@ -0,0 +1,155 @@
-+#include <string>
-+#include <vector>
-+
-+#include "nlohmann/json.hpp"
-+
-+#include "xeus/xhelper.hpp"
-+
-+namespace nl = nlohmann;
-+
-+namespace xeus
-+{
-+ std::string print_starting_message(const xconfiguration& config)
-+ {
-+ std::string kernel_info;
-+ kernel_info = "Starting kernel...\n\n"
-+ "If you want to connect to this kernel from an other client, just copy"
-+ " and paste the following content inside of a `kernel.json` file. And then run for example:\n\n"
-+ "# jupyter console --existing kernel.json\n\n"
-+ "kernel.json\n```\n{\n"
-+ " \"transport\": \"" + config.m_transport + "\",\n"
-+ " \"ip\": \"" + config.m_ip + "\",\n"
-+ " \"control_port\": " + config.m_control_port + ",\n"
-+ " \"shell_port\": " + config.m_shell_port + ",\n"
-+ " \"stdin_port\": " + config.m_stdin_port + ",\n"
-+ " \"iopub_port\": " + config.m_iopub_port + ",\n"
-+ " \"hb_port\": " + config.m_hb_port + ",\n"
-+ " \"signature_scheme\": \"" + config.m_signature_scheme + "\",\n"
-+ " \"key\": \"" + config.m_key + "\"\n"
-+ "}\n```";
-+ return kernel_info;
-+ }
-+
-+ std::string extract_filename(int argc, char* argv[])
-+ {
-+ std::string res = "";
-+ for (int i = 0; i < argc; ++i)
-+ {
-+ if ((std::string(argv[i]) == "-f") && (i + 1 < argc))
-+ {
-+ res = argv[i + 1];
-+ for(int j = i; j < argc - 2; ++j)
-+ {
-+ argv[j] = argv[j + 2];
-+ }
-+ argc -= 2;
-+ break;
-+ }
-+ }
-+ return res;
-+ }
-+
-+ bool should_print_version(int argc, char* argv[])
-+ {
-+ for (int i = 0; i < argc; ++i)
-+ {
-+ if (std::string(argv[i]) == "--version")
-+ {
-+ return true;
-+ }
-+ }
-+ return false;
-+ }
-+
-+ // Helpers that create replies to the server
-+ nl::json create_error_reply(const std::string& evalue,
-+ const std::string& ename,
-+ const nl::json& trace_back)
-+ {
-+ nl::json kernel_res;
-+ kernel_res["status"] = "error";
-+ kernel_res["ename"] = ename;
-+ kernel_res["evalue"] = evalue;
-+ kernel_res["traceback"] = trace_back;
-+ return kernel_res;
-+ }
-+
-+ nl::json create_successful_reply(const nl::json& payload,
-+ const nl::json& user_expressions)
-+ {
-+ nl::json kernel_res;
-+ kernel_res["status"] = "ok";
-+ kernel_res["payload"] = payload;
-+ kernel_res["user_expressions"] = user_expressions;
-+ return kernel_res;
-+ }
-+
-+ nl::json create_complete_reply(const nl::json& matches,
-+ const int& cursor_start,
-+ const int& cursor_end,
-+ const nl::json& metadata)
-+ {
-+ nl::json kernel_res;
-+ kernel_res["status"] = "ok";
-+ kernel_res["matches"] = matches;
-+ kernel_res["cursor_start"] = cursor_start;
-+ kernel_res["cursor_end"] = cursor_end;
-+ kernel_res["metadata"] = metadata;
-+ return kernel_res;
-+ }
-+
-+ nl::json create_inspect_reply(const bool found,
-+ const nl::json& data,
-+ const nl::json& metadata)
-+ {
-+ nl::json kernel_res;
-+ kernel_res["status"] = "ok";
-+ kernel_res["found"] = found;
-+ kernel_res["data"] = data;
-+ kernel_res["metadata"] = metadata;
-+ return kernel_res;
-+ }
-+
-+ nl::json create_is_complete_reply(const std::string& status,
-+ const std::string& indent)
-+ {
-+ nl::json kernel_res;
-+ kernel_res["status"] = status;
-+ kernel_res["indent"] = indent;
-+ return kernel_res;
-+ }
-+
-+ nl::json create_info_reply(const std::string& protocol_version,
-+ const std::string& implementation,
-+ const std::string& implementation_version,
-+ const std::string& language_name,
-+ const std::string& language_version,
-+ const std::string& language_mimetype,
-+ const std::string& language_file_extension,
-+ const std::string& language_pygments_lexer,
-+ const std::string& language_codemirror_mode,
-+ const std::string& language_nbconvert_exporter,
-+ const std::string& banner,
-+ const bool debugger,
-+ const nl::json& help_links)
-+ {
-+ nl::json kernel_res;
-+ kernel_res["status"] = "ok";
-+ kernel_res["protocol_version"] = protocol_version;
-+ kernel_res["implementation"] = implementation;
-+ kernel_res["implementation_version"] = implementation_version;
-+ kernel_res["language_info"]["name"] = language_name;
-+ kernel_res["language_info"]["version"] = language_version;
-+ kernel_res["language_info"]["mimetype"] = language_mimetype;
-+ kernel_res["language_info"]["file_extension"] = language_file_extension;
-+ kernel_res["language_info"]["pygments_lexer"] = language_pygments_lexer;
-+ kernel_res["language_info"]["codemirror_mode"] = language_codemirror_mode;
-+ kernel_res["language_info"]["nbconvert_exporter"] = language_nbconvert_exporter;
-+ kernel_res["banner"] = banner;
-+ kernel_res["debugger"] = debugger;
-+ kernel_res["help_links"] = help_links;
-+ return kernel_res;
-+ }
-+
-+}
-+
-diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
-index b24a3e5..176ef2a 100644
---- a/test/CMakeLists.txt
-+++ b/test/CMakeLists.txt
-@@ -84,7 +84,7 @@ endif ()
- foreach(filename IN LISTS XEUS_TESTS)
- get_filename_component(targetname ${filename} NAME_WE)
-
-- add_executable(${targetname} test_main.cpp ${filename})
-+ add_executable(${targetname} test_main.cpp ${filename} test_interpreter.cpp)
- target_link_libraries(${targetname} PRIVATE ${xeus_TARGET} doctest::doctest Threads::Threads ${nlohmann_json_TARGET})
- add_test(NAME ${targetname} COMMAND ${targetname})
- endforeach()
-@@ -179,3 +179,4 @@ add_test(NAME test_kernel_shell
- set_tests_properties(test_kernel_shell
- PROPERTIES
- ENVIRONMENT "JUPYTER_PATH=${CMAKE_CURRENT_BINARY_DIR}")
-+
-diff --git a/test/test_interpreter.cpp b/test/test_interpreter.cpp
-index dd7491e..f01aac9 100644
---- a/test/test_interpreter.cpp
-+++ b/test/test_interpreter.cpp
-@@ -11,6 +11,8 @@
- #include "nlohmann/json.hpp"
-
- #include "test_interpreter.hpp"
-+
-+#include "xeus/xhelper.hpp"
- #include "xeus/xguid.hpp"
-
- namespace nl = nlohmann;
-@@ -34,8 +36,6 @@ namespace test_kernel
- nl::json /* user_expressions */,
- bool /* allow_stdin */)
- {
-- nl::json kernel_res;
--
- if (code.compare("hello, world") == 0)
- {
- publish_stream("stdout", code);
-@@ -49,62 +49,44 @@ namespace test_kernel
- if (code.compare("?") == 0)
- {
- std::string html_content = R"(<iframe class="xpyt-iframe-pager" src="
-- https://xeus.readthedocs.io"></iframe>)";
--
-- kernel_res["status"] = "ok";
-- kernel_res["payload"] = nl::json::array();
-- kernel_res["payload"][0] = nl::json::object({
-- {"data", {
-- {"text/plain", "https://xeus.readthedocs.io"},
-- {"text/html", html_content}}
-- },
-- {"source", "page"},
-- {"start", 0}
-- });
-- kernel_res["user_expressions"] = nl::json::object();
--
-- return kernel_res;
-+ https://xeus.readthedocs.io"></iframe>)";
-+
-+ auto payload = nl::json::array();
-+ payload[0] = nl::json::object({
-+ {"data", {
-+ {"text/plain", "https://xeus.readthedocs.io"},
-+ {"text/html", html_content}}
-+ },
-+ {"source", "page"},
-+ {"start", 0}
-+ });
-+
-+ return xeus::create_successful_reply(payload);
- }
-
- nl::json pub_data;
- pub_data["text/plain"] = code;
-- publish_execution_result(execution_counter, std::move(pub_data), nl::json());
-+ publish_execution_result(execution_counter, std::move(pub_data), nl::json::object());
-
-- kernel_res["status"] = "ok";
-- kernel_res["payload"] = nl::json::array();
-- kernel_res["user_expressions"] = nl::json::object();
--
-- return kernel_res;
-+ return xeus::create_successful_reply();
- }
-
- nl::json test_interpreter::complete_request_impl(const std::string& /* code */,
- int /* cursor_pos */)
- {
-- nl::json result;
-- result["status"] = "ok";
-- result["matches"] = {"a.test1", "a.test2"};
-- result["cursor_start"] = 2;
-- result["cursor_end"] = 6;
--
-- return result;
-+ return xeus::create_complete_reply({"a.test1", "a.test2"}, 2, 6);
- }
-
- nl::json test_interpreter::inspect_request_impl(const std::string& /* code */,
- int /* cursor_pos */,
- int /* detail_level */)
- {
-- nl::json result;
-- result["status"] = "ok";
-- result["found"] = true;
-- result["data"] = {{"text/plain", ""}};
-- result["metadata"] = {{"text/plain", ""}};
-- return result;
-+ return xeus::create_inspect_reply(true, {{"text/plain", ""}}, {{"text/plain", ""}});
- }
-
- nl::json test_interpreter::is_complete_request_impl(const std::string& code)
- {
-- nl::json result;
-- result["status"] = code;
-+ nl::json result = xeus::create_is_complete_reply(code);
- if (code.compare("incomplete") == 0)
- {
- result["indent"] = " ";
-@@ -114,15 +96,17 @@ namespace test_kernel
-
- nl::json test_interpreter::kernel_info_request_impl()
- {
-- nl::json result;
-- result["implementation"] = "cpp_test";
-- result["implementation_version"] = "1.0.0";
-- result["banner"] = "test_kernel";
-- result["language_info"]["name"] = "cpp";
-- result["language_info"]["version"] = "14.0.0";
-- result["language_info"]["mimetype"] = "text/x-c++src";
-- result["language_info"]["file_extension"] = ".cpp";
-- return result;
-+ return xeus::create_info_reply("",
-+ "cpp_test",
-+ "1.0.0",
-+ "cpp",
-+ "14.0.0",
-+ "text/x-c++src",
-+ ".cpp",
-+ "",
-+ "",
-+ "",
-+ "test_kernel");
- }
-
- void test_interpreter::shutdown_request_impl()
-diff --git a/test/test_unit_kernel.cpp b/test/test_unit_kernel.cpp
-index ee8709b..789bbc9 100644
---- a/test/test_unit_kernel.cpp
-+++ b/test/test_unit_kernel.cpp
-@@ -9,63 +9,110 @@
- #include "doctest/doctest.h"
-
- #include <string>
--#include <iostream>
-+#include <memory>
-
- #include "nlohmann/json.hpp"
-
-+#include "test_interpreter.hpp"
-+
- #include "xeus/xkernel.hpp"
- #include "xeus/xmiddleware.hpp"
- #include "xeus/xsystem.hpp"
-+#include "xeus/xeus_context.hpp"
-+#include "xeus/xhelper.hpp"
-+#include "xeus/xkernel_configuration.hpp"
-+#include "xeus/xserver_zmq.hpp"
-
- namespace nl = nlohmann;
-
- namespace xeus
- {
-- TEST_SUITE("kernel") {
--
-- TEST_CASE("get_username")
-+ TEST_SUITE("kernel")
- {
-- std::string username;
-- username = get_user_name();
-- REQUIRE_NE(username, "unspecified user");
-- }
-+ TEST_CASE("print_starting_message")
-+ {
-+ auto context = make_context<zmq::context_t>();
-
-- TEST_CASE("find_free_port")
-- {
-- std::string port = find_free_port();
-- REQUIRE_NE(port, "");
-- REQUIRE_EQ(port.length(), std::size_t(5));
-- }
-+ using interpreter_ptr = std::unique_ptr<test_kernel::test_interpreter>;
-+ interpreter_ptr interpreter = interpreter_ptr(new test_kernel::test_interpreter());
-+ xkernel kernel(get_user_name(),
-+ std::move(context),
-+ std::move(interpreter),
-+ make_xserver_zmq);
-+ std::string kernel_config = print_starting_message(kernel.get_config());
-+ std::cout << kernel_config << std::endl;
-+ size_t pos = kernel_config.find("Starting kernel...\n"
-+ "\n"
-+ "If you want to connect to this kernel from an other client, just copy and paste the following content inside of a `kernel.json` file. And then run for example:\n"
-+ "\n"
-+ "# jupyter console --existing kernel.json\n"
-+ "\n"
-+ "kernel.json\n"
-+ "```\n"
-+ "{\n"
-+ " \"transport\": \"tcp\",\n");
-+ REQUIRE_NE(pos, std::string::npos);
-+ }
-
-- TEST_CASE("temp_directory_path")
-- {
-- std::string path = get_temp_directory_path();
-- std::cout << "Temporary directory path: " << path << std::endl;
-- REQUIRE_NE(path, "");
-- REQUIRE_NE(path.back(), '/');
-- REQUIRE_NE(path.back(), '\\');
-- }
-+ TEST_CASE("extract_filename")
-+ {
-+ char* argv[2];
-+ argv[0] = (char*)"-f";
-+ argv[1] = (char*)"connection.json";
-+ std::string file_name = extract_filename(3, argv);
-+ REQUIRE_EQ(file_name, "connection.json");
-+ }
-
-- TEST_CASE("create_directory")
-- {
-- std::string temp_path = get_temp_directory_path();
-- std::string path = temp_path + "/intermediate/logs";
-- bool res = create_directory(path);
-- REQUIRE_UNARY(res);
-- }
-+ TEST_CASE("should_print_version")
-+ {
-+ char* argv[2];
-+ argv[0] = (char*)"--version";
-+ REQUIRE_EQ(should_print_version(1, argv), true);
-+ }
-
-- TEST_CASE("get_current_pid")
-- {
-- int pid = get_current_pid();
-- REQUIRE_NE(pid, -1);
-- }
-+ TEST_CASE("get_username")
-+ {
-+ std::string username;
-+ username = get_user_name();
-+ REQUIRE_NE(username, "unspecified user");
-+ }
-
-- TEST_CASE("get_tmp_hash_seed")
-- {
-- size_t hs = get_tmp_hash_seed();
-- size_t expected = static_cast<std::size_t>(0xc70f6907UL);
-- REQUIRE_EQ(hs, expected);
-- }
-+ TEST_CASE("find_free_port")
-+ {
-+ std::string port = find_free_port();
-+ REQUIRE_NE(port, "");
-+ REQUIRE_EQ(port.length(), std::size_t(5));
-+ }
-+
-+ TEST_CASE("temp_directory_path")
-+ {
-+ std::string path = get_temp_directory_path();
-+ std::cout << "Temporary directory path: " << path << std::endl;
-+ REQUIRE_NE(path, "");
-+ REQUIRE_NE(path.back(), '/');
-+ REQUIRE_NE(path.back(), '\\');
-+ }
-+
-+ TEST_CASE("create_directory")
-+ {
-+ std::string temp_path = get_temp_directory_path();
-+ std::string path = temp_path + "/intermediate/logs";
-+ bool res = create_directory(path);
-+ REQUIRE_EQ(res, true);
-+ }
-+
-+ TEST_CASE("get_current_pid")
-+ {
-+ int pid = get_current_pid();
-+ REQUIRE_NE(pid, -1);
-+ }
-+
-+ TEST_CASE("get_tmp_hash_seed")
-+ {
-+ size_t hs = get_tmp_hash_seed();
-+ size_t expected = static_cast<std::size_t>(0xc70f6907UL);
-+ REQUIRE_EQ(hs, expected);
-+ }
- }
- }
-
---
-2.36.1
-
diff --git a/sources b/sources
index 15f8694..024dbdc 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (xeus-2.0.0.tar.gz) = a1897dda5416e202351a1afce7e2ebb4427ed06feb9edd8bb526df293999a021726b6214068a92203adbc533439f39a710279bfa4e4e485f168e79e9fca27b3a
+SHA512 (xeus-3.0.5.tar.gz) = 38c10ab6ab13e323a082124dd4980f5886081426a08bbeda509b28dae6cc794e23f23aadc189b39874f6d7fb1d917372bcfa9ceb2b6d0893fd2e5b333067b9d9
diff --git a/xeus.spec b/xeus.spec
index b609c7f..0bbddd3 100644
--- a/xeus.spec
+++ b/xeus.spec
@@ -1,28 +1,16 @@
Name: xeus
-Version: 2.0.0
+Version: 3.0.5
Release: %autorelease
Summary: C++ implementation of the Jupyter kernel protocol
License: BSD
URL: https://github.com/jupyter-xeus/xeus
Source0: https://github.com/jupyter-xeus/xeus/archive/%{version}/%{name}-%{version}.tar.gz
-# Backport to make further backports easier
-# https://github.com/jupyter-xeus/xeus/pull/292
-Patch: 0001-switched-from-gtest-to-doctest-292.patch
-# https://github.com/jupyter-xeus/xeus/pull/298
-Patch: 0002-Never-delete-context-before-sockets.patch
-# Backport a refactor that only adds API, but leave out the documentation
-# changes, plus a few later bug fixes.
-# https://github.com/jupyter-xeus/xeus/pull/285
-# https://github.com/jupyter-xeus/xeus/pull/314
-# https://github.com/jupyter-xeus/xeus/pull/315
-Patch: 0003-Fix-non-standard-messages.patch
# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
ExcludeArch: %{ix86}
BuildRequires: cmake >= 3.8
-BuildRequires: cmake(cppzmq) >= 4.3.0
BuildRequires: cmake(nlohmann_json) >= 3.2.0
BuildRequires: cmake(xtl) >= 0.7
BuildRequires: doctest-devel
@@ -30,8 +18,7 @@ BuildRequires: doxygen
BuildRequires: gcc-c++
BuildRequires: libuuid-devel
BuildRequires: make
-BuildRequires: openssl-devel >= 1.0.1
-BuildRequires: pkgconfig(libzmq) >= 4.2.5
+BuildRequires: pkgconfig(uuid)
BuildRequires: python3dist(breathe)
BuildRequires: python3dist(jupyter-kernel-test)
BuildRequires: python3dist(pytest)
@@ -75,7 +62,7 @@ rm docs/build/html/.buildinfo
%files
%doc README.md docs/build/html
%license LICENSE
-%{_libdir}/libxeus.so.5*
+%{_libdir}/libxeus.so.8*
%files devel
%{_includedir}/xeus/
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-07-11 22:28 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-11 22:28 [rpms/xeus] epel10: Update to latest version (#2007795) Elliott Sales de Andrade
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox