[Oskari-user] Oskari release 1.56.0 + insights for the next big thing

Mäkinen Sami (MML) sami.makinen at maanmittauslaitos.fi
Fri Jul 3 04:25:20 PDT 2020


Good news everyone,

We released Oskari 1.56.0 this week and it is now available on GitHub (https://github.com/oskariorg), Oskari.org Maven repository and on the download link in Oskari.org (https://oskari.org/download). As always you can take a peek at the latest at https://demo.oskari.org/. There has been a lot of work being done under the hood and upgrading to the version 1.56.0 is a required step when upgrading to any later version of Oskari due to library updates so it's a good time to upgrade now.

Talking about library updates we have started building the next version of Oskari on GitHub already: https://github.com/oskariorg/oskari-server/tree/v2.0. So far we have updated Geotools from 19.2 to 23.1 and Spring from 4.x to 5.x on our way to improve Java 11+ support and keep up with the progress. If you want to pitch in for cleaning up the codebase, making library updates and/or just testing now is the perfect time for it! The next release is called 2.0 as we are doing bigger changes under the hood that will require some manual steps when upgrading. Also this would be an ideal point of updating the documentation regarding installation, configuration and what not on https://oskari.org as unfortunately there are a bunch of pages that have information that is no longer of interest (for example things no longer need to be configured as much) and/or are plain wrong (like anything mentioning transport or GDAL). Also we have a bunch of undocumented features that people stumble upon and find useful. We would really appreciate any help you can give regarding this as well! As for new features/functionality we are only fixing a bug or two but the main focus will be on the lib upgrades and we want to keep functionality changes to a minimum between 1.56 and 2.0. Also no big changes are currently planned for the frontend setup for 2.x. These are mostly server-side stuff I'm talking about. If you have read this far I would like to have input on whether we should bulk change the Maven artifact groups and java packages for Oskari to org.oskari.* instead of the current fi.nls.oskari, fi.mml.oskari etc. This could probably be done for 2.0 since there's already some package changes from JTS and GeoTools updates that developers will need to manually update for existing Oskari-based applications if these libraries are used in application specific functionality.
Release notes for 1.56.0

oskari-frontend

For a full list of changes see: https://github.com/oskariorg/oskari-frontend/milestone/24?closed=1

Map layer administration (admin-layereditor)

  *   Possible validation errors are now shown collectively when trying to use the save button instead of the button just being disabled
  *   Scale limit handling fixed and UI for limits made clearer
  *   Added "single tile" toggle in the admin-layereditor UI for WMS-layers
  *   Render mode/collection type selection fixed

Print functionality

  *   Unavailable options are now disabled for PNG format
  *   Misleading print preview link removed
  *   Markers done with the coordinate tool can now be printed as well
  *   Custom styles are now passed to the print functionality

WFS/Vector features

  *   Added configurable formatters for WFS-layers featuredata "gfi" popup. For config/details see: https://github.com/oskariorg/oskari-frontend/pull/1307
  *   Tooltip for WFS-layer features (enabled with styling) should no longer block events from reaching the map making them more useful
  *   Files that were used by the old "transport" implementation continue to be cleaned out (documentation still has references...)
  *   My places GFI popups are now handled as WFS-data with formatters (so the formatting is a a bit different in this release)

Build performance tuning

The recently added examples with 3D-libraries makes build take 3x time. We are still considering how to handle this on the sample app so on-boarding/"unboxing"/first build wouldn't not be too terrifying. If you don't use the 3D apps we recommend removing them from the application-specific repositories when using sample-application as template.

AntD UI-components library version update

AntD has been upgraded from 3.x to 4.x. This includes breaking changes for icon usage. See details here: https://github.com/oskariorg/oskari-frontend/pull/1302 The good news is that the change in icon handling reduces the size clients need to download on their browser for Oskari apps by around 500kb (~200kb gzipped).

Also we changed the <Message /> tag so it can be used without localization (helps when creating tests for example).

Other library updates and Node JS version

With the latest library updates the required version of NodeJS is now 10 (previously 8). We noticed that upgrading from NodeJS version 8 to version 12 improves build time by 25% or more so we encourage upgrading to the latest LTS. Errors from new coding conventions from ESLint upgrade have been overridden as warnings for now. This means that they won't break PRs but will be highlighted in an IDE like Visual studio code. Jest upgrade affects async tests and/or testing code that uses setTimeout() but should otherwise be transparent to developers.

  *   Library updates: jQuery, jsts
  *   Build-library updates: Babel, Webpack
  *   Test library updates: ESLint, Jest, Enzyme

Tests for the frontend and lodash removal

Tests have been added for parts of mapmodule and the code has been refactored a bit for better enabling testing. This comes as a by-product of code refactoring for removing the lodash dependency. Lodash was awesome previously but now we can use native JS functions instead of it thanks to the build process change to webpack and transpiling. Most of the code using lodash assumes it is linked as a global _ variable which makes understanding and testing the code more difficult than it should be. It also assumes the version of lodash is 2.x using functions that have been removed from the 4.x version mentioned in package.json so it's even more problematic/misleading.

Any bundles under mapping no longer uses lodash and we will continue working on removing it until we can just drop the dependency. So please use the native versions instead on any new code.

Other changes

  *   Thematic maps tool UX/state handling improved
  *   Accessing map publishing functionality no longer breaks the feature info query tool
  *   Measurement tool now provides more accurate results
  *   Map layer filter now includes option for "all layers" - Previously clearing the filter was unnecessarily hidden as a simple x icon (layerlist bundle)
  *   User-generated public content from other users are now grouped under "no group" instead of "user layers/places" to make it more apparent that they are not the current users layers
  *   My places features are now loaded in smaller pieces for the my data listing (based on the layer selected instead of one big chunk) improving startup time
  *   3D camera mode tool now introduces itself in the guided tour
  *   Dimension change bundle now tries to transform marker coordinates when changing projection
  *   Version number for Oskari.VERSION now comes directly from package.json (it's not duplicated on code base)

oskari-server

For a full list of changes see: https://github.com/oskariorg/oskari-server/milestone/23?closed=1

Important note for the release!

This release migrates the database migration status tables in preparation for updating to latest version of the Flyway library. This will bring Postgres 12 support for Oskari in the next release. This is also a required version step between versions so you will need to upgrade to this version before upgraging to the next one. We are currently planning on labeling the next version 2.0 as it will have some manual steps that are required when upgrading to it. We are also planning on keeping functional changes low or none for 2.0 to minimize the chance of something breaking as the main focus for the next release is massive library updates.

User generated content styling, imports (userlayer) and server installation change

User generated content styling has been harmonized at DB level. The styles are now stored similar to styles for WFS-layers enabling more flexible styling in the future. This also adds clustering support for my places etc.

The my places API has been partially changed (=layer metadata) from WFS-T to direct DB access. This gives us more flexibility and works towards removing the "internal" GeoServer we currently use with Oskari. The user content is/has been loaded through db -> GeoServer -> Oskari-server -> browser which adds more serialization/deserialization steps than it needs and creates unnecessary overhead for the functionality. Also we don't really need an internal GeoServer on Oskari for making this work as we are doing very simple things with it and it's one component more that is harder to update automatically with releases/bundled setup. Unfortunately we can't remove it for the 2.0 release but it's something we are working towards when we can for some future Oskari version.

While we are working on removing the internal GeoServer there will be some layers configured automatically for the internal GeoServer that might not work properly. They don't hurt but it might look a bit messy. We will try removing the deprecated configuration for 2.0 version as well. These deprecated layers were used by Oskari when user generated content was loaded as WMS-layers to the browser. Now that they are used as WFS-layers we have cleaned up some views on the database but not the configuration on the GeoServer that tries using them. Again, not a problem but it might look a bit messy if you take a look inside the "internal" GeoServer.

GDAL dependency removed

Added MIF/MID-parser implementation! GDAL no longer needs to be installed and configured for Oskari to support this import file type and it was the last one to use it so it doesn't need to be installed at all anymore.

Added GPX 1.0 support for userlayer import (previously only 1.1)

Other changes

  *   GeoTools/GeoServer Maven repository has been updated. Builds should now work properly out of the box again (without configuring mirrors for geotools repositories yourself).
  *   Improved styling support for printout
  *   Added support for vector tile layers requiring credentials (proxy support)
  *   Improved support for "capabilities"/describe feature type update for OGC API Features
  *   OGC API Features conformance URL updated for the WFS-client
  *   Fixed an issue with WMS-layers capabilities parsing where style was missing.
  *   Capabilities caching improvements
  *   Fix for analysis publish permission
  *   Fix for "Clipping" analysis
  *   Added configuration for my places GFI-formatting for making it work with WFS-formatters
  *   Instance domain is now always included in embedded maps permitted domains
  *   Library updates: Jackson, Log4j2, Flyway

Have a nice summer and happy updating,
         Sami
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/oskari-user/attachments/20200703/ebc1767c/attachment-0001.html>


More information about the Oskari-user mailing list