From 1e05536b86097c73c5f209f4d20e9bd278bfb478 Mon Sep 17 00:00:00 2001 From: Christophe Prud'homme Date: Wed, 17 Jul 2024 19:55:23 +0200 Subject: [PATCH 1/8] fix python calls for feelpp #132 --- docs/modules/ROOT/pages/examples/fin.adoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/modules/ROOT/pages/examples/fin.adoc b/docs/modules/ROOT/pages/examples/fin.adoc index 331e217..d8d4650 100644 --- a/docs/modules/ROOT/pages/examples/fin.adoc +++ b/docs/modules/ROOT/pages/examples/fin.adoc @@ -53,21 +53,21 @@ First, we initialize the {feelpp} environment and set the working directory. [%dynamic,python] ---- -import feelpp +import feelpp.core as fppc from feelpp_project import laplacian import json import os d = os.getcwd() print(f"directory={d}") -e = feelpp.Environment(['fin'], config=feelpp.localRepository(".")) +e = fppc.Environment(['fin'], config=fppc.localRepository(".")) ---- Next, we set the configuration file for the simulation and load the specifications from a JSON file. [%dynamic,python] ---- -feelpp.Environment.setConfigFile(f"{d}/src/cases/laplacian/fin/fin1/fin2d.cfg") +fppc.Environment.setConfigFile(f"{d}/src/cases/laplacian/fin/fin1/fin2d.cfg") # Reading the JSON file data = laplacian.loadSpecs(f"{d}/src/cases/laplacian/fin/fin2d.json") print(data) From 0ff452387bd23bf05a8c83c5b6e4e16b7685208f Mon Sep 17 00:00:00 2001 From: Christophe Prud'homme Date: Wed, 17 Jul 2024 19:55:34 +0200 Subject: [PATCH 2/8] add clang format --- .clang-format | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .clang-format diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..92969bb --- /dev/null +++ b/.clang-format @@ -0,0 +1,17 @@ +BasedOnStyle: LLVM + +BreakBeforeBraces: Allman +AlignTrailingComments: true +IndentWidth: 4 +UseTab: Never +AlignAfterOpenBracket: true +# Force pointers to the type for C++. +DerivePointerAlignment: false +PointerAlignment: Left +AllowShortFunctionsOnASingleLine: Inline +AllowShortIfStatementsOnASingleLine: true +NamespaceIndentation: None +ColumnLimit: 0 +ReflowComments: true +SpacesInParentheses: true + From f8a02be1c30c5582f3c8ceb75824bd11e826c8cd Mon Sep 17 00:00:00 2001 From: Christophe Prud'homme Date: Wed, 17 Jul 2024 19:55:50 +0200 Subject: [PATCH 3/8] up mesh size --- src/cases/laplacian/fin/fin4/fin2d.cfg | 1 + 1 file changed, 1 insertion(+) diff --git a/src/cases/laplacian/fin/fin4/fin2d.cfg b/src/cases/laplacian/fin/fin4/fin2d.cfg index e5a4f34..e6fa211 100644 --- a/src/cases/laplacian/fin/fin4/fin2d.cfg +++ b/src/cases/laplacian/fin/fin4/fin2d.cfg @@ -2,6 +2,7 @@ specs=$cfgdir/../fin2d.json [gmsh] geo-variables-list=Nfins=4:dim=2 +hsize=0.025 [bdf] order=2 From fc6eff86c2efcf7145b34d3bc965e54cdb21e214 Mon Sep 17 00:00:00 2001 From: Christophe Prud'homme Date: Wed, 17 Jul 2024 19:56:57 +0200 Subject: [PATCH 4/8] improve interface #128 --- src/_laplacian.cpp | 78 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 54 insertions(+), 24 deletions(-) diff --git a/src/_laplacian.cpp b/src/_laplacian.cpp index d9fdc09..8db36e4 100644 --- a/src/_laplacian.cpp +++ b/src/_laplacian.cpp @@ -47,14 +47,28 @@ //! @date 15 Jun 2017 //! @copyright 2017 Feel++ Consortium //! + + + +#include "laplacian.hpp" +#if defined( FEELPP_HAS_PETSC4PY ) +#include +#endif +#include +#include +#include +#include +#include +#include #include #include -#include +#include #include -#include -#include +#include +#include +#include #include -#include "laplacian.hpp" + namespace py = pybind11; @@ -64,26 +78,42 @@ laplacian_inst( py::module &m ) { using namespace Feel; - py::class_>(m, fmt::format("Laplacian{}DP{}",Dim,Order).c_str() ) - .def(py::init<>()) - .def(py::init()) - .def("initialize", &Laplacian::initialize, "Initialize the Laplacian instance") - .def("processMaterials", &Laplacian::processMaterials, "Process materials from the json data") - .def("processBoundaryConditions", &Laplacian::processBoundaryConditions, "Process boundary conditions from the json data") - .def("run", &Laplacian::run, "Run the Laplacian instance") - .def("timeLoop", &Laplacian::timeLoop, "Execute the time loop") - .def("exportResults", &Laplacian::exportResults, "Postprocess and export the results") - .def("summary", &Laplacian::summary) - .def("specs", &Laplacian::specs, "Return the json specification of the Laplacian instance") - .def("setSpecs", &Laplacian::setSpecs, "Set the json specification of the Laplacian instance") - .def("mesh", &Laplacian::mesh, "Return the mesh") - .def("setMesh", &Laplacian::setMesh, "Set the mesh") - .def("Xh", &Laplacian::Xh, "Return the function space") - .def("u", &Laplacian::u, "Return the element u") - .def("setU", &Laplacian::setU, "Set the element u") - .def("measures", &Laplacian::measures, "Return the measures") - .def("writeResultsToFile", &Laplacian::writeResultsToFile, "Write the results to file") - ; + py::class_>( m, fmt::format( "Laplacian{}DP{}", Dim, Order ).c_str() ) + .def( py::init<>() ) + .def( py::init() ) + .def( "initialize", &Laplacian::initialize, "Initialize the Laplacian instance" ) + .def( "processMaterials", &Laplacian::processMaterials, "Process materials from the json data" ) + .def( "processBoundaryConditions", &Laplacian::processBoundaryConditions, "Process boundary conditions from the json data" ) + .def( "run", &Laplacian::run, "Run the Laplacian instance" ) + .def( "timeLoop", &Laplacian::timeLoop, "Execute the time loop" ) + .def( + "exportResults", []( Laplacian const& l ) + { l.exportResults(); }, + "Postprocess and export the results" ) + .def( + "exportResults", []( Laplacian const& l, typename Laplacian::element_t const& u ) + { l.exportResults( 0, u ); }, + "Postprocess and export the results for steady case" ) + .def( + "exportResults", []( Laplacian const& l, double t, typename Laplacian::element_t const& u ) + { l.exportResults( t, u ); }, + "Postprocess and export the results at time t" ) + .def( "summary", &Laplacian::summary ) + .def( "specs", &Laplacian::specs, "Return the json specification of the Laplacian instance" ) + .def( "setSpecs", &Laplacian::setSpecs, "Set the json specification of the Laplacian instance" ) + .def( "mesh", &Laplacian::mesh, "Return the mesh" ) + .def( "setMesh", &Laplacian::setMesh, "Set the mesh" ) + .def( "Xh", &Laplacian::Xh, "Return the function space" ) + .def( + "u", []( Laplacian& l ) + { return l.u(); }, + "Return the element u" ) + .def( "setU", &Laplacian::setU, "Set the element u" ) + .def( "measures", &Laplacian::measures, "Return the measures" ) + .def( "writeResultsToFile", &Laplacian::writeResultsToFile, "Write the results to file" ) + .def( "assembleGradGrad", &Laplacian::assembleGradGrad, "assemble grad.grad terms", py::arg( "markers" ), py::arg( "coeffs" ) = Eigen::MatrixXd::Ones( Dim, Dim ) ) + .def( "assembleMass", &Laplacian::assembleMass, "assemble mass terms", py::arg( "markers" ), py::arg( "coeffs" ) = 1 ) + .def( "assembleFlux", &Laplacian::assembleFlux, "assemble flux terms", py::arg( "markers" ), py::arg( "coeffs" ) = 1 ); } PYBIND11_MODULE(_laplacian, m ) { From 84af447fcdc9b7c27db4a4006e456df18442b8d0 Mon Sep 17 00:00:00 2001 From: Christophe Prud'homme Date: Wed, 17 Jul 2024 19:57:52 +0200 Subject: [PATCH 5/8] up laplacian class #128 --- src/CMakeLists.txt | 24 +++--- src/laplacian.hpp | 203 ++++++++++++++++++++++++++++++++++++++------- src/laplacian.py | 8 +- 3 files changed, 189 insertions(+), 46 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f1cf501..94101b3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -29,15 +29,15 @@ if(FEELPP_TOOLBOXES_FOUND) feelpp_add_testcase(cases) endif() -if ( SKBUILD_PROJECT_NAME ) - python_add_library(_laplacian MODULE _laplacian.cpp WITH_SOABI) - target_link_libraries(_laplacian PRIVATE pybind11::headers Feelpp::feelpp) - target_compile_definitions(_laplacian PRIVATE VERSION_INFO=${PROJECT_VERSION}) - - install(TARGETS _laplacian DESTINATION feelpp_project) -else() - feelpp_add_pymodule(laplacian SRCS _laplacian.cpp DESTINATION ${PROJECT_NAME}) - file(GLOB PYFILES "${CMAKE_CURRENT_SOURCE_DIR}/feelpp_project/*.py") - install(FILES ${PYFILES} DESTINATION ${FEELPP_PYTHON_MODULE_PATH}/${PROJECT_NAME}) -endif() - +foreach(binding laplacian) + if ( SKBUILD_PROJECT_NAME ) + python_add_library(_${binding} MODULE _${binding}.cpp WITH_SOABI) + target_link_libraries(_${binding} PRIVATE pybind11::headers Feelpp::feelpp) + target_compile_definitions(_${binding} PRIVATE VERSION_INFO=${PROJECT_VERSION}) + install(TARGETS _${binding} DESTINATION feelpp_project) + else() + feelpp_add_pymodule(${binding} SRCS _${binding}.cpp DESTINATION ${PROJECT_NAME}) + file(GLOB PYFILES "${CMAKE_CURRENT_SOURCE_DIR}/feelpp_project/*.py") + install(FILES ${PYFILES} DESTINATION ${FEELPP_PYTHON_MODULE_PATH}/${PROJECT_NAME}) + endif() +endforeach() \ No newline at end of file diff --git a/src/laplacian.hpp b/src/laplacian.hpp index 27baa89..77c1092 100644 --- a/src/laplacian.hpp +++ b/src/laplacian.hpp @@ -25,18 +25,23 @@ #pragma once #include +#include +#include +#include #include #include #include #include -#include #include +#include #include #include +#include #include -#include #include -#include +#include +#include +#include namespace Feel { @@ -46,6 +51,14 @@ inline const int FEELPP_ORDER=1; static inline const bool do_print = true; static inline const bool dont_print = false; +template +inline +Expr > +constant( Eigen::Matrix const& value ) +{ + return Expr >( vf::detail::Ones( value )); +} + /** * @brief compute the summary of a container * @@ -103,21 +116,28 @@ class Laplacian using mesh_t = Mesh>; using space_t = Pch_type; using space_ptr_t = Pch_ptrtype; // Define the type for Pch_ptrtype - using element_ = typename space_t::element_type; + using element_t = typename space_t::element_type; using form2_type = form2_t; // Define the type for form2 using form1_type = form1_t; // Define the type for form1 using bdf_ptrtype = std::shared_ptr>; using exporter_ptrtype = std::shared_ptr>; // Define the type for exporter_ptrtype + using matrix_ptr_t = std::shared_ptr>; + using vector_ptr_t = std::shared_ptr>; Laplacian() = default; + Laplacian( Laplacian const& l ); + Laplacian( Laplacian && l ) noexcept; Laplacian(nl::json const& specs); + Laplacian& operator=( Laplacian const& l ); + // Accessors nl::json const& specs() const { return specs_; } std::shared_ptr const& mesh() const { return mesh_; } space_ptr_t const& Xh() const { return Xh_; } - element_ const& u() const { return u_; } - element_ const& v() const { return v_; } + element_t& u() { return u_; } + element_t const& u() const { return u_; } + element_t const& v() const { return v_; } form2_type const& a() const { return a_; } form2_type const& at() const { return at_; } form1_type const& l() const { return l_; } @@ -129,17 +149,21 @@ class Laplacian // Mutators void setSpecs(nl::json const& specs) { specs_ = specs; } void setMesh(std::shared_ptr const& mesh) { mesh_ = mesh; } - void setU(element_ const& u) { u_ = u; } + void setU(element_t const& u) { u_ = u; } void initialize(); void processMaterials(); void processBoundaryConditions(); void run(); void timeLoop(); - void exportResults(); + nl::json exportResults() const { return exportResults( bdf_->time(), u_ ); } + nl::json exportResults( double t, element_t const& u ) const; void summary(/*arguments*/); void writeResultsToFile(const std::string& filename) const; - + form2_type assembleGradGrad( std::vector const& markers, Eigen::MatrixXd const& coeffs ); + form2_type assembleMass( std::vector const& markers, double coeff ); + form1_type assembleFlux( std::vector const& markers, double coeff ); + // Accessors and mutators for members /* ... */ @@ -147,12 +171,12 @@ class Laplacian nl::json specs_; std::shared_ptr mesh_; space_ptr_t Xh_; - element_ u_, v_; + element_t u_, v_; form2_type a_, at_; form1_type l_, lt_; bdf_ptrtype bdf_; - exporter_ptrtype e_; - nl::json meas_; + mutable exporter_ptrtype e_; + mutable nl::json meas_; }; // Constructor @@ -161,6 +185,66 @@ Laplacian::Laplacian(nl::json const& specs) : specs_(specs) { initialize(); } +template +Laplacian::Laplacian( Laplacian const& l ) + : specs_( l.specs ), + mesh_( l.mesh_ ), + Xh_( l.Xh_ ), + u_( l.u_ ), + v_( l.v_ ), + a_( form2( _test = Xh_, _trial = Xh_ ) ), + at_( form2( _test = Xh_, _trial = Xh_ ) ), + l_( form1( _test = Xh_ ) ), + lt_( form1( _test = Xh_ ) ), + bdf_( l.bdf_ ), + e_( Feel::exporter( _mesh = mesh_ ) ), + meas_( l.meas_ ) +{ + a_ = l.a_; + at_ = l.at_; + l_ = l.l_; + lt_ = l.lt_; +} + +template +Laplacian::Laplacian( Laplacian&& l ) noexcept + : specs_( std::move( l.specs_ ) ), + mesh_( std::move( l.mesh_ ) ), + Xh_( std::move( l.Xh_ ) ), + u_( std::move( l.u_ ) ), + v_( std::move( l.v_ ) ), + a_( std::move( l.a_ ) ), + at_( std::move( l.at_ ) ), + l_( std::move( l.l_ ) ), + lt_( std::move( l.lt_ ) ), + bdf_( std::move( l.bdf_ ) ), + e_( std::move( l.e_ ) ), + meas_( std::move( l.meas_ ) ) +{ + // Optionally, handle the moved-from state if necessary +} +template +Laplacian& +Laplacian::operator=( Laplacian const& l ) +{ + if ( this != &l ) + { + specs_ = l.specs_; + mesh_ = l.mesh_; + Xh_ = l.Xh_; + u_ = l.u_; + v_ = l.v_; + a_ = l.a_; + at_ = l.at_; + l_ = l.l_; + lt_ = l.lt_; + bdf_ = l.bdf_; + e_ = exporter( _mesh = mesh_ ); + meas_ = l.meas_; + } + return *this; +} + // Initialization template @@ -192,7 +276,7 @@ void Laplacian::initialize() double final_time = get_value(specs_, "/TimeStepping/laplacian/end", 1.0); double time_step = get_value(specs_, "/TimeStepping/laplacian/step", 0.1); bdf_ = Feel::bdf( _space = Xh_, _steady=steady, _initial_time=initial_time, _final_time=final_time, _time_step=time_step, _order=time_order ); - + bdf_->start(); if ( steady ) bdf_->setSteady(); @@ -225,7 +309,7 @@ void Laplacian::processMaterials() { for ( auto [key, material] : specs_["/Models/laplacian/Materials"_json_pointer].items() ) { - LOG( INFO ) << fmt::format( "Material {} found", material ); + LOG( INFO ) << fmt::format( "Material {} found", material.dump() ); std::string mat = fmt::format( "/Materials/{}/k", material.get() ); auto k = specs_[nl::json::json_pointer( mat )].get(); std::string matRho = fmt::format( "/Materials/{}/rho", material.get() ); @@ -312,43 +396,42 @@ void Laplacian::timeLoop() // Export results template -void Laplacian::exportResults() +nl::json Laplacian::exportResults( double t, element_t const& u ) const { - e_->step(bdf_->time())->addRegions(); - e_->step(bdf_->time())->add("u", u_); + e_->step(t)->addRegions(); + e_->step(t)->add("u", u); e_->save(); - - auto totalQuantity = integrate(_range=elements(mesh_), _expr=idv(u_)).evaluate()(0,0); - auto totalFlux = integrate(_range=boundaryfaces(mesh_), _expr=gradv(u_)*N()).evaluate()(0,0); + auto totalQuantity = integrate(_range=elements(mesh_), _expr=idv(u)).evaluate()(0,0); + auto totalFlux = integrate(_range=boundaryfaces(mesh_), _expr=gradv(u)*N()).evaluate()(0,0); double meas=measure(_range=elements(mesh_), _expr=cst(1.0)); - meas_["time"].push_back(bdf_->time()); + meas_["time"].push_back(t); meas_["totalQuantity"].push_back(totalQuantity); meas_["totalFlux"].push_back(totalFlux); meas_["mean"].push_back(totalQuantity/meas); - meas_["min"].push_back(u_.min()); - meas_["max"].push_back(u_.max()); + meas_["min"].push_back(u.min()); + meas_["max"].push_back(u.max()); for( auto [key,values] : mesh_->markerNames()) { if ( values[1] == Dim ) { double meas=measure(_range=markedelements(mesh_,key), _expr=cst(1.0)); - auto quantity = integrate(_range=markedelements(mesh_,key), _expr=idv(u_)).evaluate()(0,0); + auto quantity = integrate(_range=markedelements(mesh_,key), _expr=idv(u)).evaluate()(0,0); meas_[fmt::format("quantity_{}",key)].push_back(quantity); meas_[fmt::format("mean_{}",key)].push_back(quantity/meas); } else if ( values[1] == Dim-1 ) { double meas=measure(_range=markedfaces(mesh_,key), _expr=cst(1.0)); - auto quantity = integrate(_range=markedfaces(mesh_,key), _expr=idv(u_)).evaluate()(0,0); + auto quantity = integrate(_range=markedfaces(mesh_,key), _expr=idv(u)).evaluate()(0,0); meas_[fmt::format("quantity_{}",key)].push_back(quantity); meas_[fmt::format("mean_{}",key)].push_back(quantity/meas); - auto flux = integrate(_range=markedfaces(mesh_,key), _expr=gradv(u_)*N()).evaluate()(0,0); + auto flux = integrate(_range=markedfaces(mesh_,key), _expr=gradv(u)*N()).evaluate()(0,0); meas_[fmt::format("flux_{}",key)].push_back(flux); } - + } - + return meas_; } template void Laplacian::writeResultsToFile(const std::string& filename) const @@ -368,7 +451,67 @@ void Laplacian::summary(/*arguments*/) { /* ... summary code ... */ } -// Accessors and Mutators -/* ... */ +template +typename Laplacian::form2_type +Laplacian::assembleGradGrad( std::vector const& markers, Eigen::MatrixXd const& coeffs ) +{ + auto a = form2( _test = Xh_, _trial = Xh_ ); + for( auto marker : markers ) + { + LOG( INFO ) << fmt::format( "assemble grad.grad on marker {} with coeffs: {}", marker, coeffs ); + a += integrate( _range = markedelements( support( Xh_ ), marker ), + _expr = trans(constant(coeffs) * trans(gradt( u_ ))) * trans(grad( v_ )) ); + } + a.close(); + return a; +} +template +typename Laplacian::form2_type +Laplacian::assembleMass( std::vector const& markers, double coeff ) +{ + auto a = form2( _test = Xh_, _trial = Xh_ ); + for( auto marker : markers ) + { + if ( mesh_->markerNames().at(marker)[1] == Dim ) + { + LOG( INFO ) << fmt::format( "assemble mass on volume marker {} with coeff: {}", marker, coeff ); + a += integrate( _range = markedelements( support( Xh_ ), marker ), + _expr = coeff * idt( u_ ) * id( v_ ) ); + } + else if ( mesh_->markerNames().at(marker)[1] == Dim-1 ) + { + LOG( INFO ) << fmt::format( "assemble mass on face marker {} with coeff: {}", marker, coeff ); + a += integrate( _range = markedfaces( support( Xh_ ), marker ), + _expr = coeff * idt( u_ ) * id( v_ ) ); + } + } + a.close(); + return a; +} +template +typename Laplacian::form1_type +Laplacian::assembleFlux( std::vector const& markers, double coeff ) +{ + auto l = form1( _test = Xh_ ); + for( auto marker : markers ) + { + if ( mesh_->markerNames().at(marker)[1] == Dim ) + { + LOG( INFO ) << fmt::format( "assemble flux on volume marker {} with coeff: {}", marker, coeff ); + l += integrate( _range = markedelements( support( Xh_ ), marker ), + _expr = coeff * id( v_ ) ); + } + else + { + LOG(INFO) << fmt::format("assemble flux on marker {} is a face marker with coeff: {}", marker, coeff); + l += integrate( _range = markedfaces( support( Xh_ ), marker ), + _expr = coeff * id( v_ ) ); + } + } + l.close(); + v_.setConstant(1); + LOG(INFO) << fmt::format("flux l(1)={}",l(v_)) << std::endl; + return l; +} } // namespace Feel diff --git a/src/laplacian.py b/src/laplacian.py index 9da84af..961232f 100644 --- a/src/laplacian.py +++ b/src/laplacian.py @@ -3,7 +3,7 @@ import pyvista as pv from xvfbwrapper import Xvfb import sys -import feelpp +import feelpp.core as fppc import feelpp.toolboxes.core as tb from feelpp.toolboxes.cfpdes import * import pandas as pd @@ -64,7 +64,7 @@ def getMesh(filename, hsize=0.05, dim=2, verbose=False): print( f"generate mesh {filename} with hsize={hsize} and dimension={dim}") generateGeometry(filename=filename, dim=dim, hsize=hsize) - mesh = feelpp.load(feelpp.mesh(dim=dim, realdim=dim), filename, hsize) + mesh = fppc.load(fppc.mesh(dim=dim, realdim=dim), filename, hsize) return mesh @@ -175,10 +175,10 @@ def plot_convergence(df, dim, orders=[1, 2]): fig.show() sys.argv = ["feelpp_cfpdes_poisson"] -e = feelpp.Environment(sys.argv, +e = fppc.Environment(sys.argv, opts=tb.toolboxes_options( "coefficient-form-pdes", "cfpdes"), - config=feelpp.globalRepository("cfpdes-poisson-homogeneous-dirichlet")) + config=fppc.globalRepository("cfpdes-poisson-homogeneous-dirichlet")) # generate 2D abd 3D meshes for dim in [2, 3]: From 3f1b05a8c378b246a7a847c42b4e5abd44859924 Mon Sep 17 00:00:00 2001 From: Christophe Prud'homme Date: Wed, 17 Jul 2024 19:58:15 +0200 Subject: [PATCH 6/8] up version #132 --- CMakeLists.txt | 2 +- package-lock.json | 371 +++++++++++++++++++++++++++++++++++++++------- package.json | 10 +- pyproject.toml | 2 +- 4 files changed, 325 insertions(+), 60 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7bf6924..9c01129 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,7 +25,7 @@ cmake_minimum_required(VERSION 3.21.0) project( feelpp-project - VERSION 3.0.1 ) + VERSION 3.2.0 ) set(EXTRA_VERSION "") set(PROJECT_SHORTNAME "fp") diff --git a/package-lock.json b/package-lock.json index b10e762..9bf3e12 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,14 +10,14 @@ "license": "AGPL-3.0", "dependencies": { "@antora/cli": "^3.1", - "@antora/collector-extension": "^1.0.0-alpha.3", + "@antora/collector-extension": "^1.0.0-alpha.6", "@antora/site-generator": "^3.1", "@antora/site-generator-default": "^3.1", "@asciidoctor/core": "^2.2.6", - "@feelpp/asciidoctor-extensions": "1.0.0-rc.8", + "@feelpp/asciidoctor-extensions": "1.0.0-rc.11", "asciidoctor": "^2.2.6", - "asciidoctor-jupyter": "^0.6.0", - "asciidoctor-kroki": "^0.17.0", + "asciidoctor-jupyter": "^0.7.0", + "asciidoctor-kroki": "^0.18.1", "handlebars": "^4.7.8", "handlebars-utils": "^1.0.6" }, @@ -140,20 +140,44 @@ } }, "node_modules/@antora/collector-extension": { - "version": "1.0.0-alpha.3", - "resolved": "https://registry.npmjs.org/@antora/collector-extension/-/collector-extension-1.0.0-alpha.3.tgz", - "integrity": "sha512-0yUc+lMVKzXUfOyelGjVO4C2h8ltzYupyWsjymfBPH251Noj9pSlAuzbldjlp7h92dJakgsz+NsLTHIj6lArbQ==", + "version": "1.0.0-alpha.6", + "resolved": "https://registry.npmjs.org/@antora/collector-extension/-/collector-extension-1.0.0-alpha.6.tgz", + "integrity": "sha512-7Yuq4fEjC6JHmmUP3TOOKAwkDoQmulT4GxiJPSCjGApipSAgwi1fVdm8RiS6mWBazr4NXcF542LJiPbkAyiQVw==", "dependencies": { "@antora/expand-path-helper": "~2.0", "cache-directory": "~2.0", - "glob-stream": "~7.0", - "isomorphic-git": "~1.21", + "fast-glob": "~3.3", + "isomorphic-git": "~1.25", "js-yaml": "~4.1" }, "engines": { "node": ">=16.0.0" } }, + "node_modules/@antora/collector-extension/node_modules/isomorphic-git": { + "version": "1.25.10", + "resolved": "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.25.10.tgz", + "integrity": "sha512-IxGiaKBwAdcgBXwIcxJU6rHLk+NrzYaaPKXXQffcA0GW3IUrQXdUPDXDo+hkGVcYruuz/7JlGBiuaeTCgIgivQ==", + "dependencies": { + "async-lock": "^1.4.1", + "clean-git-ref": "^2.0.1", + "crc-32": "^1.2.0", + "diff3": "0.0.3", + "ignore": "^5.1.4", + "minimisted": "^2.0.0", + "pako": "^1.0.10", + "pify": "^4.0.1", + "readable-stream": "^3.4.0", + "sha.js": "^2.4.9", + "simple-get": "^4.0.1" + }, + "bin": { + "isogit": "cli.cjs" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@antora/content-aggregator": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/@antora/content-aggregator/-/content-aggregator-3.1.4.tgz", @@ -756,15 +780,47 @@ } }, "node_modules/@feelpp/asciidoctor-extensions": { - "version": "1.0.0-rc.8", - "resolved": "https://registry.npmjs.org/@feelpp/asciidoctor-extensions/-/asciidoctor-extensions-1.0.0-rc.8.tgz", - "integrity": "sha512-ck+8ibYf13u5jtRyGvmMua5s2zNkIJy8j0p3RvFdyXXLUQtPVgIvKT7g400zD77Y8hwQxS++I//xCy8Z7z6J2w==" + "version": "1.0.0-rc.11", + "resolved": "https://registry.npmjs.org/@feelpp/asciidoctor-extensions/-/asciidoctor-extensions-1.0.0-rc.11.tgz", + "integrity": "sha512-cqqlN5Srs8hqQ1QG14fQaZJB12RVrY9TG/X4ACtAp/3ms7GlDIQxxw2zR80p7f4n2V0XmRv3cKZ6IB3cT8Zb+A==" }, "node_modules/@iarna/toml": { "version": "2.2.5", "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==" }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/@types/node": { "version": "14.14.37", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.37.tgz", @@ -851,17 +907,17 @@ } }, "node_modules/asciidoctor-jupyter": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/asciidoctor-jupyter/-/asciidoctor-jupyter-0.6.0.tgz", - "integrity": "sha512-MlbOuruTyyA/4PCkM7pSTdSDBA5OjgjQjkhJK02Xm1NxUSGoW6c4lLlqeVHNlbNrsM7ZSkaXLBvWL6oi0rsglg==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/asciidoctor-jupyter/-/asciidoctor-jupyter-0.7.0.tgz", + "integrity": "sha512-aXPsRrFSMfOLbmFuo6nnVvsf+FSsATkwrR6rlTEB72JxSWe1ukt6b7dGMhO5kCxo8X7rSYwQo6NytPN1z3F68g==", "engines": { "node": ">=12" } }, "node_modules/asciidoctor-kroki": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/asciidoctor-kroki/-/asciidoctor-kroki-0.17.0.tgz", - "integrity": "sha512-aObUUfAtcfUTjhAP32bgrcoKXLRta57o3V5k+t73FXDKiLi+QfkHE+9+H4mGPTnghXBtiRYzsu7BbVGfTHoQzQ==", + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/asciidoctor-kroki/-/asciidoctor-kroki-0.18.1.tgz", + "integrity": "sha512-eQxbBCaPTbyNoJtk62Gp+6h4LlJp2147g7eS0QIVjqaLpFa8sseH0BlMiBoATrJUYv1w3nR+FTzvloBJ/MioYg==", "dependencies": { "json5": "2.2.3", "mkdirp": "2.1.3", @@ -873,7 +929,7 @@ "node": ">=10" }, "peerDependencies": { - "@asciidoctor/core": "~2.2" + "@asciidoctor/core": ">=2.2 <4.0" } }, "node_modules/asciidoctor-kroki/node_modules/mkdirp": { @@ -925,9 +981,9 @@ } }, "node_modules/async-lock": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.4.0.tgz", - "integrity": "sha512-coglx5yIWuetakm3/1dsX9hxCNox22h7+V80RQOu2XUUMidtArxKoZoOtHUPuR84SycKTXzgGzAUR5hJxujyJQ==" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.4.1.tgz", + "integrity": "sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==" }, "node_modules/atomic-sleep": { "version": "1.0.0", @@ -1023,11 +1079,11 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -1622,6 +1678,32 @@ "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.1.tgz", "integrity": "sha512-Knr7NOtK3HWRYGtHoJrjkaWepqT8thIVGAwt0p0aUs1zqkAzXZV4vo9fFNwyb5fcqK1GKYFYxldQdIDVKhUAfA==" }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fast-redact": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.2.tgz", @@ -1635,6 +1717,14 @@ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dependencies": { + "reusify": "^1.0.4" + } + }, "node_modules/fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -1644,9 +1734,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -2487,6 +2577,26 @@ "integrity": "sha1-ivoLp7aRp6sSPn8S9l4yu10fgkM=", "dev": true }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -3159,6 +3269,25 @@ "inherits": "~2.0.0" } }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/quick-format-unescaped": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", @@ -3256,6 +3385,15 @@ "node": ">= 0.10" } }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, "node_modules/robot-directives": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/robot-directives/-/robot-directives-0.3.0.tgz", @@ -3287,6 +3425,28 @@ "through": "^2.3.4" } }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, "node_modules/rusha": { "version": "0.8.14", "resolved": "https://registry.npmjs.org/rusha/-/rusha-0.8.14.tgz", @@ -4382,15 +4542,35 @@ } }, "@antora/collector-extension": { - "version": "1.0.0-alpha.3", - "resolved": "https://registry.npmjs.org/@antora/collector-extension/-/collector-extension-1.0.0-alpha.3.tgz", - "integrity": "sha512-0yUc+lMVKzXUfOyelGjVO4C2h8ltzYupyWsjymfBPH251Noj9pSlAuzbldjlp7h92dJakgsz+NsLTHIj6lArbQ==", + "version": "1.0.0-alpha.6", + "resolved": "https://registry.npmjs.org/@antora/collector-extension/-/collector-extension-1.0.0-alpha.6.tgz", + "integrity": "sha512-7Yuq4fEjC6JHmmUP3TOOKAwkDoQmulT4GxiJPSCjGApipSAgwi1fVdm8RiS6mWBazr4NXcF542LJiPbkAyiQVw==", "requires": { "@antora/expand-path-helper": "~2.0", "cache-directory": "~2.0", - "glob-stream": "~7.0", - "isomorphic-git": "~1.21", + "fast-glob": "~3.3", + "isomorphic-git": "~1.25", "js-yaml": "~4.1" + }, + "dependencies": { + "isomorphic-git": { + "version": "1.25.10", + "resolved": "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.25.10.tgz", + "integrity": "sha512-IxGiaKBwAdcgBXwIcxJU6rHLk+NrzYaaPKXXQffcA0GW3IUrQXdUPDXDo+hkGVcYruuz/7JlGBiuaeTCgIgivQ==", + "requires": { + "async-lock": "^1.4.1", + "clean-git-ref": "^2.0.1", + "crc-32": "^1.2.0", + "diff3": "0.0.3", + "ignore": "^5.1.4", + "minimisted": "^2.0.0", + "pako": "^1.0.10", + "pify": "^4.0.1", + "readable-stream": "^3.4.0", + "sha.js": "^2.4.9", + "simple-get": "^4.0.1" + } + } } }, "@antora/content-aggregator": { @@ -4888,15 +5068,38 @@ } }, "@feelpp/asciidoctor-extensions": { - "version": "1.0.0-rc.8", - "resolved": "https://registry.npmjs.org/@feelpp/asciidoctor-extensions/-/asciidoctor-extensions-1.0.0-rc.8.tgz", - "integrity": "sha512-ck+8ibYf13u5jtRyGvmMua5s2zNkIJy8j0p3RvFdyXXLUQtPVgIvKT7g400zD77Y8hwQxS++I//xCy8Z7z6J2w==" + "version": "1.0.0-rc.11", + "resolved": "https://registry.npmjs.org/@feelpp/asciidoctor-extensions/-/asciidoctor-extensions-1.0.0-rc.11.tgz", + "integrity": "sha512-cqqlN5Srs8hqQ1QG14fQaZJB12RVrY9TG/X4ACtAp/3ms7GlDIQxxw2zR80p7f4n2V0XmRv3cKZ6IB3cT8Zb+A==" }, "@iarna/toml": { "version": "2.2.5", "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==" }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, "@types/node": { "version": "14.14.37", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.37.tgz", @@ -4958,14 +5161,14 @@ } }, "asciidoctor-jupyter": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/asciidoctor-jupyter/-/asciidoctor-jupyter-0.6.0.tgz", - "integrity": "sha512-MlbOuruTyyA/4PCkM7pSTdSDBA5OjgjQjkhJK02Xm1NxUSGoW6c4lLlqeVHNlbNrsM7ZSkaXLBvWL6oi0rsglg==" + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/asciidoctor-jupyter/-/asciidoctor-jupyter-0.7.0.tgz", + "integrity": "sha512-aXPsRrFSMfOLbmFuo6nnVvsf+FSsATkwrR6rlTEB72JxSWe1ukt6b7dGMhO5kCxo8X7rSYwQo6NytPN1z3F68g==" }, "asciidoctor-kroki": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/asciidoctor-kroki/-/asciidoctor-kroki-0.17.0.tgz", - "integrity": "sha512-aObUUfAtcfUTjhAP32bgrcoKXLRta57o3V5k+t73FXDKiLi+QfkHE+9+H4mGPTnghXBtiRYzsu7BbVGfTHoQzQ==", + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/asciidoctor-kroki/-/asciidoctor-kroki-0.18.1.tgz", + "integrity": "sha512-eQxbBCaPTbyNoJtk62Gp+6h4LlJp2147g7eS0QIVjqaLpFa8sseH0BlMiBoATrJUYv1w3nR+FTzvloBJ/MioYg==", "requires": { "json5": "2.2.3", "mkdirp": "2.1.3", @@ -5010,9 +5213,9 @@ } }, "async-lock": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.4.0.tgz", - "integrity": "sha512-coglx5yIWuetakm3/1dsX9hxCNox22h7+V80RQOu2XUUMidtArxKoZoOtHUPuR84SycKTXzgGzAUR5hJxujyJQ==" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.4.1.tgz", + "integrity": "sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==" }, "atomic-sleep": { "version": "1.0.0", @@ -5092,11 +5295,11 @@ } }, "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "requires": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" } }, "broken-link-checker": { @@ -5575,6 +5778,28 @@ "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.1.tgz", "integrity": "sha512-Knr7NOtK3HWRYGtHoJrjkaWepqT8thIVGAwt0p0aUs1zqkAzXZV4vo9fFNwyb5fcqK1GKYFYxldQdIDVKhUAfA==" }, + "fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, "fast-redact": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.2.tgz", @@ -5585,6 +5810,14 @@ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" }, + "fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "requires": { + "reusify": "^1.0.4" + } + }, "fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -5594,9 +5827,9 @@ } }, "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "requires": { "to-regex-range": "^5.0.1" } @@ -6233,6 +6466,20 @@ "integrity": "sha1-ivoLp7aRp6sSPn8S9l4yu10fgkM=", "dev": true }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "requires": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + } + }, "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -6761,6 +7008,11 @@ "inherits": "~2.0.0" } }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, "quick-format-unescaped": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", @@ -6834,6 +7086,11 @@ "value-or-function": "^3.0.0" } }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, "robot-directives": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/robot-directives/-/robot-directives-0.3.0.tgz", @@ -6862,6 +7119,14 @@ "through": "^2.3.4" } }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, "rusha": { "version": "0.8.14", "resolved": "https://registry.npmjs.org/rusha/-/rusha-0.8.14.tgz", diff --git a/package.json b/package.json index 002793c..87a1a06 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "private": true, "name": "feelpp-project", "description": "The Feel++ Template Project documentation", - "version": "2.1.0", + "version": "3.2.0", "license": "AGPL-3.0", "author": "The Feel++ Template Project Team", "homepage": "https://github.com/feelpp/feelpp-project#readme", @@ -28,16 +28,16 @@ }, "dependencies": { "@antora/cli": "^3.1", - "@antora/collector-extension": "^1.0.0-alpha.3", + "@antora/collector-extension": "^1.0.0-alpha.6", "@antora/site-generator": "^3.1", "@antora/site-generator-default": "^3.1", "@asciidoctor/core": "^2.2.6", "asciidoctor": "^2.2.6", - "asciidoctor-jupyter": "^0.6.0", - "asciidoctor-kroki": "^0.17.0", + "asciidoctor-jupyter": "^0.7.0", + "asciidoctor-kroki": "^0.18.1", "handlebars": "^4.7.8", "handlebars-utils": "^1.0.6", - "@feelpp/asciidoctor-extensions": "1.0.0-rc.8" + "@feelpp/asciidoctor-extensions": "1.0.0-rc.11" }, "devDependencies": { "broken-link-checker": "^0.7.8", diff --git a/pyproject.toml b/pyproject.toml index ae49b4c..51319b7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "scikit_build_core.build" [project] name = "feelpp-project" -version = "3.0.1" +version = "3.2.0" description="Feel++ Template Project" readme = "README.md" authors = [ From 730389bf6d46ee17b9324aeb498aebae0b464e9d Mon Sep 17 00:00:00 2001 From: Christophe Prud'homme Date: Wed, 17 Jul 2024 19:58:29 +0200 Subject: [PATCH 7/8] fix requirements #128 --- requirements.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 5bdb4cf..04b3fd6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ +platformdirs<3,>=2 pipx build scikit-build >= 0.8.1 @@ -6,7 +7,7 @@ pyproject-metadata ipykernel numpy scipy -pandas +pandas < 2.2 tabulate plotly From e609e8e977c9d61f9f7e95da34f6d6a94fbdd7b9 Mon Sep 17 00:00:00 2001 From: Christophe Prud'homme Date: Wed, 17 Jul 2024 20:09:20 +0200 Subject: [PATCH 8/8] use option -I to install requirements #132 --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7205f87..b20afb4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,7 +26,7 @@ jobs: run: | python3 -m venv .venv source .venv/bin/activate - pip3 install -r requirements.txt + pip3 install -I -r requirements.txt - name: Compile run: | @@ -67,7 +67,7 @@ jobs: run: | python -m venv --system-site-packages .venv source .venv/bin/activate - pip3 install -r requirements.txt + pip3 install -I -r requirements.txt pip3 install dist/*.whl tree .venv - name: Build Antora Site