[Board] Fwd: On "org.opengis" name usage by OSGeo GeoTools project
Angelos Tzotsos
gcpp.kalxas at gmail.com
Tue Oct 17 01:19:50 PDT 2023
Given the latest release of GeoTools
(http://geotoolsnews.blogspot.com/2023/10/geotools-300-released.html), I
think we should consider the issue resolved.
Big thank you to the GeoTools team for their efforts!
Best,
Angelos
On 1/7/23 12:48, Angelos Tzotsos wrote:
> Related ticket:
> https://git.osgeo.org/gitea/osgeo/todo/issues/142
>
> On 1/3/23 11:31, Angelos Tzotsos wrote:
>> 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/
>>
>
--
Angelos Tzotsos, PhD
President
Open Source Geospatial Foundation
http://users.ntua.gr/tzotsos
More information about the Board
mailing list