Dana
04bdd01a42
fix(n8n Form Node): Update version in Breaking Changes doc ( #16418 )
2025-06-17 10:32:54 +02:00
Dana
549a541219
fix(n8n Form Node): Update Breaking Changes Doc ( #16392 )
...
Co-authored-by: Shireen Missi <94372015+ShireenMissi@users.noreply.github.com >
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2025-06-16 22:42:51 +03:00
कारतोफ्फेलस्क्रिप्ट™
3bdbdfe6ce
ci: Drop support for Node.js 18 ( #15146 )
2025-06-04 15:54:57 +02:00
Juuso Tapaninen
4e2229752b
fix(core)!: Change last activity to use unix time ( #15951 )
2025-06-03 16:55:55 +03:00
Jon
0470c52224
docs: Update breaking changes for form nodes ( #14046 )
2025-05-23 13:51:07 +01:00
Justin Ellingwood
33030eae7d
docs: Fix links and update headers in breaking changes file (no-changelog) ( #15023 )
2025-05-09 11:19:29 +01:00
Iván Ovejero
83ca7f8e90
refactor(core): Remove watchdog interval ( #11295 )
2024-10-17 13:51:56 +02:00
Iván Ovejero
19fb728da0
perf(core): Optimize worker healthchecks ( #11092 )
2024-10-07 16:33:34 +02:00
Iván Ovejero
6a12f0c5fa
fix(core)!: Bind worker server to IPv4 ( #11087 )
2024-10-04 12:18:26 +02:00
Iván Ovejero
8d9eb162ae
chore: Add verbose removal to breaking changes ( #11053 )
2024-10-02 14:35:31 +02:00
Iván Ovejero
4f392b5e3e
fix(core): Prevent XSS via static cache dir ( #10339 )
2024-08-09 16:40:50 +02:00
Iván Ovejero
b1816db449
fix(core): Respect prefix for all Prometheus metrics ( #10130 )
2024-07-22 12:01:44 +02:00
Danny Martini
4ac9266820
fix(core)!: $(...).[last,first,all]() defaulting to the first output instead of the output that connects the nodes ( #9760 )
2024-06-19 15:10:30 +02:00
Iván Ovejero
2917d04766
refactor(core)!: Switch default Postgres user from root to postgres ( #9248 )
2024-04-29 14:19:19 +02:00
Iván Ovejero
4052b6c073
refactor(core)!: Remove legacy --file flag for execute CLI command ( #9054 )
2024-04-05 14:28:04 +02:00
कारतोफ्फेलस्क्रिप्ट™
0818824a72
feat(core)!: Set the secure flag on issued cookies ( #8812 )
2024-03-05 18:57:41 +01:00
Danny Martini
24859cfef5
docs: Document own mode removal in BREAKING-CHANGES.md (no-changelog) ( #8632 )
2024-02-14 16:26:01 +01:00
Iván Ovejero
dca50dcc68
docs: Add encryption key check to breaking changes list ( #8551 )
2024-02-05 16:39:59 +01:00
Michael Kret
ccde38a8a8
fix(Monday.com Node): Migrate to api 2023-10 ( #8254 )
2024-01-10 11:17:00 +02:00
Jan Oberhauser
ccb2b076f8
fix: Resolve expressions in credentials following paired item ( #8250 )
...
## Summary
Fixes the issue that pairedItem information was not available in
expressions that got used in credentials
## Related tickets and issues
[PAY-1207](https://linear.app/n8n/issue/PAY-1207/paireditem-expressions-not-working-correctly-in-credentials )
## Review / Merge checklist
- [x] PR title and summary are descriptive. **Remember, the title
automatically goes into the changelog. Use `(no-changelog)` otherwise.**
([conventions](https://github.com/n8n-io/n8n/blob/master/.github/pull_request_title_conventions.md ))
- [ ] [Docs updated](https://github.com/n8n-io/n8n-docs ) or follow-up
ticket created.
- [ ] Tests included.
> A bug is not considered fixed, unless a test is added to prevent it
from happening again.
> A feature is not complete without tests.
---------
Co-authored-by: Omar Ajoue <krynble@gmail.com >
2024-01-08 09:48:20 +00:00
Iván Ovejero
f53c482939
perf(core): Improve caching service ( #8213 )
...
Story: https://linear.app/n8n/issue/PAY-1188
- Implement Redis hashes on the caching service, based on Micha's work
in #7747 , adapted from `node-cache-manager-ioredis-yet`. Optimize
workflow ownership lookups and manual webhook lookups with Redis hashes.
- Simplify the caching service by removing all currently unused methods
and options: `enable`, `disable`, `getCache`, `keys`, `keyValues`,
`refreshFunctionEach`, `refreshFunctionMany`, `refreshTtl`, etc.
- Remove the flag `N8N_CACHE_ENABLED`. Currently some features on
`master` are broken with caching disabled, and test webhooks now rely
entirely on caching, for multi-main setup support. We originally
introduced this flag to protect against excessive memory usage, but
total cache usage is low enough that we decided to drop this setting.
Apparently this flag was also never documented.
- Overall caching service refactor: use generics, reduce branching, add
discriminants for cache kinds for better type safety, type caching
events, improve readability, remove outdated docs, etc. Also refactor
and expand caching service tests.
Follow-up to: https://github.com/n8n-io/n8n/pull/8176
---------
Co-authored-by: Michael Auerswald <michael.auerswald@gmail.com >
2024-01-05 11:52:44 +01:00
कारतोफ्फेलस्क्रिप्ट™
01e9a79238
feat(core): Remove discontinued crypto-js ( #8104 )
...
Since crypto-js was
[discontinued](1da3dabf93 ),
[we migrated all our backend encryption to native
crypto](https://github.com/n8n-io/n8n/pull/7556 ).
However I decided back then to not remove crypto-js just yet in
expressions, as I wanted to use `SubtleCrypto`. Unfortunately for that
to work, we'd need to make expressions async.
So, to get rid of `crypto-js`, I propose this interim solution.
## Related tickets and issues
N8N-7020
## Review / Merge checklist
- [x] PR title and summary are descriptive
- [x] Tests included
2023-12-21 14:13:02 +01:00
Iván Ovejero
50a7401de9
docs: Update breaking changes with binary data TTL note ( #7894 )
...
Context:
https://n8nio.slack.com/archives/C035KBDA917/p1701418556761549?thread_ts=1701411854.517989&cid=C035KBDA917
2023-12-01 12:52:12 +01:00
Iván Ovejero
ae8c7a635e
refactor(core)!: Remove webhook deregistration at startup and shutdown ( #7515 )
...
https://linear.app/n8n/issue/PAY-932/deprecate-flag-to-skip-webhook-deregistration-on-shutdown
2023-10-26 14:37:54 +02:00
Iván Ovejero
75541e91f2
refactor(core)!: Make getBinaryStream async ( #7247 )
...
Story: [PAY-846](https://linear.app/n8n/issue/PAY-846 ) | Related:
https://github.com/n8n-io/n8n/pull/7225
For the S3 backend for external storage of binary data and execution
data, the `getAsStream` method in the binary data manager interface used
by FS and S3 will need to become async. This is a breaking change for
nodes-base.
2023-09-25 16:59:45 +02:00
कारतोफ्फेलस्क्रिप्ट™
a693b29134
ci: Fix prettier auto-formatting (no-changelog) ( #7063 )
2023-09-01 13:29:31 +02:00
कारतोफ्फेलस्क्रिप्ट™
0356419c1a
feat(Code Node)!: Add a flag to disable forwarding of code logging to stdout ( #6966 )
2023-08-25 14:23:23 +02:00
Iván Ovejero
fce8cc4275
fix(Linear Node): Fix issue creation priority ( #6813 )
2023-08-01 10:58:37 +02:00
कारतोफ्फेलस्क्रिप्ट™
b701dcb8ef
ci!: Drop support for Node.js 16. Add initial support for Node.js 20 ( #6649 )
...
We need to drop node 16 support, [as support for it is ends much earlier now, due to support for openssl 1.1.1 ending](https://nodejs.org/en/blog/announcements/nodejs16-eol ).
`0.236.x` releases will continue to support Node.js 16 for another two months, and `1.x.x` releases will only support Node.js 18 for now.
2023-07-12 15:03:23 +02:00
Tom
db81342b30
docs: Add irreversible change warning for n8n@0.234.0 (no-changelog) ( #6558 )
...
Add irreversible change warning for n8n@0.234 .0
Add breaking change note for n8n@0.234 .0 based on https://github.com/n8n-io/n8n/pull/6345
2023-06-28 14:03:58 +02:00
Jon
3a6af3b2a2
refactor(LoneScale List Node)!: Rename to LoneScale ( #6337 )
2023-06-06 16:13:58 +01:00
कारतोफ्फेलस्क्रिप्ट™
968b733fd6
ci: Add support for Node.js 18 ( #5793 )
...
* ci: Start supporting Node.js 18
Node.js 18 became the active LTS on 2022-10-25, and Node.js 16 went into maintenance mode.
https://github.com/nodejs/Release#release-schedule
We should also slowly deprecate node 16 support, [as support for it is ends much earlier now, due to support for openssl 1.1.1 ending](https://nodejs.org/en/blog/announcements/nodejs16-eol ).
* Remove hashing algorithms that are not available in newer node.js/openssl
- RSA-MD4
- RSA-MDC2
- md4
- md4WithRSAEncryption
- mdc2
- mdc2WithRSA
* in e2e tests, resolve `localhost` to ipv4 instead of ipv6
2023-06-02 15:23:28 +02:00
OlegIvaniv
444ed1bf0e
fix(core): Add breaking change record for domain and url matching (no-changelog) ( #6048 )
...
* fix(core): Add breaking change record for domain and url matching
* Correct version
2023-04-21 12:08:24 +02:00
कारतोफ्फेलस्क्रिप्ट™
9e9003bf13
ci: Drop support for Node.js 14 ( #5835 )
...
Node.js 14 goes EOL on 2023-04-30, and support for it should be dropped.
https://github.com/nodejs/Release#release-schedule
2023-03-30 12:23:39 +02:00
Iván Ovejero
6d811f0d9f
feat(editor): Completions for extensions in expression editor ( #5130 )
...
* 🔥 Remove test extensions
* 🚧 Add test description
* 📘 Expand types
* ⚡ Export extensions
* ⚡ Export collection
* ⚡ Mark all proxies
* ✏️ Rename for clarity
* ⚡ Export from barrel
* ✨ Create datatype completions
* ⚡ Mount datatype completions
* 🧪 Adjust tests
* ⚡ Add `path` prop
* 🔥 Remove `()` from completion labels
* ⚡ Filter out completions for pseudo-proxies
* 🐛 Fix method error
* ⚡ Add metrics
* ✏️ Improve naming
* ✨ Start completion on empty resolvable
* ✨ Implement completion previews
* ⚡ Break out completion manager
* ⚡ Implement in expression editor modal
* ✏️ Improve naming
* ⚡ Filter out irrelevant completions
* ✨ Add preview hint
* ✏️ Improve comments
* 🎨 Style preview hint
* ⚡ Expand `hasNoParams`
* ⚡ Add spacing for readability
* ⚡ Add error codes
* ✏️ Add comment
* 🐛 Fix Esc behavior
* ⚡ Parse Unicode
* ⚡ Throw on invalid `DateTime`
* ⚡ Fix second root completion detection
* ⚡ Switch message at completable prefix position
* 🐛 Fix function names for non-dev build
* 🐛 Fix `json` handling
* 🔥 Comment out previews
* ♻️ Apply feedback
* 🔥 Remove extensions
* 🚚 Rename extensions
* ⚡ Adjust some implementations
* 🔥 Remove dummy extensions
* 🐛 Fix object regex
* ♻️ Apply feedback
* ✏️ Fix typos
* ✏️ Add `fn is not a function` message
* 🔥 Remove check
* ✨ Add `isNotEmpty` for objects
* 🚚 Rename `global` to `alpha`
* 🔥 Remove `encrypt`
* ⚡ Restore `is not a function` error
* ⚡ Support `week` on `extract()`
* 🧪 Fix tests
* ⚡ Add validation to some string extensions
* ⚡ Validate number arrays in some extensions
* 🧪 Fix tests
* ✏️ Improve error message
* ⏪ Revert extensions framework changes
* 🧹 Previews cleanup
* ⚡ Condense blank completions
* ⚡ Refactor dollar completions
* ⚡ Refactor non-dollar completions
* ⚡ Refactor Luxon completions
* ⚡ Refactor datatype completions
* ⚡ Use `DATETIMEUNIT_MAP`
* ✏️ Update test description
* ⏪ Revert "Use `DATETIMEUNIT_MAP`"
This reverts commit 472a77df5cd789905d162f3c3db02ac767b89b4e.
* 🧪 Add tests
* ♻️ Restore generic extensions
* 🔥 Remove logs
* 🧪 Expand tests
* ✨ Add `Math` completions
* ✏️ List breaking change
* ⚡ Add doc tooltips
* 🐛 Fix node selector regex
* 🐛 Fix `context` resolution
* 🐛 Allow dollar completions in args
* ⚡ Make numeric array methods context-dependent
* 📝 Adjust docs
* 🐛 Fix selector ref
* ⚡ Surface error for valid URL
* 🐛 Disallow whitespace in `isEmail` check
* 🧪 Fix test for `isUrl`
* ⚡ Add comma validator in `toFloat`
* ⚡ Add validation to `$jmespath()`
* ⏪ Revert valid URL error
* ⚡ Adjust `$jmespath()` validation
* 🧪 Adjust `isUrl` test
* ⚡ Remove `{}` and `[]` from compact
* ✏️ Update docs
* 🚚 Rename `stripTags` to `removeTags`
* ⚡ Do not inject whitespace inside resolvable
* ⚡ Make completions aware of `()`
* ✏️ Add note
* ⚡ Update sorting
* ⚡ Hide active node name from node selector
* 🔥 Remove `length()` and its aliases
* ⚡ Validate non-zero for `chunk`
* ✏️ Reword all error messages
* 🐛 Fix `$now` and `$today`
* ⚡ Simplify with `stripExcessParens`
* ⚡ Fold luxon into datatype
* 🧪 Clean up tests
* 🔥 Remove tests for removed methods
* 👕 Fix type
* ⬆️ Upgrade lang pack
* ⏪ Undo change to `vitest` command
* 🔥 Remove unused method
* ⚡ Separate `return` line
* ✏️ Improve description
* 🧪 Expand tests for initial-only completions
* 🧪 Add bracket-aware completions
* ⚡ Make check for `all()` stricter
* ✏️ Adjust explanatory comments
* 🔥 Remove unneded copy
* 🔥 Remove outdated comment
* ⚡ Make naming consistent
* ✏️ Update comments
* ⚡ Improve URL scheme check
* ✏️ Add comment
* 🚚 Move extension
* ✏️ Update `BREAKING-CHANGES.md`
* ✏️ Update upcoming version
* ✏️ Fix grammar
* ✏️ Shorten message
* 🐛 Fix `Esc` behavior
* 🐛 Fix `isNumeric`
* ✨ Support native methods
* 🧪 Skip Pinia tests
* ✏️ Shorten description
* 🔥 Remove outdated comment
* 🧪 Unskip Pinia tests
* ✏️ Add comments
* 🧪 Expand tests to natives
* ✏️ Add clarifying comments
* ⚡ Use `setTimeout` to make telemetry non-blocking
* 🐛 Account for no active node in cred modal
* ✨ Resolve without workflow
* 🔥 Remove `Esc` handling on NDV
* ⚡ Use `isDateTime`
* 🚚 Move `unique` to next phase
This array extension takes optional args.
* ⚡ Merge export
* 🧪 Fix tests
* ⏪ Restore check
* ✏️ Make breaking change description more accurate
* 🧪 Fix e2e tests
2023-02-02 12:35:38 +01:00
कारतोफ्फेलस्क्रिप्ट™
1acc7fea89
refactor(core): Add more overloads for string-type node parameters (no-changelog) ( #5101 )
...
* refactor(core): Add more overloads for string-type node parameter (no-changelog)
continued from https://github.com/n8n-io/n8n/pull/4797
* include binaryPropertyOutput
2023-01-06 15:09:32 +01:00
कारतोफ्फेलस्क्रिप्ट™
736777385c
feat: Switch from npm to pnpm ( #4429 )
2022-11-09 17:32:05 +01:00
Michael Kret
6a37071350
feat(Merge Node)!: node tweaks n8n-4939 ( #4321 )
...
BREAKING CHANGE: The Merge node list of operations was rearranged.
Merge node: 'Combine' operation was added with 'Combine Mode' option, operations 'Merge By Fields', 'Merge By Position' and 'Multiplex' placed under 'Combine Mode' option.
To update -go to the workflows that use the Merge node, select 'Combine' operation and then choose an option from 'Combination Mode' that matches an operation that was previously used. If you want to continue even on error, you can set "Continue on Fail" to true.
2022-10-13 17:14:47 +03:00
Michael Kret
8a94f1e361
fix(GraphQL Node)!: Correctly report errors returned by the API ( #3071 )
...
* upstream merge
* ⚡ graphql node will throw error when response has errors property
* 🔨 updated changelog
* ⚡ Improvements
* ⚡ Improvements
* ⚡ Add package-lock.json back
Co-authored-by: ricardo <ricardoespinoza105@gmail.com >
2022-04-01 14:38:26 +02:00
Jonathan Bennetts
40e5bea514
⚡ Add breaking change for 0.165.0
...
* fix security culnerability
* Update BREAKING-CHANGES.md
Added note to Breaking Changes file.
Co-authored-by: quansenB <inaki.breinbauer@gmail.com >
2022-02-26 11:37:52 +01:00
Harshil Agrawal
5ea4dc03b8
⚡ Add OAuth to HubSpot Trigger node credentials ( #2166 )
...
* 🔨 HubSpot Trigger node credentials
* ⚡ Small changes
* ⚡ Add breaking change message
Co-authored-by: ricardo <ricardoespinoza105@gmail.com >
2021-09-18 22:18:35 +02:00
Tanay Pant
7365309346
🔨 Minor improvements to breaking changes ( #2115 )
2021-08-23 10:50:57 +02:00
Jan Oberhauser
719c0eb546
⚡ Add breaking change for 0.135.0
2021-08-22 15:23:02 +02:00
Iván Ovejero
ce43194e91
✨ Add Leads to Pipedrive node ( #1986 )
...
* ⚡ Add leads to Pipedrive node
* ⚡ Make org ID required for deal:create
* 🔨 Refactor linked entity for lead:create
* 🔨 Refactor linked entity for deal:create
* ✏️ Write breaking changes
* ⚡ Improvements
* 🐛 Fix issue with returning invalid data
* ⚡ Make lead-descriptions format consistent
Co-authored-by: ricardo <ricardoespinoza105@gmail.com >
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com >
2021-07-20 15:53:10 +02:00
Iván Ovejero
a1f0fff9fc
✨ Expand Taiga node ( #1970 )
...
* ✨ Expand Taiga node
* ⚡ Make projectId consistent
* 🔥 Remove logging
* 🔨 Fix user story statuses loader
* ⚡ Add epics loader
* 🔨 Make projectId required for updates
* 🔨 Refactor credentials
* ⚡ Small change
* ⚡ Update credentials in trigger
* 🔥 Remove old unused credentials
* ✏️ Write breaking changes
Co-authored-by: ricardo <ricardoespinoza105@gmail.com >
2021-07-15 00:02:30 +02:00
Iván Ovejero
5f76a5dc72
⚡ Expand Zoho node ( #1763 )
...
* ⚡ Initial refactor of Zoho node
* ⚡ Refactor out extra credentials parameter
* 🔥 Remove unused filters
* ⚡ Fix date of birth fields
* ⚡ Fix param casing
* ⚡ Adjust param types
* ⚡ Adjust invoice operations
* ⚡ Refactor types in adjusters
* ⚡ Add product resource
* ⚡ Refactor product details field
* ⚡ Adjust purchase order params
* ⚡ Adjust quote params
* ⚡ Adjust sales orders params
* 🔥 Remove old unused files
* ⚡ Add vendor resource
* ⚡ Fix minor details
* ⚡ Implement continueOnFail
* 🐛 Fix empty response for getAll
* ⚡ Simplify response for single item
* 🔥 Remove unused import
* 🔨 Restore old node name
* ⚡ Prevent request on empty update
* ⚡ Apply Dali's suggestions
* ⚡ Improvements
* ⚡ Add filters for lead:getAll
* ⚡ Add upsert to all resources
* ⚡ Add filters to all getAll operations
* 🔨 Restore continue on fail
* 🔨 Refactor upsert addition
* 🔨 Refactor getFields for readability
* ⚡ Add custom fields to all create-update ops
* ⚡ Implement custom fields adjuster
* 🔥 Remove logging
* 👕 Appease linter
* 👕 Refactor type helper for linter
* ⚡ Fix refactored type
* 🔨 Refactor reduce for simplicity
* ⚡ Fix vendor:getAll filter options
* ⚡ Fix custom fields for product operations
* ⚡ Make sort_by into options param
* 🚚 Rename upsert operation
* ✏️ Add descriptions to upsert
* ⚡ Deduplicate system-defined check fields
* 🔨 Re-order address fields
* ✏️ Generalize references in getAll fields
* 🔥 Remove extra comma
* ⚡ Make getFields helper more readable
* ✏️ Touch up description for account ID
* 🔥 Remove currency from contacts
* 🔨 Resort emails and phones for contact
* 🐛 Fix sales cycle duration param type
* ✏️ Clarify descriptions with percentages
* 🔨 Reorder total fields
* ✏️ Clarify percentages for discounts
* ✏️ Clarify percentages for commissions
* 🔨 Convert currency to picklist
* ✏️ Add documentation links
* ⚡ Add resource loaders for picklists
* ⚡ Fix build
* 🔨 Refactor product details
* ⚡ Add resolve data to all resources
* ⚡ Change resolve data toggle default
* ⚡ Restore lead:getFields operation
* 🔥 Remove upsert descriptions
* 🔨 Change casing for upsert operations
* ⚡ Add operation descriptions
* 🔨 Restore makeResolve default value
* 🔨 Return nested details
* ⚡ Reposition Resolve Data toggles
* ✏️ Document breaking changes
* Revert "Reposition Resolve Data toggles"
This reverts commit 72ac41780b3ebec9cc6a5bf527e154ffe6ed884a.
* ⚡ Improvements
Co-authored-by: ricardo <ricardoespinoza105@gmail.com >
2021-07-02 23:34:12 +02:00
Harshil Agrawal
ffc0c7b4d5
⚡ Add breaking change for Node.js version update ( #1733 )
...
* ⚡ Add breaking change for Node.js version update
* ⚡ Fix format of breaking-changes file
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com >
2021-05-07 22:37:09 -05:00
Jan Oberhauser
b7a074abd7
⚡ Fix breaking changes files
2021-04-30 21:14:07 -05:00
Omar Ajoue
fc54f7c82b
✨ Add query parameters for CrateDB, PostgresDB, TimescaleDB and QuestDB (Parametrized Queries) ( #1577 )
...
* Adding support to ParameterizedQuery on Postgres Node
* Created another parameter to toggle on replacement so it's clear to users what is happening.
* Fixed lint issues
* ⚡ Formatting
* Improvements to questDB node so it is more consistent
* Fixed lint issues
* Fixed typing issue
* ⚡ Apply suggestions BHesseldieck
Co-authored-by: Ben Hesseldieck <1849459+BHesseldieck@users.noreply.github.com >
* Standardized output for postgres and postgres-like nodes
This changes the behavior of CrateDB, Postgres, QuestDB and TimescaleDB
nodes.
The Execute Query operation used to execute multiple queries but return
the result from only one of the queries.
This change causes the node output to containt results from all queries
that ran, making the behavior more consistent across all n8n.
* Fixing lint issues
* ⚡ Minor improvements
* ⚡ Fix breaking changes files
Co-authored-by: Gustavo Arjones <gustavo.arjones@ank.app >
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com >
Co-authored-by: Jan <janober@users.noreply.github.com >
Co-authored-by: Ben Hesseldieck <1849459+BHesseldieck@users.noreply.github.com >
2021-04-30 17:35:34 -05:00
Omar Ajoue
81d8a9f332
💥 Deprecate Activation Trigger and add two new replacement nodes ( #1680 )
...
* Add Workflow & n8n Trigger nodes
* Update nodes descriptions & icons
* Remove Activation Trigger node
* Update nodes descriptions & Add timestamp and workflow_id
* Added breaking change notice and types to events
* ⚡ Minor improvements
Co-authored-by: dali <servfrdali@yahoo.fr >
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com >
2021-04-24 23:14:06 +02:00