Slide 1

Slide 1 text

Andrea Aime GeoSolutions Certified GeoServer: status of OGC service and format compliance

Slide 2

Slide 2 text

GeoSolutions Enterprise Support Services Deployment Subscription Professional Training Customized Solutions GeoNode • Offices in Italy & US, Global Clients/Team • 30+ collaborators, 25+ Engineers • Our products • Our Offer

Slide 3

Slide 3 text

Affiliations We strongly support Open Source, it is in our core We participate in OGC testbeds and get funded to advance new open standards We support standards critical to GEOINT

Slide 4

Slide 4 text

GeoServer, OGC services, certifications

Slide 5

Slide 5 text

GeoServer: OGC first • GeoServer has long been implementing OGC services • WFS first • Then came WMS • Then WCS • Eventually WPS and CSW • Fast forward to 2020s with OGC APIs

Slide 6

Slide 6 text

OGC Service validation and certification • A given service can be “implementing” a standard, without any certification • But one can be also “certified compliant” • CITE: Compliance & Interoperability Test Engine test engine

Slide 7

Slide 7 text

Team engine test suites

Slide 8

Slide 8 text

Team engine test suites

Slide 9

Slide 9 text

General Workflow • Stand up test server, online • Point the test suite to the server • Set up parameters to drive testing • Older suites may require specific test data

Slide 10

Slide 10 text

CITE compliance and test automation, the beginnings

Slide 11

Slide 11 text

GeoServer certifications back in 2009 Done manually

Slide 12

Slide 12 text

We should run tests more often • Months passed between releases • When close to release, one had to manually run the tests • Better to • Know daily, right after commits • Run automated • Finding: tests could be run also from CLI

Slide 13

Slide 13 text

CITE tests automation (~2010) • Work performed by Justin Deoliveria • Needed to patch CITE engine to run in a build server • headless • automated • Eventually we had: • WMS 1.0/1.1.1 • WFS 1.0/1.1 • WCS 1.0/1.1

Slide 14

Slide 14 text

Suites pinned • We wanted to test GeoServer changes (are they breaking CITE tests?) • So we pinned the tests • In the meantime, the CITE tests had new releases, and weren’t passing any longer • New tests not available before • Existing tests modified • No funding to perform upgrades. Yet, running older tests was better than not running them at all

Slide 15

Slide 15 text

Still useful… until it fell apart • Eventually the build server was attacked and vandalized • We had to build a new one • When we did, we realized part of the CITE test machinery was actually stored on the server itself, and got lost, along the dev that worked on it • The new build server could not run CITE tests anymore • Releases had became frequent, we had no manpower to run manually anymore

Slide 16

Slide 16 text

CITE test automation, a new beginning

Slide 17

Slide 17 text

2019, GSIP 176, a new beginning • Geoserver Improvement Proposal 176 by Jody Garnett • “CITE Automation RFP” • Collect funds and proposals to restart the automated CITE tests runs • Have a machinery to run tests (just run, step 1) • Desired outputs • Run all old tests plus some new ones (WFS 2.0, WMTS 1.0) • Run on the build server • Run on developer machine

Slide 18

Slide 18 text

GSIP 176 sponsors

Slide 19

Slide 19 text

Going through turbulent times • GSIP approved Dec 2019 • Unfavourable timing, OGC was changing CITE testing • New tests being written in TestNG (rather than XSLT) • Docker support was started, but only for some tests • REST API to invoke tests, in addition to CLI and Web (but only for newer test suites back then) • Attempts to use the above failed, eventually the effort worked on using CLI, with custom Docker packaging • Completed 2021

Slide 20

Slide 20 text

Step 2: sprint to pass the tests • Once the machinery to run tests was ready, we had to make tests pass • But we were fully in the pandemic • The in-person international code sprint to have tests pass was delayed • The pandemic closed in 2023 • But then we got threatened to be sued for org.opengis usage in Java package names • opengis-harmonization code sprint late 2023

Slide 21

Slide 21 text

OGC API Features code Sprint 2024 • Camp2Camp organized a code sprint to graduate the OGC API Features community module to supported status, November 2024 • One of the objectives? Pass CITE certification for it! • Gabriel Roldan revived the existing docker machinery, using the new OGC docker images (docker + rest) as an option • We found WCS 1.1 and WMS 1.1 would also pass out of the box

Slide 22

Slide 22 text

A different approach: Github actions • In the era of GitHub, it’s best to run as many tests as possible in Github actions! • Prevent compliance regressions from getting in Nov 13th 2024 3

Slide 23

Slide 23 text

WFS 1.0 and 1.0, Nov 18th 2024 • Andrea started hammering the CITE tests for the other standards in spare time • WFS 1.0 and 1.1 only required fixes to test data • One week after the Sprint (Nov 16-18th) 5

Slide 24

Slide 24 text

WMS 1.3, Nov 24th 2024 • WMS 1.3 working after another week • This required one fix in the GeoServer code 6

Slide 25

Slide 25 text

WFS 2.0, Jan 3rd 2025 • This is the first “new tests” that we never had before 7

Slide 26

Slide 26 text

GeoTiff 1.1, Jan 10th 2025 • Did you know CITE validates also formats? • Set up machinery to extract outputs and validate them against CITE tests • Validated WMS and WCS, single band, multiband, tiled, rotated, DEFLATE and JPEG compressed • Required one fix in GeoTools 8

Slide 27

Slide 27 text

GeoPackage 1.2, Feb. 8th 2025 • Validate GeoPackage produced by GeoServer • Required one fix to GeoTools • And one fix in the CITE tests themselves (yes, it happens). We used a patched test for the moment 9

Slide 28

Slide 28 text

WMTS 1.0, Feb. 24th 2025 • This one was trickier, multiple changes • One fix in GeoWebCache • One in GeoServer • Two in the test suite itself (being discussed, using a patched version) 10

Slide 29

Slide 29 text

WCS 2.0, March. 25th 2025 • One fix in GeoServer • One proposed for the test suite itself • Some tests are not being run at all due to spec and XSD schemas inconsistenscies 1 1

Slide 30

Slide 30 text

OGC API Tiles - July 3rd 2025 • OGC API Tiles is still a community module • Required 3 fixes in GeoServer • Needs the most recent test suite version (one fix needed there) 12 

Slide 31

Slide 31 text

Any more test suites to target? • CSW 2.0.2 • not attempted yet • KML • Does not pass due to some XML binding issues • GeoServer 3 will bring in required updates • OGC API Processes (brand new community module) • Several failures, still investigating

Slide 32

Slide 32 text

Back to being certified

Slide 33

Slide 33 text

How about getting certified again? • Peter Smythe leading the charge • First order of business, we need online servers • A separate GeoServer for each protocol (specific data) • Seven GeoServer in total • Each on a different TCP port • Synch with OSGeo to get the HW, perform the deploys • Everything working by March 2025

Slide 34

Slide 34 text

A docker compose to rule them all https://github.com/geoserver/geoserver/blob/main/build/cite/docker-compose.yml

Slide 35

Slide 35 text

Ready to roll! …. Or not? • Ready to certify in March 2025 • Certification goes through OSGeo, which in turn contacts OGC • Angelos Tzotsos is our patient OSGeo counterpart • Hitting a hiccup: OGC requires payment for all services that are not Reference Implementation • We cannot ask to become RI for everything, only a few servers are allowed, RI slots are already used • Total: 1000+ USD… whoops! Every year? Let’s talk!

Slide 36

Slide 36 text

Ok for one time, with a discount • The GS PSC does have a little money left for this • Decided to use if for one round of certification • OGC offered a discount too • GS is the only OSGeo project doing paid certifications (others do RI only)

Slide 37

Slide 37 text

What about the future? • Certification will expire and we’ll have to pay again • We’re adding more CITE tests, we’ll have to pay more • If some GS 3 funds are left, certify it in March 2026? • Need your help gathering funds for certification going forward in the future • Otherwise, only RI for us too

Slide 38

Slide 38 text