Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
f42dd97
refactor: Consolidate UI5 data directory resolution into resolveUi5Da…
d3xter666 Jul 17, 2026
0ebf0d7
refactor: Use projectRootPath in resolveUi5DataDir for correct relati…
d3xter666 Jul 17, 2026
66c5d80
refactor: Migrate remaining inline ui5DataDir resolutions to resolveU…
d3xter666 Jul 17, 2026
e566611
refactor: Migrate remaining inline ui5DataDir resolutions to resolveU…
d3xter666 Jul 17, 2026
db3ac7f
docs: Fix stale comments after resolveUi5DataDir migration
d3xter666 Jul 17, 2026
6c91185
test: Fix Windows path failures in dataDir tests
d3xter666 Jul 17, 2026
6a5641b
fix: Ensure resolveUi5DataDir always returns an absolute path
d3xter666 Jul 17, 2026
915d0bc
test: Fix ESLint findings
d3xter666 Jul 17, 2026
a405322
test: Fix ESLint findings
d3xter666 Jul 17, 2026
aab0fa9
test: Remove os/path imports from framework utils test
d3xter666 Jul 17, 2026
168349b
test: Refactor tests to mock correctly Configuration object
d3xter666 Jul 17, 2026
029fbc0
test: Fix tests for Windows
d3xter666 Jul 17, 2026
39e788c
docs: Expose ui5DataDir util to JSDoc
d3xter666 Jul 20, 2026
d255237
refactor: CacheManager falls back as AbstractResolver on ui5DataDir
d3xter666 Jul 20, 2026
954b4cc
refactor!: Require ui5DataDir for *Resolve files
d3xter666 Jul 21, 2026
19d31ff
feat: Make dataDir a required param for public APIs
d3xter666 Jul 23, 2026
5332604
test: Fix failing scenarios for missed required arguments
d3xter666 Jul 23, 2026
84d969d
refactor: Adjust ui5DataDir argument
d3xter666 Jul 24, 2026
503f059
docs: Provide missing JSDoc
d3xter666 Jul 24, 2026
52675bd
test: Fix failing tests
d3xter666 Jul 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 69 additions & 0 deletions internal/documentation/docs/updates/migrate-v5.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ Or update your global install via: `npm i --global @ui5/cli@next`

- **@ui5/cli: `ui5 serve` renders a status banner in interactive terminals**

- **@ui5/project: UI5 framework resolver constructors now require explicit `ui5DataDir`**

- **@ui5/project: UI5 framework resolver static APIs now require explicit `ui5DataDir`**


## Node.js and npm Version Support

Expand Down Expand Up @@ -107,6 +111,71 @@ If you previously passed any of these options to a command that did not use them

The `ui5 init` command now generates projects with Specification Version 5.0 by default.

## Changes to @ui5/project (Node.js API)

When consuming the Node.js API, UI5 framework resolver constructors now require the `ui5DataDir` option.
This affects `Openui5Resolver`, `Sapui5Resolver`, and `Sapui5MavenSnapshotResolver`.

The same requirement now applies to static resolver APIs (for example `resolveVersion`, `fetchAllVersions`, and
`fetchAllTags`). Calls without `ui5DataDir` now throw and no longer fall back to implicit default paths.

Previously, `ui5DataDir` was optional and resolver constructors implicitly resolved a fallback from
environment/configuration. In UI5 CLI v5, callers must resolve the UI5 data directory before constructing a
resolver and pass it explicitly. This change improves API clarity by making the dependency explicit.

Use [`resolveUi5DataDir`](../api/module-@ui5_project_utils_dataDir.md) to resolve the path once at your async
entry boundary and forward the resolved value to all APIs that need it.

::: code-group
```js [Before]
import Sapui5Resolver from "@ui5/project/ui5Framework/Sapui5Resolver";

const resolver = new Sapui5Resolver({
cwd: process.cwd(),
version: "1.120.15"
});
```

```js [After]
import Sapui5Resolver from "@ui5/project/ui5Framework/Sapui5Resolver";
import {resolveUi5DataDir} from "@ui5/project/utils/dataDir";

async function createResolver() {
const ui5DataDir = await resolveUi5DataDir({projectRootPath: process.cwd()});

const resolver = new Sapui5Resolver({
cwd: process.cwd(),
version: "1.120.15",
ui5DataDir
});

return resolver;
}
```
:::

For static APIs, pass the same resolved value as the second argument:

::: code-group
```js [Before]
import Sapui5Resolver from "@ui5/project/ui5Framework/Sapui5Resolver";

const version = await Sapui5Resolver.resolveVersion("latest");
```

```js [After]
import Sapui5Resolver from "@ui5/project/ui5Framework/Sapui5Resolver";
import {resolveUi5DataDir} from "@ui5/project/utils/dataDir";

async function resolveFrameworkVersion(projectRootPath) {
const ui5DataDir = await resolveUi5DataDir({projectRootPath});
return Sapui5Resolver.resolveVersion("latest", ui5DataDir, {
cwd: projectRootPath
});
}
```
:::

## Component Type

The `component` type feature aims to introduce a new project type within the UI5 CLI ecosystem to support the development of UI5 component-like applications intended to run in container apps such as the Fiori Launchpad (FLP) Sandbox or testsuite environments.
Expand Down
Loading
Loading