<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<font face="Droid Sans">Hi all,<br>
<br>
I am adding this topic to the next board meeting.<br>
<br>
Best,<br>
Angelos<br>
</font>
<div class="moz-forward-container"><br>
<br>
-------- Forwarded Message --------
<table class="moz-email-headers-table" cellspacing="0"
cellpadding="0" border="0">
<tbody>
<tr>
<th valign="BASELINE" nowrap="nowrap" align="RIGHT">Subject:
</th>
<td>On "org.opengis" name usage by OSGeo GeoTools project</td>
</tr>
<tr>
<th valign="BASELINE" nowrap="nowrap" align="RIGHT">Date: </th>
<td>Fri, 25 Nov 2022 19:29:35 +0100</td>
</tr>
<tr>
<th valign="BASELINE" nowrap="nowrap" align="RIGHT">From: </th>
<td>Martin Desruisseaux
<a class="moz-txt-link-rfc2396E" href="mailto:martin.desruisseaux@geomatys.com"><martin.desruisseaux@geomatys.com></a></td>
</tr>
<tr>
<th valign="BASELINE" nowrap="nowrap" align="RIGHT">Organization:
</th>
<td>Geomatys</td>
</tr>
<tr>
<th valign="BASELINE" nowrap="nowrap" align="RIGHT">To: </th>
<td>Angelos Tzotsos <a class="moz-txt-link-rfc2396E" href="mailto:tzotsos@osgeo.org"><tzotsos@osgeo.org></a>, Gobe Hobona
<a class="moz-txt-link-rfc2396E" href="mailto:ghobona@ogc.org"><ghobona@ogc.org></a>, Scott Simmons
<a class="moz-txt-link-rfc2396E" href="mailto:ssimmons@ogc.org"><ssimmons@ogc.org></a></td>
</tr>
</tbody>
</table>
<br>
<br>
Hello Angelos and all<br>
<br>
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.<br>
<br>
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.<br>
<br>
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.<br>
<br>
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).<br>
<br>
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.<br>
<br>
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:<br>
<br>
* OGC owns the "opengis.org" domain name.<br>
* All files in "org.opengis" packages have OGC header, with OGC as
the<br>
sole copyright holder.<br>
* "org.opengis" package name usage originated in OGC 01-009, not
in<br>
GeoTools "outreach project".<br>
* "org.opengis" package name is also used in other OGC projects
such<br>
as CITE tests.<br>
* GeoTools fork of GeoAPI is an hostile fork done in reaction to
my<br>
departure of GeoTools.<br>
* It is possible for GeoTools to migrate to GeoAPI 3.0.1 with
limited<br>
impact on their code base. I would be happy to provide suggestions<br>
about how it can be done.<br>
* GeoTools PMC reluctance to use OGC GeoAPI looks like an attempt
to<br>
block concurrent projects by creating intentional compatibility<br>
problems such as [1].<br>
<br>
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.<br>
<br>
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).<br>
<br>
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.<br>
<br>
Best regards,<br>
<br>
Martin<br>
<br>
[1]<a class="moz-txt-link-freetext" href="https://issues.apache.org/jira/browse/CALCITE-5399?focusedCommentId=17637991#comment-17637991">https://issues.apache.org/jira/browse/CALCITE-5399?focusedCommentId=17637991#comment-17637991</a><br>
[2]<a class="moz-txt-link-freetext" href="https://www.geomatys.com/2017/09/20/proj-4-versus-apache-sis-an-accuracy-comparison-2/">https://www.geomatys.com/2017/09/20/proj-4-versus-apache-sis-an-accuracy-comparison-2/</a><br>
[3]<a class="moz-txt-link-freetext" href="https://gdalbarn.com/">https://gdalbarn.com/</a><br>
[4]<a class="moz-txt-link-freetext" href="https://www.ogc.org/standards/go">https://www.ogc.org/standards/go</a><br>
[5]<a class="moz-txt-link-freetext" href="https://github.com/desruisseaux/GeoTools-archive/graphs/contributors">https://github.com/desruisseaux/GeoTools-archive/graphs/contributors</a><br>
[6]<a class="moz-txt-link-freetext" href="https://sourceforge.net/p/geotools/mailman/geotools-devel/">https://sourceforge.net/p/geotools/mailman/geotools-devel/</a><br>
[7]<a class="moz-txt-link-freetext" href="https://sourceforge.net/p/geotools/mailman/search/?q=geotidy">https://sourceforge.net/p/geotools/mailman/search/?q=geotidy</a><br>
[8]<a class="moz-txt-link-freetext" href="https://sourceforge.net/p/geotools/mailman/message/29572383/">https://sourceforge.net/p/geotools/mailman/message/29572383/</a><br>
[9]<a class="moz-txt-link-freetext" href="https://svn.apache.org/repos/asf/sis/ip-review/">https://svn.apache.org/repos/asf/sis/ip-review/</a><br>
[10]<a class="moz-txt-link-freetext" href="https://sourceforge.net/p/geotools/mailman/geotools-administration/?viewmonth=201207">https://sourceforge.net/p/geotools/mailman/geotools-administration/?viewmonth=201207</a><br>
[11]<a class="moz-txt-link-freetext" href="https://github.com/geotools/geotools/pull/3232#issuecomment-816837563">https://github.com/geotools/geotools/pull/3232#issuecomment-816837563</a><br>
[12]<a class="moz-txt-link-freetext" href="https://sourceforge.net/p/geotools/mailman/message/33467346/">https://sourceforge.net/p/geotools/mailman/message/33467346/</a><br>
[13]<a class="moz-txt-link-freetext" href="https://docs.geotools.org/latest/userguide/library/opengis/faq.html">https://docs.geotools.org/latest/userguide/library/opengis/faq.html</a><br>
[14]<a class="moz-txt-link-freetext" href="https://sis.apache.org/book/en/developer-guide.html#GeoAPI-history">https://sis.apache.org/book/en/developer-guide.html#GeoAPI-history</a><br>
[15]<a class="moz-txt-link-freetext" href="https://github.com/opengeospatial/geoapi/">https://github.com/opengeospatial/geoapi/</a><br>
<br>
</div>
</body>
</html>