[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Orekit 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