[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

please review siconos package



Hello science team,

As previously mentioned I have been developing a package for Siconos,
a C++ framework for numerical simulation of non-smooth dynamical
systems.

I would like to know if anyone would be willing to review this package
as it stands.  The package is here:
https://salsa.debian.org/science-team/siconos

ITP: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=915656

Some notes on the package.  Various binary packages are generated,
including C++ libraries, -dev, python packages, and command-line
tools.  A master "siconos" package depends everything including dev
packages along with a script that uses them.

* It has a few different usage modes that the package tries to be amenable to.
  - First, as a set of C++ libraries, one C library that wraps a suite
of numerical solvers and then a C++ framework and various
sub-frameworks for different use cases (e.g. mechanical systems,
control problems, etc.);
  - second, as a modeling framework, it provides a script that
compiles and launches a program driven by CMake;
  - third, as a Python library, wrapped using SWIG.

I note these because one major mode of *usage* of Siconos, namely the
use of the "siconos" script, requires build tools, so this should be
understood in case questions arise about the need for -dev packages
when the "siconos" package is installed.

When only library packages are installed, it can be used like any
other shared library.

Moreover siconos-mechanics-tools includes some Python scripts specific
to the mechanics subcomponent which generate HDF5 files based on a
scene description that can be visualized interactively in 3D (using
python-vtk7).

* A serialization framework is available through BOOST serialization.
This is heavily templated C++ code.  In combination with SWIG, these
two "compiler-wrappers" cause the compilation to balloon in needed
memory at certain points during the build.

When turned on, which they are, a large amount of memory is needed for
compilation. I found that it overloads the Salsa CI gitlab runner, for
example, and on my laptop with 8 GB memory I must close the browser
while it is compiling else OOM.  I am not sure if this will present
issues for Debian packaging, please advise.  In particular this is why
I disabled parallel build.

* All copyright issues have been cleared, anything not adhering to
Debian legal standards has been made optional and removed.  If
anything is noticed please let me know.  The main obstacle was the QP
solver (ql0001), which still needs to be replaced with a free option,
but Siconos works regardless so this can be hopefully fixed in a later
release.  The upstream authors are aware.

Finally: autopkgtests are included, although at the moment I have
having trouble getting autopkgtest working locally for any package
(weird errors about "file not found" and "cannot send to testbed" on a
brand-new schroot), but it worked previously so I hope it does not
cause issues.  The package also passed on Salsa's Gitlab CI when I
disabled the options that cause memory issues, so I'm fairly
confident: https://salsa.debian.org/science-team/siconos/-/jobs/72019
.  I've stalled long enough sending this for review so I didn't want
to let this stop me.

Due to working with upstream to get necessary changes in, the package
is currently based on a git version.

I should mention, the last thing to do is symbols files, I have not
done it yet.  I am not sure how to proceed with a complicated C++
library to be honest, any advice is appreciated.

My interest in the package is its use as a rigid body mechanics solver
for robotics applications.  It is similar somehow to Bullet or ODE,
but not oriented towards games or really even to real-time, instead it
focuses on generalized modeling of dynamical systems and the use of a
wide array of collision solvers. In fact it uses Bullet for collision
detection, hence the dep from libsiconos_mechanics.

regards,
Steve


Reply to: