[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