<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>