Releases: seasketch/geoprocessing
v7.0.0-beta.5
π₯ Breaking Changes
- Add new
upgrade
script for migrating to latest version of geoprocessing library. by @twelch in #301, improved in #306. To use it, you must manually add it to the geoprocessing.json scripts section -"upgrade": "geoprocessing upgrade"
. Run the upgrade script and review any code changes. Some upgrade steps will overwrite existing files in.storybook
,src/i18n
,project
,package.json
, etc. so if you have made custom changes you will need to recover them. - Move geoprocessing.json from top-level to
project/geoprocessing.json
. Upgrade script handles move and updating import insrc/project/projectClients.ts
. Any other imports must be manually updated.
π Internal
- Add Node 22 to CI tests
- Drop wiki docs from repo including publish action. For now they will be managed in the wiki directly again.
- Drop mentions of test:smoke
- Drop all group and environment directives from tests
- Extract getTemplatePackages helper function
Full Changelog: v7.0.0-beta.4...v7.0.0-beta.5
v7.0.0-beta.4
π₯ Breaking Changes
- Remove
prepare
script from package.json. No longer used.
π New Feature / Improvement
- CLI enhancements by @avmey in #280
- Upgrade to Turf v7.0 from beta. Upgrade any turf dependencies in your GP projects package.json. via @twelch
π Bug Fix
- Socket hang up error by @twelch in #300
- Fix tooltip z-index issue and font styling. Document pdf printing by @avmey in #276
Full Changelog: v7.0.0-beta.3...v7.0.0-beta.4
v7.0.0-beta.3
π Bug Fix
- Fix
storybook:install
script. - Fix
translation:install
command so that it doesn't wipe out project i18n configuration and remove translation install fromtranslation:extract
command by @twelch in #296. - Fix clear results scripts by @twelch in #298
π Internal
- Merge scripts directory build and launchers with src by @twelch in #297
- Add separate export for non-english supported languages
- Update github action to latest versions to support node 20
Full Changelog: v7.0.0-beta.2...v7.0.0-beta.3
v7.0.0-beta.2
After upgrading, be sure to npm run install:scripts
, then npm run translation:install
to get the latest code/config, then npm run translation:import
to get the latest translations from POEditor.
π New Feature / Improvement
- Support running worker geoprocessing functions in parallel from a parent geoprocessing function
- Support passing geobuf-encoded sketch parameter to geoprocessing function by @twelch in #294
- Update i18next dependencies, update base translations, fix locale import, migrate importTerms and publishTerms to use built-in fetch API instead of request by @twelch in #295
π Bug Fix
- Stop overwriting src/i18n/config.ts on
translation:install
.remoteContext
was being lost. - Switch to using
raw
option for glob import of locale files and parsing as JSON strings. Module loading was not working properly.
π Internal
- Now that projects need their own .storybook directory, template packages now symlink in the base-project .geoprocessing directory.
Full Changelog: v7.0.0-beta.1...v7.0.0-beta.2
v7.0.0-beta.1
π New Feature / Improvement
- Add JSON schema for validation of project config files. By @avmey in #283
- Upgrade to React 18 by @twelch in #286
- Support parallel geoprocessing using worker lambda functions. Added permission for async function lambdas to invoke sync function lambdas. Provide geoprocessing functions access to original API parameters (e.g. sketch URL) so that it can be passed on to workers. By @twelch in #287.
- Export genTaskCacheKey in client-core library.
- Upgrade all dependencies to latest minor version.
π Bug Fix
- genReportStories - pass example sketch params to report context so that sketch is fully available in story
- Add
json
type assert to import of extraTerms.json files
Full Changelog: v7.0.0-beta.0...v7.0.0-beta.1
v7.0.0-beta.0
π₯ Breaking Changes
See v6.x to v7.x migration guide
- Migration to pure ES Module structure using Vite, Esbuild, Vitest testing framework, and Node 20 in #272.
- Upgrade from Storybook 6.x to 8.x. Storybook config is now in project space and installed using
npm run storybook:install
. Example story generation is now managed by report developer using*-example-stories.ts
files. Generated stories are put into.story-cache
directories which can be safely ignored. - Storybook is now started using
npm run storybook
instead ofnpm run start-storybook
, to match default behavior or storybook. - Upgrade to styled-components 6.1.11. Custom reports that use will need to migrate to use
styled
named export, attrs() function, and transient prop name (e.g. duration -> $duration).
π New Feature / Improvement
- Adds overlapRasterGroupMetrics function by @avmey in #270
- Add create:report command for generating starter combinations of overlay report and client by @avmey in #271
- Add support for printing reports. by @avmey in #275
- Upgrade to Turf 7.0 prerelease
- Upgrade to flatgeobuf 3.31.1. Supports read of fgb files generates by GDAL 3.4 and later.
- Upgrade to Typescript 5.4.5
- Upgrade to aws-cdk 2.142.0. Migrate to Node20 lambda runtime and running ESM code directly.
- Upgrade to aws-sdk 2.1621.0
- Upgrade node-fetch. Expectation that it will be able to be dropped altogether in Node v22.
- Upgrade babel plugins to use official version from proposal
- Export datasource path utils for use in project space -
getJsonPath
,getFlatGeobufPath
,getGeopackagePath
- Refactor translation scripts -
importTerms
,publishTerms
to use Node fetch API instead ofrequest
library
π Bug Fix
- Add Cloudfront access to client bucket to be able to access client files in directories.
- Update
translation:install
to be more comprehensive in installing/overwriting i18n files in project space. - Remove all use of
@seasketch/geoprocessing
in client code, notably projectsClient.ts. This was causing node modules to be included in client builds by Vite, which is more strict/less magic than webpack. It is critical that report clients never import from@seasketch/geoprocessing
directly but rather use@seasketch/geoprocessing/client-core
and@seasketch/geoprocessing/client-ui
π Internal
- Migrate test suites to use Vitest instead of Jest. Use test filename structure to determine whether
unit
tests,e2e
,browser
ornode
. Jest group directives in test file comments are no longer used. - A new top-level report component, ReportApp.tsx, is now generated in the .build-web directory when running
npm run build
andnpm run build:client
. It is responsible for dynamic importing of report clients and language locale files. - Switch to
tsx
fromts-node
for directly executing Typescript scripts. Better support for ESM structure/runting out of the box. - Migrate use of __dirname to import.meta.dirname as required by ESM and supported by latest Node 20 version.
- Add type assertions to JSON file imports.
- Refactor
buildClient
to use esbuild instead of Webpack. - Refactor
build
to use Vite instead of Webpack.
π Documentation
- Changelog file is no longer maintained, opting to use Github release notes to convey changes.
- Printing support. See Extending page.
Full Changelog: v6.1.2...v7.0.0-beta.0
v6.1.2
v6.1.0
v6.1.0 (2023/12/29)
See v6 to v6.1 migration guide
This release focuses on raster improvements including a switch to a global equal area projection for raster analysis, and support for calculating raster area
overlap and 10 others in addition to the existing sum
metric. See the full list on the Concepts page.
Precalc now calculates 4 metrics for every datasource and geography combination: count
, valid
, sum
, and area
.
π New Feature / Improvement
- Use equal area projection EPSG:6933 for rasters internally, reprojecting on import.
- Add
getRasterBoxSpherical()
function providing bounding box of equal area raster in lat/lon coordinates. - Add
toRasterProjection()
function that reprojects a feature (such as a Sketch or a Geography polygon) to the projection of the raster. - Add high-level
overlapRasterArea()
andoverlapRasterSum()
toolbox functions - Add high-level
rasterMetrics()
toolbox function that usesrasterStats()
function and converts to metric objects. - Add low-level
getArea()
andgetSum()
toolbox functions - Add low-level
rasterStats()
toolbox function with access to 12 raster stats includingarea()
calculation. Returns metrics for all bands with band number in the class ID. - Add low-level
rasterStatsToMetrics()
function for converting from geoblaze stats objects toMetric
objects.
ποΈ Deprecated code
- overlapRaster - replaced with
rasterMetrics
which is multi-band capable - overlapArea - use a Geography with overlapFeatures
- overlapSubarea - use a Geography with overlapFeatures
- flattenSketchAllId - unused
- toShortSketches - unused
- getSketchCollectionChildIds - unused
π Bug Fix
π Internal
- Upgrade to geoblaze 2.6 which adds performance improvements in all use cases
- Migrate template-blank-project raster function to use
rasterStats()
- Add Proj.4 wrapper that loads EPSG:6933 projection.
v6.0.0
v6.0.0 (2023-12-14)
π₯ Breaking Changes
explodeMulti
property is now explicitly required for internal datasources in your projects datasources.json. Whentrue
(default), all multipolygons are broken up into polygons, with properties persisted. This reduces the number of polygons to be fetched when you just need the features within the bounding box of your sketch. When set tofalse
, it will usePROMOTE_TO_MULTI
option to make everything a multipolygon. So an imported datasources will never be a mixture of polygons and multipolygons. This is required by the flatgeobuf driver, among others.
π New Feature / Improvement
- Split vector datasources on import using ogr2ogr wrapdateline option.
- Increase raster import performance - add lzw compression, multithreaded, and increase cache size.
- Drop creation of extra xml metadata file on raster import.
- Add
splitSketchAntimeridian
andsplitFeatureAntimeridian
functions to split polygons crossing 180 degree antimeridian into multipolygon pieces on either side of it. - Add
cleanCoords
function to adjust Polygon coordinates within -180 to 180 degrees prior to splitting. - Refactor code generated by
create:function
to include geography and antimeridian handling, as well as demonstrating fetching data from global vector and raster datasources. - Refactor code generated by
create:client
to include a more robust top-level report withTranslator
, and a lower-level card component. Allow the user to specify the name of the geoprocessing function that gets called. - Add BioOracle and TNC Marine Ecosystems of the World global datasources to default.
π Bug Fix
- Fix
create:client
andcreate:function
CLI commands. - overlapFeatures - fix bug when multipolygon both params, clarify precalc question on data import
π Internal
- Reproject multi_class_variability test dataset to proper 4326
- Upgradee to Geoblaze 2.5.0 with better support for antimeridian use cases.
- Upgrade to Georaster 1.6.0
- Refactor template-blank-project and template-ocean-eez functions and clients to support antimeridian.
π Documentation
- Add antimeridian sections to Concepts page
- Rewrite Tutorials for creating a geoprocessing function and report client.