Deprecated
V9
Do not use project.theming anymore
File shadowing is configured under project.shadowing, where a rule is a single path template
("src/{platform}/client(/tenant/{tenant})") instead of a { test, replace } pair. The two halves
of a pair were only correct while they agreed with each other, and nothing enforced that. Both
blocks still resolve identically and a project may keep using theming — it will be removed in a
future major. Run pnpx @archibald/codemod . shadowing-config to migrate; the codemod compares the
compiled rules before and after and refuses to write if they would resolve differently. See
File shadowing.
Deprecation comment: @deprecated v9.1 - use project.shadowing
Do not import the Theming* build exports anymore
The feature is called shadowing in the code, so every export naming the mechanism was renamed —
normalizeThemingConfig, ThemingLoaderConfig, ThemingLoader, NormalizedThemingConfig,
scssThemingImporter, getBabelThemingLoader, precomputeThemingOverrides and
precomputeThemingOriginals. The subpaths were renamed with them — use
@archibald/build/shadowing-loader, @archibald/build/babel-shadowing-loader and
@archibald/build/shadowing-resolver.wasm. The old names are kept as aliases, and the old
theming-* subpaths still resolve to the same files, so existing imports keep working. What stays
named theming is what genuinely is: the deprecated project.theming block and the
cli.style.theming legacy SCSS mode.
Deprecation comment: @deprecated v9.1 - use {@link Shadowing*}
Do not use useRustTheming anymore
The flag picks the Rust SWC plugin over the Babel loader for shadowing, so it is spelled
useRustShadowing. Both spellings are accepted on either block and are normalized to the same
value at config load, so a project may set whichever it authored — but the deprecated one will be
removed in a future major. The shadowing-config codemod renames it when it moves the block.
{
"project": {
"shadowing": {
"active": true,
"useRustShadowing": true
}
}
}
Deprecation comment: @deprecated v9.1 - use useRustShadowing
Use "modern" for deduplicateCriticalCSS
The optimization.deduplicateCriticalCSS legacy values true and "legacy" use the old
css-purge optimizer, whose parser cannot handle modern CSS such as container queries — on such
input it calls process.exit(1) and crashes the server (the failure cannot be caught). Use
"modern" instead, which preserves all modern CSS features. In v10, "modern" becomes the default
behaviour for true.
Deprecation comment: @deprecated v9 - set optimization.deduplicateCriticalCSS to "modern"
V8
Do not use compiler config from experimental anymore
We have moved compiler config in the archibald.json from experimental to optimization
Deprecation comment: @deprecated v8 - please use the config under `optimization.compiler`
Do not import facets interfaces from @archibald/storefront anymore
We have moved facet imports from @archibald/storefront to @archibald/search.
Deprecation comment: @deprecated v8 - import from @archibald/search
Do not import search interfaces from @archibald/storefront anymore
We have moved search interfaces imports from @archibald/storefront to @archibald/search.
Deprecation comment: @deprecated v8 - import from @archibald/search
Use getSearchQuerySuggestions instead of getSearchSuggestions
We have renamed getSearchSuggestions to getSearchQuerySuggestions.
Deprecation comment: @deprecated v8 - use getSearchQuerySuggestions
Use onSearchQuerySuggestions instead of onSearchSuggestions
We have renamed onSearchSuggestions to onSearchQuerySuggestions.
Deprecation comment: @deprecated v8 - use onSearchQuerySuggestions
Use useSearchQuerySuggestions instead of useSearchSuggestions
We have renamed useSearchSuggestions to useSearchQuerySuggestions.
Deprecation comment: @deprecated v8 - use useSearchQuerySuggestions
V7
Use the new preview wrapper
We moved the logic to initialize the preview functionality for our cms system from the hook useSmartEdit to a dedicated wrapper component
Deprecation comment: @deprecated v7 - use getPreviewWrapperComponent from cms-client instead
Use the new Provider Naming Schema
We renamed all legacy *Provider and *DataProvider to new *ClientProvider naming schema to be consistent in naming Providers which provide Client classes
Deprecation comment: @deprecated v7 - please use the new *ClientProvider name
Don't use HybrisAuthProvider and Hybris interfaces imports from @archibald/auth anymore
We renamed and moved the commerce-specific interfaces and providers to the @archibald/commerce integration package
Deprecation comment: @deprecated v7 - use @archibald/commerce import
Don't use mutateThrowOnError anymore
We renamed mutateThrowOnError to throwOnError to more precisely describe what it does
Deprecation comment: @deprecated v7 - use throwOnError
Don't use useMutate anymore and use useMutation
We introduced a new hook useMutation as a successor for useMutate which will be removed in v8, please check the new signature as no automatic key sharing is possible anymore.
Deprecation comment: @deprecated v7 - use useMutation in the future
Don't use config from @archibald/core anymore
As we moved the config functionality to a separate package we deprecated the old export from @archibald/core
Deprecation comment: @deprecated v7 - use @archibald/config
Don't use logger from @archibald/core anymore
As we moved the logger functionality to a separate package we deprecated the old export from @archibald/core
Deprecation comment: @deprecated v7 - use @archibald/log
Don't use build tools from @archibald/cli anymore
As we moved the build and compiler functionality to a separate package we deprecated the old export from @archibald/cli
Deprecation comment: @deprecated v7 - use @archibald/build
Don't use helpers tools from @archibald/core or @archibald/cli anymore
As we moved helper scripts to a separate package we deprecated the old export from @archibald/core and @archibald/cli
Deprecation comment: @deprecated v7 - use @archibald/helpers
Don't use the rendered prop on AppClient
We created a new prop called hydrate which is more in line with the idea behind the prop. It is inverted to rendered
Deprecation comment: @deprecated v7 - use hydrate as rendered will be removed in the future. hydrate is inverted to rendered
Don't use customWrapper signature for TestBeds
We moved away from customWrapper and changed it to be unified with testing-library and also use the wrapper prop now.
Deprecation comment: @deprecated v7 - use wrapper with new signature
Don't use registerDefaultCustomWrapper anymore
We changed the name to registerDefaultWrapper
Deprecation comment: @deprecated v7 - use registerDefaultWrapper
Don't use clearDefaultCustomWrapper anymore
We changed the name to clearDefaultWrapper
Deprecation comment: @deprecated v7 - use clearDefaultWrapper
Don't use upperFirst anymore
We changed the name from upperFirst to capitalize to better reflect what it does
Deprecation comment: @deprecated v7 - use capitalize
V6
Don't use redux types and helpers from archibald anymore
As we don't have the need for redux anymore in our application we are removing it from the template and removing most of the helpers, it is still possible to add it to your project. If you do that we favor the RTK implementation.
Deprecation comment: @deprecated v6 - don't use redux anymore from archibald
Use usePreloadTranslation it works the same usePreload will be used differently in the future
Use usePreloadTranslation instead of usePreload works the same to open up the name in the future.
Deprecation comment: @deprecated v6 - use usePreloadTranslation it works the same usePreload will be used differently in the future
Removal of unused CMSHelper
Removal of an unused Helper
Deprecation comment: @deprecated v6 - will be removed in v7
If instead of IF
Simple rename to follow JSX rules.
Deprecation comment: @deprecated v6 - please use If now instead of IF
V5
renderAsync instead of render from @archibald/testing
We added a new renderAsync method for testing which flushes automatically all promises for more "real" testing behaviour.
Deprecation comment: @deprecated v5 - use the new renderAsync where applicable
defaultMiddleware usage
The old way of having one universal middleware is being deprecated in favor of the specific middlewares.
Deprecation comment: @deprecated v5 - don't use default middleware
useRequest and useResponse
The hooks using redux will be removed in favor of the node storage api.
Related tasks: ARC-747
Deprecation comment: @deprecated v5 - use the node storage version
Parts of AppClient
Removal of unused AppClient parameters.
Related tasks: ARC-791
Deprecation comment: @deprecated v5 - app client params not needed anymore
V4
Differential Build
The differential build functionality is deprecated in Archibald versions 4 and higher. Legacy builds are not needed anymore and will be removed in order to decrease the package sizes and install times.
Related tasks: ARC-555
Deprecation comment: @deprecated v4 - Legacy builds won't be supported anymore
Common Auth Constants
Instead of using the auth specific common constants, the constants exported from packages/auth/src/client/constants/tokens.ts should be used.
Related tasks: ARC-617
Deprecation comment: @deprecated v4 - Use the exports from @archibald/auth
urlParams
urlParams are deprecated in favor of params.
Related tasks: ARC-631
Deprecation comment: @deprecated v4 - please use params
useMutate Decorations
Related tasks: ARC-622
Deprecation comment: @deprecated v4 - not useful for mutations
rejectUnauthorized in DefaultApiConfig
Instead of setting rejectUnauthorized in the DefaultApiConfig, it should be set in config.server.connection.rejectUnauthorized
Related tasks: ARC-620
Deprecation comment: @deprecated v4 - Instead use config.server.connection.rejectUnauthorized
getKeepAliveStatus
Due to switch from node-fetch to FetchAPI we changed Agent implementation. Current one does not expose any stats or statuses at the moment.
Related tasks: ARC-620
Deprecation comment: @deprecated v4 - Due to switch from node-fetch to FetchAPI we changed Agent implementation.