Skip to content

Commit 54ca808

Browse files
authored
Merge pull request #223 from eccenca/release/v24.0.0
Release new major version: v24.0.0
2 parents 79996c5 + 04983a7 commit 54ca808

205 files changed

Lines changed: 6266 additions & 5213 deletions

File tree

Some content is hidden

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

.github/dependabot.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
version: 2
2+
updates:
3+
# Maintain dependencies for GitHub Actions
4+
- package-ecosystem: "github-actions"
5+
directory: "/"
6+
schedule:
7+
interval: "monthly"
8+
open-pull-requests-limit: 1 # set 0 to temporarily disable automatic update requests
9+
pull-request-branch-name:
10+
separator: "/"
11+
assignees:
12+
- "haschek"
13+
# Maintain dependencies for npm
14+
- package-ecosystem: "npm"
15+
directory: "/"
16+
schedule:
17+
interval: "monthly"
18+
versioning-strategy: increase
19+
open-pull-requests-limit: 3 # set 0 to temporarily disable automatic update requests
20+
pull-request-branch-name:
21+
separator: "/"
22+
assignees:
23+
- "haschek"

.github/workflows/deployment-storybook.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,20 @@ on:
1919
jobs:
2020
chromatic-deployment:
2121
runs-on: ubuntu-latest
22+
if: ${{ github.actor != 'dependabot[bot]' }}
2223
steps:
23-
- uses: actions/checkout@v3
24+
- uses: actions/checkout@main
2425
with:
2526
fetch-depth: 0
26-
- uses: actions/setup-node@v3
27+
- uses: actions/setup-node@main
2728
with:
28-
node-version: "16"
29+
node-version: "18"
2930
- name: Install dependencies
3031
run: yarn install
3132
- name: Create jest results
3233
run: yarn test:generate-output
3334
- name: Publish to Chromatic
34-
uses: chromaui/action@v1
35+
uses: chromaui/action@v11
3536
with:
3637
token: ${{ secrets.GITHUB_TOKEN }}
3738
projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}

.github/workflows/release-branch.yml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ on:
44
workflow_dispatch:
55
branches:
66
- "develop"
7-
- "feature/prepareReleaseForDM-CMEM-4151" # TODO: only for testing, remove it later
87
inputs:
98
releasetype:
109
description: "Type of release"
@@ -20,10 +19,10 @@ jobs:
2019
runs-on: ubuntu-latest
2120

2221
steps:
23-
- uses: actions/checkout@v3
24-
- uses: actions/setup-node@v3
22+
- uses: actions/checkout@main
23+
- uses: actions/setup-node@main
2524
with:
26-
node-version: "16"
25+
node-version: "18"
2726
- name: Update package.json with new release candidate version
2827
id: create-version
2928
run: |

.github/workflows/release-candidate.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,15 @@ jobs:
3030
echo "You started it on '${{ steps.branch-name.outputs.current_branch }}'."
3131
exit 1
3232
fi
33-
- uses: actions/checkout@v3
33+
- uses: actions/checkout@main
3434
- name: Initialize mandatory git config
3535
# @see https://github.community/t/how-do-i-get-gh-username-based-on-actions-events/17882
3636
run: |
3737
git config user.name "${{ github.actor }}"
3838
git config user.email "${{ github.actor }}@users.noreply.github.com"
39-
- uses: actions/setup-node@v3
39+
- uses: actions/setup-node@main
4040
with:
41-
node-version: "16"
41+
node-version: "18"
4242
- name: Get version
4343
id: package-version
4444
run: echo "version=$(node -p -e "require('./package.json').version")" >> $GITHUB_OUTPUT

.github/workflows/release-final.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ jobs:
1313
sha: ${{ steps.tag-revision.outputs.sha }}
1414

1515
steps:
16-
- uses: actions/checkout@v3
16+
- uses: actions/checkout@main
1717
- name: Initialize mandatory git config
1818
# @see https://github.community/t/how-do-i-get-gh-username-based-on-actions-events/17882
1919
run: |
2020
git config user.name "${{ github.actor }}"
2121
git config user.email "${{ github.actor }}@users.noreply.github.com"
22-
- uses: actions/setup-node@v3
22+
- uses: actions/setup-node@main
2323
with:
24-
node-version: "16"
24+
node-version: "18"
2525
- name: Get version
2626
id: package-version
2727
run: echo "version=$(node -p -e "require('./package.json').version.split('-').shift()")" >> $GITHUB_OUTPUT
@@ -44,7 +44,7 @@ jobs:
4444
runs-on: ubuntu-latest
4545
needs: create-release-version
4646
steps:
47-
- uses: actions/checkout@v3
47+
- uses: actions/checkout@main
4848
with:
4949
ref: develop
5050
- name: Initialize mandatory git config

.github/workflows/release-publish.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@ jobs:
2626
echo ${{ inputs.ref }}
2727
echo ${{ inputs.sha }}
2828
echo ${{ inputs.sectionChangelog }}
29-
- uses: actions/checkout@v3
29+
- uses: actions/checkout@main
3030
with:
3131
fetch-depth: 0
3232
ref: ${{ inputs.ref }}
33-
- uses: actions/setup-node@v3
33+
- uses: actions/setup-node@main
3434
with:
35-
node-version: "16"
35+
node-version: "18"
3636
registry-url: "https://registry.npmjs.org"
3737
- name: Set name vars
3838
id: info-vars
@@ -56,7 +56,7 @@ jobs:
5656
# @see https://github.com/chromaui/chromatic-cli/issues/551
5757
if: inputs.sectionChangelog != 'Unreleased'
5858
id: chromatic-upload
59-
uses: chromaui/action@v1
59+
uses: chromaui/action@v11
6060
with:
6161
token: ${{ secrets.GITHUB_TOKEN }}
6262
projectToken: ${{ secrets.chromaticToken }}

.github/workflows/test-code.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ jobs:
1515
test-code:
1616
runs-on: ubuntu-latest
1717
steps:
18-
- uses: actions/checkout@v3
18+
- uses: actions/checkout@main
1919
- name: Test using Node.js
20-
uses: actions/setup-node@v3
20+
uses: actions/setup-node@main
2121
with:
22-
node-version: "16"
22+
node-version: "18"
2323
- run: yarn install
2424
- run: yarn compile
2525
- run: yarn compile-scss

.github/workflows/test-project.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,29 +5,29 @@ on:
55
branches-ignore:
66
- "develop"
77
- "main"
8+
- "next"
9+
- "legacy"
810
pull_request:
911

1012
jobs:
1113
test-branch-name:
1214
runs-on: ubuntu-latest
1315
steps:
1416
- name: Test branch name
15-
# https://github.com/marketplace/actions/branch-name-rules
16-
uses: deepakputhraya/action-branch-name@master
17+
# https://github.com/marketplace/actions/enforce-branch-name
18+
uses: finleyfamily/action-enforce-branch-name@master
1719
with:
1820
regex: '([a-z])+\/([a-z]).([aA-zZ\.\-\d])+'
19-
allowed_prefixes: "feature,release,fix,bugfix,hotfix,change,temp"
20-
ignore: "main,develop"
21-
min_length: 10
22-
max_length: 100
21+
allowed_prefixes: "feature,release,fix,bugfix,hotfix,change,temp,dependabot"
22+
exclude: "main,develop,next,legacy"
2323
test-documentation:
2424
runs-on: ubuntu-latest
2525
steps:
26-
- uses: actions/checkout@v3
26+
- uses: actions/checkout@main
2727
- name: Test existence of important files
2828
# https://github.com/marketplace/actions/file-existence
2929
id: check_files
30-
uses: andstor/file-existence-action@v2
30+
uses: andstor/file-existence-action@main
3131
with:
3232
files: "package.json, LICENSE, README.md, CHANGELOG.md"
3333
- name: 'Test for "## [Unreleased]" section in changelog'

.storybook/main.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ module.exports = {
1515
},
1616
},
1717
},
18+
"@storybook/addon-webpack5-compiler-babel",
1819
],
1920
framework: {
2021
name: "@storybook/react-webpack5",

CHANGELOG.md

Lines changed: 117 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,118 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
66

77
## [Unreleased]
88

9+
This is a major release, and it might be not compatible with your current usage of our library. Please read about the necessary changes in the section about how to migrate.
10+
11+
### Migration from v23 to v24
12+
13+
- upgrade Typescript to v5
14+
- upgrade Node to at least v18, see **Changed** section for more info about it
15+
- remove deprecated components, properties and imports from your project, if the info cannot be found here then it was already mentioned in **Deprecated** sections of the past changelogs
16+
- `<GridColumn/>`
17+
- `full`: was deprecated and now removed because it always uses full width if it is the only column and does not have any othe size config
18+
- `<Notification/>`
19+
- `fullWidth`: was deprecated and now removed, use `flexWidth` as replacement
20+
- `iconName`: was deprecated and now removed, use `icon` property
21+
- `<Table/>`
22+
- `size`: use only "small", "medium" or "large" as value
23+
- `<Tag/>`
24+
- `emphasized`: was deprecated and now removed, use `minimal=false` plus `emphasis="stronger"` instead
25+
- `IconSized` type: use `CarbonIconType`
26+
- `TimeUnits` type: use `ElapsedDateTimeDisplayUnits`
27+
- `MarkdownParserProps` interface: use `MarkdownProps`
28+
- `elapsedTimeSegmented` function: use `elapsedDateTimeDisplayUtils.elapsedTimeSegmented`
29+
- `simplifiedElapsedTime` function: use `elapsedDateTimeDisplayUtils.simplifiedElapsedTime`
30+
31+
### Added
32+
33+
- `<StringPreviewContentBlobToggler />`:
34+
- `noTogglerContentSuffix`: Allows to add non-string elements at the end of the content if the full description is shown, i.e. no toggler is necessary. This allows to add non-string elements to both the full-view content and the pure string content.
35+
- `<MultiSuggestField />`
36+
- An optional custom search function property has been added, it defines how to filter elements.
37+
- Added a prop `limitHeightOpened` to limit the height of the dropdown by automatically calculating the available height in vh.
38+
- `<FlexibleLayoutContainer />` and `<FlexibleLayoutItem />`
39+
- helper components to create flex layouts for positioning sub elements
40+
- stop misusing `Toolbar*` components to do that (anti pattern)
41+
- `<PropertyValueList />` and `<PropertyValuePair />`
42+
- `singleColumn` property to display label and value below each other
43+
- `<Label />`
44+
- `emphasis` property to control visual appearance of the label text
45+
- basic Storybook example for `<Application* />` components
46+
- `<CodeEditor />`
47+
- `setEditorView` option for compatibility to Codemirror v6
48+
- `supportCodeFolding` optional property to fold code for the supported modes e.g: `xml`, `json`, etc.
49+
- `shouldHighlightActiveLine` optional property to highlight active line where the cursor is currently in.
50+
- `shouldHaveMinimalSetup` optional property that imports codemirror's base minimal configurations.
51+
- `additionalExtensions` optional property for additional extensions to customize the editor further.
52+
- `<Markdown />`
53+
- `htmlContentBlockProps` can now be used to configure the wrapper around the Markdown content
54+
- `$eccgui-selector-text-spot-highlight` SCSS config variable to specify selector that is used to create shortly highlighted spots
55+
- it is highlighted when the selector is also active local anchor target or if it has the `.eccgui-typography--spothighlight` class attached to it
56+
57+
### Fixed
58+
59+
- toggling on/off the `<HandleTools/>` was corrected, they kept displayed after re-entering with the cursor
60+
- `<Pagination/>`
61+
- change text overflow for selectors to `clip` because Firefox rendered `ellipsis` a bit too early
62+
- `<ApplicationContainer />`:
63+
- `useDropzoneMonitor` helper hook process was improved so that less events are processed and the dropzone monitoring is more stable
64+
65+
### Changed
66+
67+
- GUI elements library needs node 18 or an higher version because dependencies were upgraded
68+
- you may run into problems if you try it with Node v16 or v17, or Webpack v4, mainly because of a Node bugfix regarding the OpenSSL provider
69+
- if you cannot upgrade your dependencies then you could workaround that by patching the `crypto` package or using Node with `--openssl-legacy-provider` option
70+
- see https://github.com/webpack/webpack/issues/14532 and https://stackoverflow.com/questions/69692842/ for more info and possible solutions
71+
- upgrade to `@carbon/react` package
72+
- almost all Carbon related packages were replaced by using only `@carbon/react`
73+
- some component interfaces partly lack documentation in our Storybook because their base interfaces from `@carbon/react` are currently not exported: `AccordionItemProps`, `ApplicationHeaderProps`, `ApplicationToolbarProps`, `ApplicationToolbarActionProps`, `ApplicationToolbarPanelProps`, `CarbonIconType`, `TableCellProps`, `TableExpandRowProps`, `TableProps`
74+
- upgrade to Typescript v5
75+
- your package should be compatible to Typescript 5 patterns
76+
- upgrade to Storybook v8
77+
- include a few patches for actions, see https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#implicit-actions-can-not-be-used-during-rendering-for-example-in-the-play-function
78+
- allow `next` and `legacy` as branch names
79+
- `<CodeEditor />`
80+
- `setInstance` interface changed to `setEditorView` for semantic compatibility to Codemirror v6
81+
- `<BreadcrumbItem/>`
82+
- link color and separation char were adjusted
83+
- `<Markdown/>`
84+
- align blocks for language specific code to default code blocks
85+
- switch icons for `item-clone` and `item-copy` to Carbon's `<Replicate/>` and `<Copy/>`
86+
- Remove duplicated icon names `artefact-customtask*` and only keep `artefact-task*` names.
87+
- `<OverviewItemDepiction/>`
88+
- improve examples in storybook
89+
- improve display for images that are to large for the available space (fully show them)
90+
- `<CodeAutocompleteField />`:
91+
- Add parameter `reInitOnInitialValueChange`, to allow the field to re-initialize if the initial value changes.
92+
93+
### Deprecated
94+
95+
- `<Icon/>` and `<TestIcon/>`
96+
- `description` and `iconTitle`: use `title` as replacement.
97+
- `TableRowHeightSize` type: use `TableProps["size"]` directly
98+
- `IRenderModifiers` interface: use `SuggestFieldItemRendererModifierProps`
99+
- `IElementWidth` type: use `SuggestFieldItemRendererModifierProps["styleWidth"]`
100+
- `MultiSelectSelectionProps` interface: use `MultiSuggestFieldSelectionProps`
101+
- `MultiSelectProps` interface: use `MultiSuggestFieldProps`
102+
- `nodeTypes` and `edgeTypes`
103+
- will be removed without replacement, define it yourself or use `<ReactFlow/` with `configuration` option
104+
- `AutoCompleteFieldProps` and `IAutoCompleteFieldProps` interfaces: use `SuggestFieldProps`
105+
- `<CodeAutocompleteField/>`
106+
- `AutoSuggestionProps`: use `CodeAutocompleteFieldProps` instead
107+
- we renamed `ISuggestionBase`, `ISuggestionWithReplacementInfo`, `IReplacementResult`, `IPartialAutoCompleteResult`, `IValidationResult` to `CodeAutocompleteFieldSuggestionBase`, `CodeAutocompleteFieldSuggestionWithReplacementInfo`, `CodeAutocompleteFieldReplacementResult`, `CodeAutocompleteFieldPartialAutoCompleteResult`, `CodeAutocompleteFieldValidationResult`
108+
- all legacy support components are going to be removed, you need to replace them by activily maintained components
109+
- `<ButtonReplacement/>`: switch to `<Button />`
110+
- `<AffirmativeButtonReplacement/>`: switch to `<Button affirmative />`
111+
- `<DismissiveButtonReplacement/>`: switch to `<Button dismissive />`
112+
- `<DisruptiveButtonReplacement/>`: switch to `<Button disruptive />`
113+
- `<CheckboxReplacement/>`: switch to `<Checkbox />`
114+
- `<RadioButtonReplacement/>`: switch to `<RadioButton />`
115+
- `<TabsReplacement/>`: switch to `<Tabs />`
116+
- `<TextFieldReplacement/>`: switch to `<TextField />`, `<TextArea />`, `<FieldItem />`
117+
- `MultiSuggestField.ofType` method:
118+
- instead of `MyMultiSuggest = MultiSuggestField.ofType<MyType>()` use directly `<MultiSuggestField<MyType> {...props} />`
119+
- `MultiSuggestField.ofType` also returns the original BlueprintJS `MultiSelect` element, not our version!
120+
9121
## [23.8.0] - 2024-08-19
10122

11123
### Added
@@ -53,7 +165,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
53165
- Element wraps the content that need to be displayed sticky.
54166
- `utils`
55167
- `getScrollParent`: method to find the scroll parent of an element
56-
- `<AutoCompleteField />`
168+
- `<SuggestField />`
57169
- Support loading more results when scrolling to the end of the result list.
58170
- `<TextArea />`
59171
- `intent` property to set the state, formerly used `hasStatePrimary`, `hasStateSuccess`, `hasStateWarning` and `hasStateDanger` properties are now deprecated
@@ -188,7 +300,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
188300
- `<ActivityControlWidget />`
189301
- added extra line to show timer for execution period
190302
- `<ExtendedCodeEditor />`
191-
- replaces `<SingleLineCodeEditor />` to get used for the `<AutoSuggestion />` component
303+
- replaces `<SingleLineCodeEditor />` to get used for the `<CodeAutocompleteField />` component
192304
- new icons
193305
- `data-string`, `data-url`, `data-date`, `data-time`, `data-datetime`, `data-number`
194306
@@ -236,7 +348,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
236348
- `loose`: can be set to `true` to prevent the box with border on the label component
237349
- `<TableExpandHeader />`
238350
- `toggleIcon`: optional icon that should be displayed instead of the default ones.
239-
- `Utilities`
351+
- `utils`
240352
- `getGlobalVar` and `setGlobalVar`: can be used to manage global variables indepentently from component states. They are stored to the `window` object under a `eccgui` "namespace". Can be used for example to manage globally increased counters. Do not use them if you need to store user session properties or confidential data!
241353
- canonical icons for `artefact-chatlog`, `entity-human`, `entity-robot` and `operation-magic`
242354
@@ -366,7 +478,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
366478
- `<WorkspaceHeader />`
367479
- `IWorkspaceHeaderProps` interface is now deprecated, use `WorkspaceHeaderProps` instead
368480
- `<NumericInput />`
369-
- It will be remove because beside the special arrow buttons it does not add any special. Could be done also with `<TextField />` combined with correct `type`.
481+
- It will be removed because beside the special arrow buttons it does not add any special. Could be done also with `<TextField />` combined with correct `type`.
370482
- `<Highlighter />`
371483
- `HighlighterFunctions` renamed to `highlighterUtils`
372484
- `extractSearchWords` moved to `highlighterUtils.extractSearchWords`
@@ -381,7 +493,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
381493
- `ReactFlow` extensions
382494
- `NodeProps`: renamed to `NodeDefaultProps`
383495
- `minimapNodeClassName`: moved to `miniMapUtils.nodeClassName`
384-
- `minimapNodeColor`: moved to `miniMapUtils.nodeClassName`
496+
- `minimapNodeColor`: moved to `miniMapUtils.nodeColor`
385497
- `nodeUtils`: renamed to `nodeDefaultUtils`
386498
- `IHandleProps`: renamed to `NodeContentHandleProps`
387499
- `NodeDimensions`: use `NodeContentProps<any>['nodeDimensions']`

0 commit comments

Comments
 (0)