Skip to content

Commit

Permalink
added release notes and post-release steps for Ditto 2.2.0 release
Browse files Browse the repository at this point in the history
Signed-off-by: Thomas Jaeckle <thomas.jaeckle@bosch.io>
  • Loading branch information
thjaeckle committed Nov 22, 2021
1 parent 689b00c commit b0d7a7b
Show file tree
Hide file tree
Showing 8 changed files with 197 additions and 19 deletions.
4 changes: 2 additions & 2 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ These versions of Eclipse Ditto are currently being supported with security upda

| Version | Supported |
| ------- | ------------------ |
| 2.2.x | :white_check_mark: |
| 2.1.x | :white_check_mark: |
| 2.0.x | :white_check_mark: |
| < 2.0.0 | :x: |
| < 2.1.0 | :x: |

## Reporting a Vulnerability

Expand Down
2 changes: 2 additions & 0 deletions documentation/src/main/resources/_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,8 @@ plugins:
docVersions:
- label: "development"
basePath: ""
- label: "2.2"
basePath: "2.2"
- label: "2.1"
basePath: "2.1"
- label: "2.0"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ entries:
- title: Release Notes
output: web
folderitems:
- title: 2.2.0
url: /release_notes_220.html
output: web
- title: 2.1.2
url: /release_notes_212.html
output: web
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
---
title: "Announcing Eclipse Ditto Release 2.2.0"
published: true
permalink: 2021-11-22-release-announcement-220.html
layout: post
author: thomas_jaeckle
tags: [blog]
hide_sidebar: true
sidebar: false
toc: false
---

The Eclipse Ditto teams announces availability of Eclipse Ditto [2.2.0](https://projects.eclipse.org/projects/iot.ditto/releases/2.2.0).

It features several nice added features and e.g. allows using the dash `-` in the namespace part of thing IDs.

## Adoption

Companies are willing to show their adoption of Eclipse Ditto publicly: [https://iot.eclipse.org/adopters/?#iot.ditto](https://iot.eclipse.org/adopters/?#iot.ditto)

From our various [feedback channels](feedback.html) we however know of more adoption.
If you are making use of Eclipse Ditto, it would be great to show this by adding your company name to that list of
known adopters.
In the end, that's one main way of measuring the success of the project.


## Changelog

The main improvements and additions of Ditto 2.2.0 are:

* Filter for twin life-cycle events like e.g. "thing created" or "feature deleted" via RQL expressions
* Possibility to forward connection logs via fluentd or Fluent Bit to an arbitrary logging system
* Add OAuth2 client credentials flow as an authentication mechanism for Ditto managed HTTP connections
* Enable loading additional extra JavaScript libraries for Rhino based JS mapping engine
* Allow using the dash `-` as part of the "namespace" part in Ditto thing and policy IDs

The following notable fixes are included:

* Policy enforcement for event publishing was fixed
* Search updater cache inconsistencies were fixed
* Fixed diff computation in search index on nested arrays

The following non-functional work is also included:

* Collect Apache Kafka consumer metrics and expose them to Prometheus endpoint

Please have a look at the [2.2.0 release notes](release_notes_220.html) for a more detailed information on the release.


## Artifacts

The new Java artifacts have been published at the [Eclipse Maven repository](https://repo.eclipse.org/content/repositories/ditto/)
as well as [Maven central](https://repo1.maven.org/maven2/org/eclipse/ditto/).

The Ditto JavaScript client release was published on [npmjs.com](https://www.npmjs.com/~eclipse_ditto):
* [@eclipse-ditto/ditto-javascript-client-dom](https://www.npmjs.com/package/@eclipse-ditto/ditto-javascript-client-dom)
* [@eclipse-ditto/ditto-javascript-client-node](https://www.npmjs.com/package/@eclipse-ditto/ditto-javascript-client-node)


The Docker images have been pushed to Docker Hub:
* [eclipse/ditto-policies](https://hub.docker.com/r/eclipse/ditto-policies/)
* [eclipse/ditto-things](https://hub.docker.com/r/eclipse/ditto-things/)
* [eclipse/ditto-things-search](https://hub.docker.com/r/eclipse/ditto-things-search/)
* [eclipse/ditto-gateway](https://hub.docker.com/r/eclipse/ditto-gateway/)
* [eclipse/ditto-connectivity](https://hub.docker.com/r/eclipse/ditto-connectivity/)
* [eclipse/ditto-concierge](https://hub.docker.com/r/eclipse/ditto-concierge/)

<br/>
<br/>
{% include image.html file="ditto.svg" alt="Ditto" max-width=500 %}
--<br/>
The Eclipse Ditto team
117 changes: 117 additions & 0 deletions documentation/src/main/resources/pages/ditto/release_notes_220.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
---
title: Release notes 2.2.0
tags: [release_notes]
published: true
keywords: release notes, announcements, changelog
summary: "Version 2.2.0 of Eclipse Ditto, released on 22.11.2021"
permalink: release_notes_220.html
---

Ditto **2.2.0** is API and [binary compatible](https://github.com/eclipse/ditto/blob/master/documentation/src/main/resources/architecture/DADR-0005-semantic-versioning.md)
to prior Eclipse Ditto 2.x versions.

## Changelog

Eclipse Ditto 2.2.0 includes the following topics/enhancements:

* Filter for twin life-cycle events like e.g. "thing created" or "feature deleted" via RQL expressions
* Possibility to forward connection logs via fluentd or Fluent Bit to an arbitrary logging system
* Add OAuth2 client credentials flow as an authentication mechanism for Ditto managed HTTP connections
* Enable loading additional extra JavaScript libraries for Rhino based JS mapping engine
* Allow using the dash `-` as part of the "namespace" part in Ditto thing and policy IDs

The following notable fixes are included:

* Policy enforcement for event publishing was fixed
* Search updater cache inconsistencies were fixed
* Fixed diff computation in search index on nested arrays

The following non-functional work is also included:

* Collect Apache Kafka consumer metrics and expose them to Prometheus endpoint

<br/>

For a complete list of all merged PRs, inspect the following milestones:
* [merged pull requests for milestone 2.1.0](https://github.com/eclipse/ditto/pulls?q=is:pr+milestone:2.2.0)

<br/>
<br/>

Compared to the latest release [2.1.0](release_notes_210.html), the following most notable changes, new features and
bugfixes were added.

### Changes

#### [Allow using the dash `-` as part of the "namespace" part in Ditto thing and policy IDs](https://github.com/eclipse/ditto/issues/1231)

A feedback from our community was that the dash `-` should be an allowed character in the
[namespace](basic-namespaces-and-names.html#namespace) part of Ditto managed IDs.
As there were no technical reasons to not allow the dash, we agreed and namespaces do now support dashes, e.g. in order
to use the reverse-domain-notation for a package name with domains including dashes.


### New features

#### [Filter for twin life-cycle events](https://github.com/eclipse/ditto/issues/898)

When applying [filtering for change notifications](basic-changenotifications.html#filtering), the existing RQL based
filter was enhanced with the possibility to use [topic and resource placeholders](basic-rql.html#placeholders-as-query-properties)
which enables defining RQL predicates like:

Only emit events for Thing creation and deletion:
```
and(in(topic:action,'created','deleted'),eq(resource:path,'/'))
```

#### [Possibility to forward connection logs](https://github.com/eclipse/ditto/pull/1230)

Configure [log publishing](connectivity-manage-connections.html#publishing-connection-logs)for your Ditto managed
connections in order to get connection logs wherever you need them to analyze.

#### [Add OAuth2 client credentials flow as an authentication mechanism for Ditto managed HTTP connections](https://github.com/eclipse/ditto/pull/1233)

Have a look at our [blog post](2021-11-03-oauth2.html) which shares an example of how to configure a Ditto managed
HTTP connection to make use of OAuth2.0 authentication.

#### [Enable loading additional extra JavaScript libraries for Rhino based JS mapping engine](https://github.com/eclipse/ditto/pull/1208)

The used [Rhino JS engine](https://github.com/mozilla/rhino) allows making use of "CommonJS" in order to load JS
modules via `require('')` into the engine. This feature has now been exposed by Ditto, configuring the environment
variable `CONNECTIVITY_MESSAGE_MAPPING_JS_COMMON_JS_MODULE_PATH` of the connectivity service to a path in the
connectivity Docker container where to load additional CommonJS modules from - e.g. use a volume mount in order to get
additional JS modules into the container.


### Bugfixes

Several bugs in Ditto 2.1.x were fixed for 2.2.0.
This is a complete list of the
[merged pull requests](https://github.com/eclipse/ditto/pulls?q=is%3Apr+milestone%3A2.2.0), including the fixed bugs.


## Migration notes

No migrations required updating from Ditto 2.1.x

## Ditto clients

For a complete list of all merged client PRs, inspect the following milestones:
* [merged pull requests for milestone 2.2.0](https://github.com/eclipse/ditto-clients/pulls?q=is:pr+milestone:2.2.0)

### Ditto Java SDK

No mentionable changes/enhancements/bugfixes.

### Ditto JavaScript SDK

See separate [Changelog](https://github.com/eclipse/ditto-clients/blob/master/javascript/CHANGELOG.md) of JS client.


## Roadmap

Looking forward, the current plans for Ditto 2.3.0 are:

* [Add HTTP API for "live" commands](https://github.com/eclipse/ditto/issues/106)
* [Smart channel strategy for live/twin read access](https://github.com/eclipse/ditto/issues/1228)
* More work on concept and first work on a WoT (Web of Things) integration
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@
<!-- globally set version for checking binary compatibility against -->
<!-- whoever changes this to ${revision} or ${project.version} is responsible for API breakage caused by this! -->
<!-- in other words: never do that here! exclude the 'breakages' locally in the japicmp maven plugin if you intentionally break something -->
<binary-compatibility-check.version>2.1.0</binary-compatibility-check.version>
<binary-compatibility-check.version>2.2.0</binary-compatibility-check.version>

<maven.skins.fluido.version>1.7</maven.skins.fluido.version>
<doxia.markdown.version>1.8</doxia.markdown.version>
Expand Down
9 changes: 0 additions & 9 deletions protocol/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -189,15 +189,6 @@
<excludes>
<!-- Don't add excludes here before checking with the whole Ditto team -->
<!--<exclude></exclude>-->
<!-- the following public toAdaptable() methods were not supposed to be public: -->
<exclude>org.eclipse.ditto.protocol.adapter.DittoProtocolAdapter#toAdaptable(org.eclipse.ditto.things.model.signals.commands.query.RetrieveThings,org.eclipse.ditto.protocol.TopicPath$Channel)</exclude>
<exclude>org.eclipse.ditto.protocol.adapter.DittoProtocolAdapter#toAdaptable(org.eclipse.ditto.things.model.signals.commands.query.RetrieveThingsResponse,org.eclipse.ditto.protocol.TopicPath$Channel)</exclude>
<exclude>org.eclipse.ditto.protocol.adapter.DittoProtocolAdapter#toAdaptable(org.eclipse.ditto.thingsearch.model.signals.commands.ThingSearchCommand,org.eclipse.ditto.protocol.TopicPath$Channel)</exclude>
<exclude>org.eclipse.ditto.protocol.adapter.DittoProtocolAdapter#toAdaptable(org.eclipse.ditto.thingsearch.model.signals.events.SubscriptionEvent,org.eclipse.ditto.protocol.TopicPath$Channel)</exclude>
<!-- by accident this class was public but must not be: -->
<exclude>org.eclipse.ditto.protocol.adapter.things.ThingSearchCommandAdapter</exclude>
<!-- replaced <T> with <T extends Signal<?>> which japicmp sees as incompatible: -->
<exclude>org.eclipse.ditto.protocol.mapper.SignalMapper</exclude>
</excludes>
</parameter>
</configuration>
Expand Down
7 changes: 0 additions & 7 deletions rql/query/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -108,13 +108,6 @@
<excludes>
<!-- Don't add excludes here before checking with the whole Ditto team -->
<!--<exclude></exclude>-->
<!-- those should never have been public, as they are only used package internally and are no API: -->
<exclude>org.eclipse.ditto.rql.query.expression.FieldExpressionUtil#parseFeatureField(java.lang.String)</exclude>
<exclude>org.eclipse.ditto.rql.query.expression.FieldExpressionUtil#isAttributeFieldName(java.lang.String)</exclude>
<exclude>org.eclipse.ditto.rql.query.expression.FieldExpressionUtil#stripAttributesPrefix(java.lang.String)</exclude>
<exclude>org.eclipse.ditto.rql.query.expression.FieldExpressionUtil#addAttributesPrefix(java.lang.String)</exclude>
<exclude>org.eclipse.ditto.rql.query.expression.FieldExpressionUtil#isDefinitionFieldName(java.lang.String)</exclude>
<exclude>org.eclipse.ditto.rql.query.expression.FieldExpressionUtil#isMetadataFieldName(java.lang.String)</exclude>
</excludes>
</parameter>
</configuration>
Expand Down

0 comments on commit b0d7a7b

Please sign in to comment.