Skip to content

Releases: seasketch/geoprocessing

v7.0.0-beta.9

11 Oct 22:32
Compare
Choose a tag to compare
v7.0.0-beta.9 Pre-release
Pre-release

What's Changed

When you npm run upgrade

  • you can expect a lot of changes to installed code due to use of the eslint unicorn plugin internally in the geoprocessing library.
  • Project languages are now defined in project/basic.json and the English language code EN will have been added. If there are additional languages that your project offers translation, then manually add their language codes. You'll find the master list in src/i18n/languages.json.
    This will configure the translation publish and import commands to work with these languages. Some old i18n files such as src/i18n/supported.ts will be deleted, with the addition of src/i18n/languages.ts.

πŸ’₯ Breaking Changes

  • Allow user to limit project i18n languages, change watch to build:watch by @twelch in
  • Some CLI commands have been renamed. watch is now build:watch, clear-all-results has been removed, and clear-results is now clear:results and you can enter the option to delete all cached results. This has the benefit of limiting accidental deletes of the full cache, you have to specifically state you want to delete all.

πŸš€ New Feature / Improvement
#356

  • Add eslint unicorn plugin with fixes by @twelch in #355
  • Add Brazilian Portuguese to supported languages by @avmey in #354
  • upgrade: remove old translation scripts by @twelch in #360

πŸ› Bug Fix

  • init: fix setting package version, gpVersion override by @twelch in #359

Full Changelog: v7.0.0-beta.8...v7.0.0-beta.9

v7.0.0-beta.8

25 Sep 18:59
Compare
Choose a tag to compare
v7.0.0-beta.8 Pre-release
Pre-release

What's Changed

Running upgrade on your project will:

  • Install and configure Prettier along with a new lint-staged command. If you are using VSCode you should already have the Prettier extension installed but this addition makes formatting rules consistent across developer machines and will auto-format all staged files on commit if not already.

πŸ’₯ Breaking Changes

  • Separate worker stacks and lock functions to one stack solving thrashing issue causing Duplicate resource error on deploy by @twelch in #353
  • Require explicit registration of worker functions, fix CDK circular dependency error by @twelch in #352

To register workers used by a geoprocessing function, simply pass a workers option to your GeoprocessingHandler with a list of the worker titles.

export default new GeoprocessingHandler(kelpPersist, {
  title: "boundaryOverlap",
  description: "boundary overlap",
  executionMode: "async",
  workers: ['boundaryOverlapWorker']
});

The architecture has changed from beta.7 for nested LambdaStacks. Worker functions are now deployed to separate stacks than non-workers. This should allow multiple geoprocessing functions to register and use the same worker without issue.

Upgrade will require destroying your deployed project first. Steps in order include:

  • npm run upgrade
  • npm run destroy
  • npm run build && npm run deploy
  • npm run publish:data

πŸš€ New Feature / Improvement

  • Support childProperties for SketchCollection by @twelch in #341

πŸ› Bug Fix

  • npm run url command now properly outputs all service URLs and bucket names used by the project for easy reference.
  • Fix clear-all-results command. Add retry to dynamodb bulk delete resolving ThroughputError, break out helper functions by @twelch in #344

🏠 Internal

  • Disable task cache for worker lambdas by default, improve logging by @twelch in #342
  • Add support for ESLint and Prettier by @twelch in #348

Full Changelog: v7.0.0-beta.7...v7.0.0-beta.8

v7.0.0-beta.7

03 Sep 21:01
Compare
Choose a tag to compare
v7.0.0-beta.7 Pre-release
Pre-release

What's Changed

πŸ’₯ Breaking Changes

  • Switch tasks class to storing dynamodb results as JSON string chunks, drop correlationId and peerDependencies by @twelch in #330 and #336

A new algorithm is used for storing function results in DynamoDB that works regardless of the structure of your JSON. After deploy, you will need to clear your existing cache by running npm run clear-all-results

There are no longer devDependencies installed for a project whether using init or upgrade. On your next upgrade, all dependencies will be added as dependencies and you will need to manually remove them from devDependencies because upgrade does not handle deletion.

πŸš€ New Feature / Improvement

  • Migrate to aws-sdk v3 by @twelch in #321
  • Add runLambdaWorker helper for invoking sync worker functions by @avmey in #326

πŸ› Bug Fix

  • Generate clipped bounding boxes when using clipToGeography by @avmey in #325
  • Fix task caching and improved logging by @twelch in #336

🏠 Internal

  • update dependencies by @twelch in #304 and #324
  • Add additional logging to GeoprocessingHandler to be able to assess functions are working as expected.

Full Changelog: v7.0.0-beta.6...v7.0.0-beta.7

v7.0.0-beta.6

26 Jul 18:17
Compare
Choose a tag to compare
v7.0.0-beta.6 Pre-release
Pre-release

What's Changed

πŸ’₯ Breaking Changes

  • Migrate lambdas to NestedStack to avoid cdk 500 resource limit. Scales to add more stacks as needed automatically by @twelch in #309 and #314. The breaking change is that due to fixed logical ID's being used for each lambda function, a duplicate ID error will result when redeploying an existing project and CDK tries to create a function in a nested LambdaStack that already exists in the root stack. It doesn't appear to take care of the deletion first. Until a solution can be found, you will need to completely destroy and redeploy your project.

See Migrating guide for more information.

πŸš€ New Feature / Improvement

  • Overcome dynamoDB 400KB item size limit by splitting metric results across one or more additional metricGroup DB items in a way that auto-scales @twelch in #313

πŸ› Bug Fix

  • Fix template path bug on new project init by @twelch in #308
  • Handle no-overlap for categorical rasters, creating proper zero metrics by @avmey in #315
  • bug: task metricGroup results not saved when just one group by @twelch in #319

🏠 Internal

  • Add node 22 to CI tests in prep for future use by @twelch in #305
  • End-to-end test of project build + CDK synth for a variety of scenarios by @twelch in #314

Full Changelog: v7.0.0-beta.5...v7.0.0-beta.6

v7.0.0-beta.5

26 Jun 01:49
Compare
Choose a tag to compare
v7.0.0-beta.5 Pre-release
Pre-release

πŸ’₯ 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 in src/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

12 Jun 18:03
Compare
Choose a tag to compare
v7.0.0-beta.4 Pre-release
Pre-release

πŸ’₯ 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

31 May 20:54
Compare
Choose a tag to compare
v7.0.0-beta.3 Pre-release
Pre-release

πŸ› Bug Fix

  • Fix storybook:install script.
  • Fix translation:install command so that it doesn't wipe out project i18n configuration and remove translation install from translation: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

29 May 01:28
Compare
Choose a tag to compare
v7.0.0-beta.2 Pre-release
Pre-release

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

20 May 17:42
Compare
Choose a tag to compare
v7.0.0-beta.1 Pre-release
Pre-release

πŸš€ 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

20 May 16:58
Compare
Choose a tag to compare
v7.0.0-beta.0 Pre-release
Pre-release

πŸ’₯ 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 of npm 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 of request 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 or node. 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 and npm run build:client. It is responsible for dynamic importing of report clients and language locale files.
  • Switch to tsx from ts-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