Skip to content

feat: Disable generation of library manifest - #1533

Open
d3xter666 wants to merge 11 commits into
mainfrom
feat-limit-generateLibraryManifest
Open

feat: Disable generation of library manifest#1533
d3xter666 wants to merge 11 commits into
mainfrom
feat-limit-generateLibraryManifest

Conversation

@d3xter666

@d3xter666 d3xter666 commented Aug 21, 2026

Copy link
Copy Markdown
Member

JIRA: CPOUI5FOUNDATION-1156

This change disables the generateLibraryManifest task and enforces a manifest presence for non-framework libraries

@d3xter666
d3xter666 requested a review from KlattG August 21, 2026 11:06
@d3xter666

d3xter666 commented Aug 21, 2026

Copy link
Copy Markdown
Member Author

Hi @KlattG

Would you take a look at the modified docs:

Cheers

@d3xter666
d3xter666 requested a review from a team August 21, 2026 11:08
Comment thread packages/builder/lib/tasks/generateLibraryManifest.js Outdated
Comment thread internal/documentation/docs/pages/Builder.md Outdated
Comment thread internal/documentation/docs/updates/migrate-v5.md Outdated
Comment thread internal/documentation/docs/updates/migrate-v5.md Outdated

@KlattG KlattG left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

One minor suggestion, otherwise fine

Comment thread internal/documentation/docs/updates/migrate-v5.md Outdated
@d3xter666
d3xter666 requested a review from matz3 August 24, 2026 09:49
@d3xter666 d3xter666 changed the title feat!: Disable generation of library manifest feat: Disable generation of library manifest Aug 24, 2026
@d3xter666

Copy link
Copy Markdown
Member Author

Not quite sure whether we need to keep the BREAKING CHANGE in the description. It's breaking as of specVersion: 5 and is mentioned in the migration guide. But as we discussed, existing projects with specVersions < 5 are not affected

Comment thread internal/documentation/docs/pages/Configuration.md Outdated
Comment thread internal/documentation/docs/updates/migrate-v5.md Outdated
Comment thread internal/documentation/docs/updates/migrate-v5.md Outdated
Comment thread packages/project/lib/build/definitions/library.js
@matz3

matz3 commented Aug 24, 2026

Copy link
Copy Markdown
Member

Not quite sure whether we need to keep the BREAKING CHANGE in the description. It's breaking as of specVersion: 5 and is mentioned in the migration guide. But as we discussed, existing projects with specVersions < 5 are not affected

Yes, BREAKING CHANGE should be removed, because upgrading the specVersion is not bound to upgrading the npm package. We should only describe breaking changes in commits (conventional commits) if something changes when upgrading the npm package. If we would merge this PR when we already have a stable v5 released, we would also not bump the version to v6. Therefore, not a breaking change.

@d3xter666
d3xter666 requested a review from matz3 August 25, 2026 14:35
// For Specification Version 5.0+, non-framework libraries must provide a manifest.json
if (this.getSpecVersion().gte("5.0") && !this.isFrameworkProject()) {
try {
await this._getManifest();

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Here the check is done before the if (buildManifest) { check and early return, but for Application.js / Component.js the check / error handling is done after (via _getNamespace). I'm not sure whether it makes a difference, but if it does, I assume we should align both places, right?


Projects using older **Specification Versions** are expected to be **fully compatible with UI5 CLI v5**.

## generateLibraryManifest Task No Longer Executed

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This section should be reviewed again by UA, but my thoughts would be:
Does the title still explain the changes well enough? It is not wrong, but something that describes the new expectations with specVersion 5, i.e. "manifest.json is mandatory" might be easer to understand for consumers, who might not even have heard of the task name before.

This change only applies to library projects that upgrade their `specVersion` to `5.0` in `ui5.yaml`. Projects on **Specification Version 4.0 and lower are not affected**. **SAPUI5 distribution libraries (framework projects) are not affected**.
:::

With **Specification Version 5.0**, the [`generateLibraryManifest`](../api/module-@ui5_builder_tasks_generateLibraryManifest) build task is no longer executed for non-framework library projects. Libraries must provide a `manifest.json` directly in their source directory.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

If you take directly in their source directory literally, then it would be at src/manifest.json, right? This would be wrong if the library uses folders for the namespace (like src/sap/ui/core/). I think we should make sure the expectations are described in a way that they cannot be misunderstood.
Saying that it needs to be placed next to library.js would be a good way of explaining what to do, without having to explain the two different ways of structuring the sources.


**Action required** when upgrading a library project to Specification Version 5.0:

- Ensure your library has a `manifest.json` in its source directory. A previously auto-generated one is fully compatible and can be reused as-is.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I would rather have described this more literally, by telling to run a build before changing the specVersion and copy over the manifest.json file (located next to the library.js file) from the build result into the sources.

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.

4 participants