Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixes revapi configuration for merging #8936

Merged
merged 1 commit into from
Mar 21, 2022
Merged

Fixes revapi configuration for merging #8936

merged 1 commit into from
Mar 21, 2022

Conversation

npepinpe
Copy link
Member

@npepinpe npepinpe commented Mar 20, 2022

Description

Fixes revapi configuration to allow merging configurations together. This will let us leverage the CI support for ignored-changes.json files, which are for temporary breaking changes which should be removed from the revapi configuration once a new version is released.

Essentially, you can split extension blocks across multiple files, but the extension within the same pipeline must have the exact same ID. When they have the same ID, they will be merged. Revapi doesn't do complex merging, the merging is purely additive: this means scalar properties (e.g. boolean, string, int, etc.) will fail when specified multiple times. Collections are merged, however, so two arrays will be concatenated.

We chose to use the extension name without the revapi. prefix, simply because it's shorter while remaining descriptive. This means all extensions share the same ID, and adding a new ignored-changes.json will also require one to do the same. I've updated the wiki as well to explain this.

This will be necessary for #8837 since we will want to add some "breaking" changes (though they aren't ABI breaking).

Related issues

related to #8837

Definition of Done

Not all items need to be done depending on the issue and the pull request.

Code changes:

  • The changes are backwards compatibility with previous versions
  • If it fixes a bug then PRs are created to backport the fix to the last two minor versions. You can trigger a backport by assigning labels (e.g. backport stable/1.3) to the PR, in case that fails you need to create backports manually.

Testing:

  • There are unit/integration tests that verify all acceptance criterias of the issue
  • New tests are written to ensure backwards compatibility with further versions
  • The behavior is tested manually
  • The change has been verified by a QA run
  • The impact of the changes is verified by a benchmark

Documentation:

  • The documentation is updated (e.g. BPMN reference, configuration, examples, get-started guides, etc.)
  • New content is added to the release announcement
  • If the PR changes how BPMN processes are validated (e.g. support new BPMN element) then the Camunda modeling team should be informed to adjust the BPMN linting.

Copy link
Member

@korthout korthout left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍

🔧 Please refer to the wiki in the PR description.

bpmn-model/revapi.json Show resolved Hide resolved
Fixes revapi configuration to allow merging configurations together.
This will let us leverage the CI support for `ignored-changes.json`
files, which are for temporary breaking changes which should be removed
from the revapi configuration once a new version is released.

Essentially, you can split extension blocks across multiple files, but
the extension within the same pipeline must have the exact same ID. When
they have the same ID, they will be merged. Revapi doesn't do complex merging,
the merging is purely additive: this means scalar properties (e.g. boolean,
string, int, etc.) will fail when specified multiple times. Collections are
merged, however, so two arrays will be concatenated.

We chose to use the extension name without the `revapi.` prefix, simply
because it's shorter than the extension name while still remaining
descriptive.
@npepinpe
Copy link
Member Author

bors merge

ghost pushed a commit that referenced this pull request Mar 21, 2022
8936: Fixes revapi configuration for merging r=npepinpe a=npepinpe

## Description

Fixes revapi configuration to allow merging configurations together. This will let us leverage the CI support for `ignored-changes.json` files, which are for temporary breaking changes which should be removed from the revapi configuration once a new version is released.

Essentially, you can split extension blocks across multiple files, but the extension within the same pipeline must have the exact same ID. When they have the same ID, they will be merged. Revapi doesn't do complex merging, the merging is purely additive: this means scalar properties (e.g. boolean, string, int, etc.) will fail when specified multiple times. Collections are merged, however, so two arrays will be concatenated.

We chose to use the extension name without the `revapi.` prefix, simply because it's shorter while remaining descriptive. This means all extensions share the same ID, and adding a new `ignored-changes.json` will also require one to do the same. I've updated [the wiki](https://github.com/camunda-cloud/zeebe/wiki/Breaking-Changes) as well to explain this.

This will be necessary for #8837 since we will want to add some "breaking" changes (though they aren't ABI breaking).

## Related issues

related to #8837



Co-authored-by: Nicolas Pepin-Perreault <nicolas.pepin-perreault@camunda.com>
@ghost
Copy link

ghost commented Mar 21, 2022

Build failed:

@npepinpe
Copy link
Member Author

bors r+

ghost pushed a commit that referenced this pull request Mar 21, 2022
8936: Fixes revapi configuration for merging r=npepinpe a=npepinpe

## Description

Fixes revapi configuration to allow merging configurations together. This will let us leverage the CI support for `ignored-changes.json` files, which are for temporary breaking changes which should be removed from the revapi configuration once a new version is released.

Essentially, you can split extension blocks across multiple files, but the extension within the same pipeline must have the exact same ID. When they have the same ID, they will be merged. Revapi doesn't do complex merging, the merging is purely additive: this means scalar properties (e.g. boolean, string, int, etc.) will fail when specified multiple times. Collections are merged, however, so two arrays will be concatenated.

We chose to use the extension name without the `revapi.` prefix, simply because it's shorter while remaining descriptive. This means all extensions share the same ID, and adding a new `ignored-changes.json` will also require one to do the same. I've updated [the wiki](https://github.com/camunda-cloud/zeebe/wiki/Breaking-Changes) as well to explain this.

This will be necessary for #8837 since we will want to add some "breaking" changes (though they aren't ABI breaking).

## Related issues

related to #8837



Co-authored-by: Nicolas Pepin-Perreault <nicolas.pepin-perreault@camunda.com>
@ghost
Copy link

ghost commented Mar 21, 2022

Build failed:

@npepinpe
Copy link
Member Author

bors r+ 😄

ghost pushed a commit that referenced this pull request Mar 21, 2022
8936: Fixes revapi configuration for merging r=npepinpe a=npepinpe

## Description

Fixes revapi configuration to allow merging configurations together. This will let us leverage the CI support for `ignored-changes.json` files, which are for temporary breaking changes which should be removed from the revapi configuration once a new version is released.

Essentially, you can split extension blocks across multiple files, but the extension within the same pipeline must have the exact same ID. When they have the same ID, they will be merged. Revapi doesn't do complex merging, the merging is purely additive: this means scalar properties (e.g. boolean, string, int, etc.) will fail when specified multiple times. Collections are merged, however, so two arrays will be concatenated.

We chose to use the extension name without the `revapi.` prefix, simply because it's shorter while remaining descriptive. This means all extensions share the same ID, and adding a new `ignored-changes.json` will also require one to do the same. I've updated [the wiki](https://github.com/camunda-cloud/zeebe/wiki/Breaking-Changes) as well to explain this.

This will be necessary for #8837 since we will want to add some "breaking" changes (though they aren't ABI breaking).

## Related issues

related to #8837



Co-authored-by: Nicolas Pepin-Perreault <nicolas.pepin-perreault@camunda.com>
@ghost
Copy link

ghost commented Mar 21, 2022

Build failed:

@npepinpe
Copy link
Member Author

bors r+

ghost pushed a commit that referenced this pull request Mar 21, 2022
8936: Fixes revapi configuration for merging r=npepinpe a=npepinpe

## Description

Fixes revapi configuration to allow merging configurations together. This will let us leverage the CI support for `ignored-changes.json` files, which are for temporary breaking changes which should be removed from the revapi configuration once a new version is released.

Essentially, you can split extension blocks across multiple files, but the extension within the same pipeline must have the exact same ID. When they have the same ID, they will be merged. Revapi doesn't do complex merging, the merging is purely additive: this means scalar properties (e.g. boolean, string, int, etc.) will fail when specified multiple times. Collections are merged, however, so two arrays will be concatenated.

We chose to use the extension name without the `revapi.` prefix, simply because it's shorter while remaining descriptive. This means all extensions share the same ID, and adding a new `ignored-changes.json` will also require one to do the same. I've updated [the wiki](https://github.com/camunda-cloud/zeebe/wiki/Breaking-Changes) as well to explain this.

This will be necessary for #8837 since we will want to add some "breaking" changes (though they aren't ABI breaking).

## Related issues

related to #8837



Co-authored-by: Nicolas Pepin-Perreault <nicolas.pepin-perreault@camunda.com>
@ghost
Copy link

ghost commented Mar 21, 2022

Build failed:

@npepinpe
Copy link
Member Author

bors r+

3 builds, 3 different failures 💪

ghost pushed a commit that referenced this pull request Mar 21, 2022
8936: Fixes revapi configuration for merging r=npepinpe a=npepinpe

## Description

Fixes revapi configuration to allow merging configurations together. This will let us leverage the CI support for `ignored-changes.json` files, which are for temporary breaking changes which should be removed from the revapi configuration once a new version is released.

Essentially, you can split extension blocks across multiple files, but the extension within the same pipeline must have the exact same ID. When they have the same ID, they will be merged. Revapi doesn't do complex merging, the merging is purely additive: this means scalar properties (e.g. boolean, string, int, etc.) will fail when specified multiple times. Collections are merged, however, so two arrays will be concatenated.

We chose to use the extension name without the `revapi.` prefix, simply because it's shorter while remaining descriptive. This means all extensions share the same ID, and adding a new `ignored-changes.json` will also require one to do the same. I've updated [the wiki](https://github.com/camunda-cloud/zeebe/wiki/Breaking-Changes) as well to explain this.

This will be necessary for #8837 since we will want to add some "breaking" changes (though they aren't ABI breaking).

## Related issues

related to #8837



Co-authored-by: Nicolas Pepin-Perreault <nicolas.pepin-perreault@camunda.com>
@ghost
Copy link

ghost commented Mar 21, 2022

Build failed:

@npepinpe
Copy link
Member Author

Beautiful 👌

Once bors finishes it's current PR, and if nothing is happening, then I'll just merge it.

@npepinpe npepinpe merged commit 8801911 into main Mar 21, 2022
@npepinpe npepinpe deleted the 8837-multi-revapi branch March 21, 2022 14:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants