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

[Rugged Developers] Hipparchus 1.0 released, Orekit switches to use it



Hi all,

The Hipparchus 1.0 Java mathematical library has been released recently. Here is the
official announcement:

The Hipparchus community is pleased to announce the release of Hipparchus 1.0, a self-contained mathematics library written in Java. Hipparchus began as a fork of Apache Commons Math, originated by most of the core developers of that library. Hipparchus has been divided into modules and numerousAPI, implementation and documentation improvements have been made. The release includes a migration package to assist users transitioning from Apache Commons Math. Details may be found in the release notes that accompany the source and binary distributions. The official release distributions can be
    obtained from the Hipparchus download page:

    https://www.hipparchus.org/downloads

Please be sure to check the signatures on the artifacts using the KEYS file linked on the
    download page.

Hipparchus modules are also available on Maven Central, under the groupId org.hipparchus.

Hipparchus is released under the Apache 2.0 license. Hipparchus is an open development community. We welcome comments, bug reports and patches in the form of pull requests. To report issues with Hipparchus or to get involved with Hipparchus development, follow the
    instructions on the Hipparchus web site.

    Phil Steitz
    On behalf of the Hipparchus community



As explained in the announcement message above, Hipparchus is a fork of Apache Commons Math, initiated by most of the core developers of that library. As Apache Commons Math was a critical component for Orekit and Rugged, this fork was something important to consider.
Here are some background information to help explain the choice made.



Orekit implements space flight dynamics level algorithm on top of an
existing mathematical library. At the very beginning of its history,
the mathematical library was Mantissa, a now retired single-person
project (I was the sole author and maintainer). Mantissa was donated
to the Apache Software Foundation and included in Apache Commons Math.
Apache Commons Math has been the mathematical engine underneath
Orekit for about ten years.

Rugged implements geometric corrections algorithms for sensor to
terrain mapping using Digital Elevation Models on top of Orekit and
also relies on a mathematical library.

For several reasons, several committers of the Apache Commons Math
project decided to create a new project, starting with a fork of the
Apache Commons Math sources. The official announcement was published
on June 1st and can be found here: <http://markmail.org/message/frrshnnd7e4dcyqc>.

The new project is called Hipparchus. It can be found here
(<https://hipparchus.org/>) and its source code repository is
available at GitHub <https://github.com/Hipparchus-Math/hipparchus>).
This new project is published under the exact same license as
Apache Commons Math and Orekit: the Apache Software License V2.

There are a couple of people (including the creator of the mathematical
library project at the Apache Software Foundation) that are only
involved in the math library and one Orekit committer involved only in
the space flight dynamics library. However, most of the designers and
developers involved both in Hipparchus have been involved in both
Apache Commons Math and Orekit. The Rugged team also shares a lot with
the Orekit team.

The Apache Commons Math project has currently one committer left,
and a new contributor has just been granted committer rights a
few weeks ago. The upcoming status of Apache Commons Math is unclear.
It seems they intend to reduce drastically the scope, split into
several components and not maintain some parts (our guess is that
ODE will not be maintained).

Given the teams overlap and tight coupling between Orekit and its
underlying mathematical library that often implies synchronized
developments, the Orekit and Rugged developers have decided to
follow the Hipparchus fork.

One very important feature of the Hipparchus project is that a
migration module has been developed to help developers of components
relying on Apache Commons Math to migrate to Hipparchus. This
module has been applied to Orekit (and also to Rugged, the
sensor to terrain mapping library built on top of Orekit). It was
a one day load to migrate Orekit. This migration module can be
used by all Orekit users to also migrate their code base to
Hipparchus. Anyway, these users would also have needed to migrate
code even if Apache Commons Math was still used, because the
new version would have been a major release (4.0), with package
name changes and API changes at the same level as Hipparchus brings,
but the apache project would not have provided a migration module.
Indeed, migrating from Apache Commons Math 3.X to Hipparchus is expected
to be easier than migrating from Apache Commons Math 3.X to Apache
Commons Math 4.0.

There are no risks at all identified with this change. The code
base is similar, the development team is strong, the licensing
scheme is the same, the collaboration between the space team and
the math team is operational.

Now that the Hipparchus project is publicly available and the first
official version 1.0 has been released, both as source archives,
binary archives and maven artifacts on the public maven repositories,
the already migrated Orekit (and Rugged) code base have been made public
too. The current master branches of Orekit and Rugged in the Git
repository depend on Hipparchus 1.0.

The soon-to-be-released Orekit 8 version will be created from this
state. This allows to have all major changes done at the same time,
in order to avoid multiple migrations to users projects:
  - Orekit 7.2 -> Orekit 8.0
  - Apache Commons Math 3.6.1 -> Hipparchus 1.0,
  - Java 6 -> Java 8.

As promised since a long time, this version *does* include orbit
determination. Every one is welcome to use it.


best regards,
Luc, on behalf of the Orekit and Rugged teams