Skip to content

Commit 60fb5e2

Browse files
authored
Merge pull request #262 from Open-EO/draft
Release openEO processes v1.1.0
2 parents 75059c6 + f70a550 commit 60fb5e2

File tree

116 files changed

+2432
-717
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

116 files changed

+2432
-717
lines changed

.github/workflows/docs.yml

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: Deploy Documentation
2+
on:
3+
release:
4+
types: [published]
5+
push:
6+
branches:
7+
- draft
8+
- master
9+
jobs:
10+
deploy:
11+
runs-on: ubuntu-latest
12+
strategy:
13+
matrix:
14+
node-version: [14.x]
15+
steps:
16+
- name: Inject env variables
17+
uses: rlespinasse/github-slug-action@v3.x
18+
- uses: actions/setup-node@v1
19+
- uses: actions/checkout@v2
20+
- run: |
21+
npm install
22+
npm run generate
23+
working-directory: tests
24+
- name: clone gh-pages and clean-up
25+
if: ${{ env.GITHUB_REF_SLUG == 'master' }}
26+
run: |
27+
git clone --branch gh-pages https://github.com/Open-EO/openeo-processes.git gh-pages
28+
find gh-pages -maxdepth 1 -type f -delete
29+
rm -rf gh-pages/examples/
30+
rm -rf gh-pages/meta/
31+
rm -rf gh-pages/proposals/
32+
- name: create empty gh-pages folder
33+
if: ${{ env.GITHUB_REF_SLUG != 'master' }}
34+
run: mkdir gh-pages
35+
- run: |
36+
cp tests/docs.html index.html
37+
cp tests/processes.json processes.json
38+
rsync -vrm --include='*.json' --include='*.html' --include='examples/***' --include='meta/***' --include='proposals/***' --exclude='*' . gh-pages
39+
- name: deploy to root (master)
40+
uses: peaceiris/actions-gh-pages@v3
41+
if: ${{ env.GITHUB_REF_SLUG == 'master' }}
42+
with:
43+
github_token: ${{ secrets.GITHUB_TOKEN }}
44+
publish_dir: gh-pages
45+
user_name: 'openEO CI'
46+
user_email: openeo.ci@uni-muenster.de
47+
- name: deploy to ${{ env.GITHUB_REF_SLUG }}
48+
uses: peaceiris/actions-gh-pages@v3
49+
if: ${{ env.GITHUB_REF_SLUG != 'master' }}
50+
with:
51+
github_token: ${{ secrets.GITHUB_TOKEN }}
52+
publish_dir: gh-pages
53+
destination_dir: ${{ env.GITHUB_REF_SLUG }}
54+
user_name: 'openEO CI'
55+
user_email: openeo.ci@uni-muenster.de

.github/workflows/tests.yml

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
name: Test Processes
2+
on: [push, pull_request]
3+
jobs:
4+
deploy:
5+
runs-on: ubuntu-latest
6+
strategy:
7+
matrix:
8+
node-version: [14.x]
9+
steps:
10+
- uses: actions/setup-node@v1
11+
- uses: actions/checkout@v2
12+
- name: Run tests
13+
run: |
14+
npm install
15+
npm run test
16+
working-directory: tests

.travis.yml

-60
This file was deleted.

CHANGELOG.md

+75-5
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,68 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
66

77
## Unreleased / Draft
88

9+
## [1.1.0] - 2021-06-29
910

10-
## 1.0.0 - 2020-07-31
11+
### Added
12+
- New processes in proposal state
13+
- `array_append`
14+
- `array_concat`
15+
- `array_create`
16+
- `array_create_labeled`
17+
- `array_find_label`
18+
- `array_interpolate_linear` [#173](https://github.com/Open-EO/openeo-processes/issues/173)
19+
- `array_modify`
20+
- `date_shift`
21+
- `is_infinite`
22+
- `nan`
23+
- `reduce_spatial`
24+
- Added return value details (property `returns`) for the schemas with the subtype `process-graph`. [API#350](https://github.com/Open-EO/openeo-api/issues/350)
25+
- `apply_neighborhood`: Clarify behavior for data cubes returned by the child processes and for that add the exception `DataCubePropertiesImmutable`.
26+
- Added a guide for implementors that describes numerours implementation details for processes that could not be covered in the specifications itself, for example a recommended implementation for the `if` process. [#246](https://github.com/Open-EO/openeo-processes/issues/246)
27+
28+
### Changed
29+
- Added `proposals` folder for experimental processes. Experimental processes are not covered by the CHANGELOG and MAY include breaking changes! [#196](https://github.com/Open-EO/openeo-processes/issues/196), [#207](https://github.com/Open-EO/openeo-processes/issues/207), [PSC#8](https://github.com/Open-EO/PSC/issues/8)
30+
- Moved the experimental process `run_udf_externally` to the proposals.
31+
- Moved the rarely used and implemented processes `cummax`, `cummin`, `cumproduct`, `cumsum`, `debug`, `filter_labels`, `load_result`, `load_uploaded_files`, `resample_cube_temporal` to the proposals.
32+
- Exception messages have been aligned always use ` instead of '. Tooling could render it with CommonMark.
33+
- `load_collection` and `mask_polygon`: Also support multi polygons instead of just polygons. [#237](https://github.com/Open-EO/openeo-processes/issues/237)
34+
- `run_udf` and `run_udf_externally`: Specify specific (extensible) protocols for UDF URIs.
35+
- `resample_cube_spatial` and `resample_spatial`: Aligned with GDAL and added `rms` and `sum` options to methods. Also added better descriptions.
36+
- `resample_cube_temporal`: Process has been simplified and only offers the nearest neighbor method now. The `process` parameter has been removed, the `dimension` parameter was made less restrictive, the parameter `valid_within` was added. [#194](https://github.com/Open-EO/openeo-processes/issues/194)
37+
38+
### Deprecated
39+
- `GeometryCollection`s are discouraged in all relevant processes.
40+
41+
### Removed
42+
43+
- Removed the experimental processes `aggregate_spatial_binary` and `reduce_dimension_binary`. [#258](https://github.com/Open-EO/openeo-processes/issues/258)
44+
45+
### Fixed
46+
- Clarify that the user workspace is server-side. [#225](https://github.com/Open-EO/openeo-processes/issues/225)
47+
- Clarify that the `condition` parameter for `array_filter` works also on indices and labels.
48+
- Clarify contradicting statements in `filter_temporal` for the default value of the `dimension` parameter. By default *all* temporal dimensions are affected by the process. [#203](https://github.com/Open-EO/openeo-processes/issues/203)
49+
- Clarify how the parameters passed to the overlap resolver correspond to the data cubes. [#184](https://github.com/Open-EO/openeo-processes/issues/184)
50+
- Improve and clarify specifications for `is_nan`, `is_nodata`, `is_valid`. [#189](https://github.com/Open-EO/openeo-processes/issues/189)
51+
- Improve and clarify specifications for `all` and `any`. [#189](https://github.com/Open-EO/openeo-processes/issues/199)
52+
- `array_element`: Clarify that `ArrayNotLabeled` exception is thrown when parameter `label` is specified and the given array is not labeled.
53+
- `array_apply`, `array_element`, `array_filter`: Added the `minimum: 0` constraint to all schemas describing zero-based indices (parameter `index`).
54+
- `array_labels`: Clarified the accepted data type for array elements passed to the parameter `data`.
55+
- `merge_cubes`: Clarified the dimension label order after the merge. [#212](https://github.com/Open-EO/openeo-processes/issues/212)
56+
- `merge_cubes`: Clarified the fourth example. [#266](https://github.com/Open-EO/openeo-processes/issues/266)
57+
- Fixed typos, grammar issues and other spelling-related issues in many of the processes.
58+
- Fixed the examples `array_contains_nodata` and `array_find_nodata`.
59+
- Fixed links to openEO glossary and added links to data cube introduction. [#216](https://github.com/Open-EO/openeo-processes/issues/216)
60+
- Fixed description of `apply_dimension` with regards to reference systems. Made description easier to understand, too. [#234](https://github.com/Open-EO/openeo-processes/issues/234)
61+
- Clarified disallowed characters in subtype `file-path`.
62+
- Clarified that UDF source code must contain a newline/line-break (affects `run_udf`).
63+
- `aggregate_spatial`, `aggregate_spatial_binary`: Clarified that Features, Geometries and GeometryCollections are a single entity in computations. Only FeatureCollections are multiple entities. [#252](https://github.com/Open-EO/openeo-processes/issues/252)
64+
- `aggregate_spatial`: Clarified that the values have no predefined order and reducers such as `first` and `last` return unpredictable results. [#260](https://github.com/Open-EO/openeo-processes/issues/260)
65+
- `load_collection`, parameter `spatial_extent`: Clarified that all pixels that are inside the bounding box of the given polygons but do not intersect with any polygon have to be set to no-data (`null`). [#256](https://github.com/Open-EO/openeo-processes/issues/256)
66+
- `load_collection`: Clarified that the parameters are recommended to be used in favor of `filter_*` processes.
67+
- `aggregate_temporal` and `aggregate_temporal_period`: Clarified that reducers are also executed for intervals/periods with no data. [#263](https://github.com/Open-EO/openeo-processes/issues/263)
68+
- `dimension_labels`: Clarified that the process fails with a `DimensionNotAvailable` exception, if a dimension with the specified name does not exist.
69+
70+
## [1.0.0] - 2020-07-31
1171

1272
### Added
1373
- `subtype-schemas.json`: A list of predefined subtypes is available as JSON Schema; Moved over from openeo-api.
@@ -41,13 +101,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
41101
- `aggregate_temporal`: Fixed outdated message for exception `TooManyDimensions`.
42102
- `clip`: Fixed examples.
43103
- `linear_scale_range`: Clarify that the process implicitly clips the values. [#159](https://github.com/Open-EO/openeo-processes/issues/159)
44-
- `mean`: Clarify behaviour for arrays with `null`-values only.
45-
- `mod`: Clarified behaviour. [#168](https://github.com/Open-EO/openeo-processes/issues/168)
46-
- `resample_*`: Clarified behaviour.
104+
- `mean`: Clarify behavior for arrays with `null`-values only.
105+
- `mod`: Clarified behavior. [#168](https://github.com/Open-EO/openeo-processes/issues/168)
106+
- `resample_*`: Clarified behavior.
47107
- `first`, `last`, `max`, `mean`, `median`, `min`, `sd`, `variance`: Clarify behavior for arrays with `null`-values only.
48108
- Clarified (and fixed if necessary) for all processes in the "cubes" category the descriptions for the returned data cube. [#149](https://github.com/Open-EO/openeo-processes/issues/149)
49109

50-
## 1.0.0-rc.1 - 2020-01-31
110+
## [1.0.0-rc.1] - 2020-01-31
51111

52112
### Added
53113
- Processes:
@@ -159,3 +219,13 @@ First version which is separated from the openEO API. Complete rework of all pro
159219

160220
## Legacy versions
161221
Older versions of the processes were released as part of the openEO API, see the corresponding changelog for more information.
222+
223+
224+
[Unreleased]: <https://github.com/Open-EO/openeo-processes/compare/1.1.0...HEAD>
225+
[1.1.0]: <https://github.com/Open-EO/openeo-processes/compare/1.0.0...1.1.0>
226+
[1.0.0]: <https://github.com/Open-EO/openeo-processes/compare/1.0.0-rc.1...1.0.0>
227+
[1.0.0-rc.1]: <https://github.com/Open-EO/openeo-processes/compare/0.4.2...1.0.0-rc.1>
228+
[0.4.2]: <https://github.com/Open-EO/openeo-processes/compare/0.4.1...0.4.2>
229+
[0.4.1]: <https://github.com/Open-EO/openeo-processes/compare/0.4.0...0.4.1>
230+
[0.4.0]: <https://github.com/Open-EO/openeo-processes/tree/0.4.0>
231+

README.md

+18-4
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,15 @@ openEO develops interoperable processes for big Earth observation cloud processi
66

77
## Versions / Branches
88

9-
The [master branch](https://github.com/Open-EO/openeo-processes/tree/master) is the 'stable' version of the openEO processes specification. The latest release is version **1.0.0**. The [draft branch](https://github.com/Open-EO/openeo-processes/tree/draft) is where active development takes place.
9+
The [master branch](https://github.com/Open-EO/openeo-processes/tree/master) is the 'stable' version of the openEO processes specification. An exception is the [`proposals`](proposals/) folder, which provides experimental new processes currently under discussion. They may still change, but everyone is encouraged to implement them and give feedback.
10+
11+
The latest release is version **1.1.0**. The [draft branch](https://github.com/Open-EO/openeo-processes/tree/draft) is where active development takes place. PRs should be made against the draft branch.
1012

1113
| Version / Branch | Status | openEO API versions |
1214
| ------------------------------------------------------------ | ------------------------- | ------------------- |
1315
| [unreleased / draft](https://processes.openeo.org/draft) | in development | 1.x.x |
14-
| [**1.0.0** / master](https://processes.openeo.org/1.0.0/) | **latest stable version** | 1.x.x |
16+
| [**1.1.0** / master](https://processes.openeo.org/1.1.0/) | **latest stable version** | 1.x.x |
17+
| [1.0.0](https://processes.openeo.org/1.0.0/) | legacy version | 1.x.x |
1518
| [1.0.0 RC1](https://processes.openeo.org/1.0.0-rc.1/) | legacy version | 1.x.x |
1619
| [0.4.2](https://processes.openeo.org/0.4.2/) | legacy version | 0.4.x |
1720
| [0.4.1](https://processes.openeo.org/0.4.1/) | legacy version | 0.4.x |
@@ -25,7 +28,18 @@ See also the [changelog](CHANGELOG.md) for the changes between versions and the
2528

2629
This repository contains a set of files formally describing the openEO Processes:
2730

28-
* The `*.json` files provide the process specifications as defined by the openEO API.
31+
* The `*.json` files provide stable process specifications as defined by openEO. Stable processes need at least two implementations and a use-case example added to the [`examples`](examples/) folder *or* consensus from the openEO PSC.
32+
* The `*.json` files in the [`proposals`](proposals/) folder provide proposed new process specifications that are still experimental and subject to change, including breaking changes. Everyone is encouraged to base their work on the proposals and give feedback so that eventually the processes evolve into stable process specifications.
33+
* [implementation.md](meta/implementation.md) in the `meta` folder provide some additional implementation details for back-ends. For back-end implementors, it's highly recommended to read them.
2934
* [subtype-schemas.json](meta/subtype-schemas.json) in the `meta` folder defines common data types (`subtype`s) for JSON Schema used in openEO processes.
3035
* The [`examples`](examples/) folder contains some useful examples that the processes link to. All of these are non-binding additions.
31-
* The [`tests`](tests/) folder can be used to test the process specification for validity and and consistent "style". It also allows to render the processes in a web browser.
36+
* The [`tests`](tests/) folder can be used to test the process specification for validity and consistent "style". It also allows rendering the processes in a web browser.
37+
38+
39+
## Process
40+
41+
* All new processes must be added to the [`proposals`](proposals/) folder.
42+
* Processes will only be moved from proposals to the stable process specifications once there are at least two implementations and an example process in the [`examples`](examples/) folder showing it in a use case. This doesn't require a PSC vote individually as it's not a breaking change, just an addition.
43+
* The [`proposals`](proposals/) folder allows breaking changes without a PSC vote and without increasing the major version number (i.e. a breaking change in the proposals doesn't require us to make the next version number 2.0.0).
44+
* The proposals are released as experimental processes with the other processes.
45+
* Each release and all breaking changes in the stable process specifications must go through PSC vote.

add.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"id": "add",
33
"summary": "Addition of two numbers",
4-
"description": "Sums up the two numbers `x` and `y` (*x + y*) and returns the computed sum.\n\nNo-data values are taken into account so that `null` is returned if any element is such a value.\n\nThe computations follow [IEEE Standard 754](https://ieeexplore.ieee.org/document/8766229) whenever the processing environment supports it.",
4+
"description": "Sums up the two numbers `x` and `y` (*`x + y`*) and returns the computed sum.\n\nNo-data values are taken into account so that `null` is returned if any element is such a value.\n\nThe computations follow [IEEE Standard 754](https://ieeexplore.ieee.org/document/8766229) whenever the processing environment supports it.",
55
"categories": [
66
"math"
77
],

add_dimension.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"id": "add_dimension",
33
"summary": "Add a new dimension",
4-
"description": "Adds a new named dimension to the data cube.\n\nAfterwards, the dimension can be referenced with the specified `name`. If a dimension with the specified name exists, the process fails with a `DimensionExists` error. The dimension label of the dimension is set to the specified `label`.",
4+
"description": "Adds a new named dimension to the data cube.\n\nAfterwards, the dimension can be referred to with the specified `name`. If a dimension with the specified name exists, the process fails with a `DimensionExists` exception. The dimension label of the dimension is set to the specified `label`.",
55
"categories": [
66
"cubes"
77
],

0 commit comments

Comments
 (0)