[Board] Fwd: On "org.opengis" name usage by OSGeo GeoTools project
Angelos Tzotsos
gcpp.kalxas at gmail.com
Tue Jan 3 01:31:05 PST 2023
Hi all,
I am adding this topic to the next board meeting.
Best,
Angelos
-------- Forwarded Message --------
Subject: On "org.opengis" name usage by OSGeo GeoTools project
Date: Fri, 25 Nov 2022 19:29:35 +0100
From: Martin Desruisseaux <martin.desruisseaux at geomatys.com>
Organization: Geomatys
To: Angelos Tzotsos <tzotsos at osgeo.org>, Gobe Hobona <ghobona at ogc.org>,
Scott Simmons <ssimmons at ogc.org>
Hello Angelos and all
We have a problem that exists for 10 years, but is hurting us
increasingly. The OSGeo GeoTools project uses the "org.opengis"
namespace in a way incompatible with OGC GeoAPI standard. It causes
conflicts with all projects that use OGC GeoAPI, such as Apache SIS,
OSGeo PROJ-JNI and IOGP GIGS tests. Because of that, projects such as
Apache Calcite avoids to use GeoAPI and Apache SIS [1]. They fallback on
an alternative (OSGeo PROJ4J) which has the problems that harmed the
geospatial community before PROJ 6 (longitude-latitude axis order,
early-binding model [2], etc.). PROJ 6 fixed those problems by taking
inspiration from OGC GeoAPI and Apache SIS [3], which themselves follow
OGC Topic 2 / ISO 19111 models. PROJ implementation follows the good
practices that avoid name collisions.
To explain how we got "org.opengis" name collision problem with
GeoTools, I need to do a little bit of history. "opengis.org" was the
OGC domain name before OGC renamed itself as "Open Geospatial
Consortium". Despite the renaming, OGC continues to own the
"opengis.org" domain name today. The Java interfaces in "org.opengis"
namespace were initially created as part of OGC 01-009 /Coordinate
Transformation Services/ in 2001, when OGC was still named OpenGIS. It
was before the creation of GeoAPI project. The GeoAPI project has been
launched in 2002 and quickly became a joint project between OGC and the
opensource community. GeoTools was one participant among others. Other
contributors were Polexis (now SYS Technologies), Deegree (now lat/lon
GmbH), Cadcorp and Geomatys. GeoAPI continued the development of
interfaces in "org.opengis" namespace, expanding on OGC 01-009 work.
This work was done as an OGC working group named "GO-1" leads by Polexis
[4], not as a GeoTools project. I participated to GO-1.
In the early years, I was also a contributor of the GeoTools project.
Until my departure in 2009, I was the most active GeoTools contributor
in terms of line of code [5]. I wrote more than 40% of GeoTools code
base of that time, including the quasi-totality of metadata and
referencing modules, and base classes of coverage module. Relationship
with users was good. Relationship with other developers was good with
some, more difficult with others, with probably valid reasons to be
frustrated on both sides. The mailing list archive [6] shows that the
tone was mostly correct. In our last year at GeoTools, we (Geomatys) did
a big cleanup effort in the modules that we wrote, which took us a full
year. It was a response to users and developers request for "GeoTools
3", and we code-named the project as "geotidy". We kept GeoTools
informed about this effort with reports on the mailing list [7] and
public source code repository. When the result was ready for merge in
GeoTools, it was criticized by some core developers as a work that we
did without involving the community. We did not wanted to lost one year
of cleanup effort, so we decided to leave, and the work originally
developed as a "GeoTools 3" proposal (geotidy) became a fork. It was not
the original intent.
The fork has badly damaged our relationship. We can be blamed for at
least two things: having waited a few months before to announce our
departure, and to have choose a forked project name (Geotoolkit) too
similar to GeoTools. We tries to fix the latter by repositioning
Geotoolkit as a project aimed to disappear in favor of Apache SIS. The
latter is an independent project initially created by NASA/JPL
contributors. When we wanted to join them, we asked permission to
re-license our own work contributed to GeoTools [8], excluding all other
contributions [9]. Our demand has meet resistance from some members of
GeoTools Project Management Committee (PMC) [10]. We had to appeal to
OSGeo board for more impartial arbiter. The sentiment of some core
GeoTools developers is still hostile today [11] (I tried to respond as
constructively as I could).
Because OGC GeoAPI is perceived by GeoTools core developers as a project
under my influence, they forked GeoAPI in 2009. Forking happens in
open-source world, but the good practice in those circumstances is to
change the package name for avoiding collision with the original
project. When Geomatys created Geotoolkit, we renamed all "org.geotools"
packages to "org.geotoolkit". But the GeoTools PMC choose to fork OGC
GeoAPI while keeping the "org.opengis" namespace as if it was their own.
Users complained about this conflict [12], but GeoTools developers
replied with some disputable claims (that GeoAPI is an original outreach
project of GeoTools). The GeoTools FAQ page [13] referred in the thread
is apparently derived from Apache SIS developer guide [14], but omitting
some important facts.
The "org.opengis" namespace conflict is clearly blocking Apache SIS and
OGC GeoAPI adoption, as said in comments of [1]. One of us (either OGC
GeoAPI or GeoTools) must rename their "org.opengis" packages. I think
that it should be GeoTools to make the change because:
* OGC owns the "opengis.org" domain name.
* All files in "org.opengis" packages have OGC header, with OGC as the
sole copyright holder.
* "org.opengis" package name usage originated in OGC 01-009, not in
GeoTools "outreach project".
* "org.opengis" package name is also used in other OGC projects such
as CITE tests.
* GeoTools fork of GeoAPI is an hostile fork done in reaction to my
departure of GeoTools.
* It is possible for GeoTools to migrate to GeoAPI 3.0.1 with limited
impact on their code base. I would be happy to provide suggestions
about how it can be done.
* GeoTools PMC reluctance to use OGC GeoAPI looks like an attempt to
block concurrent projects by creating intentional compatibility
problems such as [1].
If I try to reach the GeoTools PMC myself about this issue, it will be
received with hostility (c.f. [11]) or ignored on the argument that I
must pay them for doing this work (I already tried to ask them in the
past). I believe that for the issue to be addressed seriously, we need
to have GeoTools PMC to act upon OSGeo board request, maybe itself on
OGC request if OGC accepts to friendly ask OSGeo to resolve this issue.
GeoTools can either rename all their "org.opengis" packages, or upgrade
to GeoAPI 3.0.1, at their choice. If they choose the latter option, as
said above I would be happy to help with suggestions.
Regarding the future of OGC GeoAPI, since the GeoAPI 3.0 release, we
have never published a major update, only bug fixes with no change in
API. Extensive developments have been done on the OGC GitHub repository
[15] (ISO 19103 and 19115 upgrades, ISO 19109, OGC filters) but not
released. One reason is that I would like to see a new chair or co-chair
for "political" reason. I would be happy to have a GeoTools contributor
as co-chair, if they agree with GeoAPI charter. The key charter point is
to restrict GeoAPI scope to OGC/ISO standards defined by other OGC
groups, and not invent new API except for integration with host
platform. The former GO-1 project was too ambitious (created too much
new API).
What could be the action for resolving the "org.opengis" package name
conflict? For example, should we organize a conference call with members
from OGC, OSGeo board and GeoTools PMC? If considered appropriate, OSGeo
can forward this email to GeoTools PMC for setting the context. This
conflict is a major impediment to GeoAPI and Apache SIS adoption and
needs to be resolved.
Best regards,
Martin
[1]https://issues.apache.org/jira/browse/CALCITE-5399?focusedCommentId=17637991#comment-17637991
[2]https://www.geomatys.com/2017/09/20/proj-4-versus-apache-sis-an-accuracy-comparison-2/
[3]https://gdalbarn.com/
[4]https://www.ogc.org/standards/go
[5]https://github.com/desruisseaux/GeoTools-archive/graphs/contributors
[6]https://sourceforge.net/p/geotools/mailman/geotools-devel/
[7]https://sourceforge.net/p/geotools/mailman/search/?q=geotidy
[8]https://sourceforge.net/p/geotools/mailman/message/29572383/
[9]https://svn.apache.org/repos/asf/sis/ip-review/
[10]https://sourceforge.net/p/geotools/mailman/geotools-administration/?viewmonth=201207
[11]https://github.com/geotools/geotools/pull/3232#issuecomment-816837563
[12]https://sourceforge.net/p/geotools/mailman/message/33467346/
[13]https://docs.geotools.org/latest/userguide/library/opengis/faq.html
[14]https://sis.apache.org/book/en/developer-guide.html#GeoAPI-history
[15]https://github.com/opengeospatial/geoapi/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/board/attachments/20230103/52ea40be/attachment.htm>
More information about the Board
mailing list