Skip to content

Conversation

@RandomByte
Copy link
Member

@RandomByte RandomByte commented Dec 10, 2025

Implementation of RFC 0017 Incremental Build

This PR supersedes previous PoC: #1199

JIRA: CPOUI5FOUNDATION-1174

@coveralls
Copy link

coveralls commented Dec 10, 2025

Coverage Status

coverage: 99.566% (+4.9%) from 94.704%
when pulling eb6f410 on feat/incremental-build-2
into 059d1e5 on main.

Comment on lines +26 to +29
if (cacheUtil.hasCache()) {
const changedPaths = cacheUtil.getChangedProjectResourcePaths();
resources = resources.filter((resource) => changedPaths.has(resource.getPath()));
}
Copy link
Member

Choose a reason for hiding this comment

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

I see this pattern repeats a lot.
Wouldn't it be easier to encapsulate it as method of the cacheUtil.


// TODO: Alternative name: Inspector/Interceptor/...

export default class Trace extends AbstractReaderWriter {
Copy link
Member

Choose a reason for hiding this comment

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

Copy link
Member Author

Choose a reason for hiding this comment

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

Sadly they don't share the same superclass. AbstractReader is missing the needed writer element.

Said that, I'm also not happy with this class structure.

@RandomByte RandomByte force-pushed the feat/incremental-build-2 branch from 08fb5c4 to a8b7969 Compare December 16, 2025 14:57
Cherry-picked from: SAP/ui5-fs@5651627
JIRA: CPOUI5FOUNDATION-1174
Cherry-picked from: SAP/ui5-builder@ef5a3b2
JIRA: CPOUI5FOUNDATION-1174
Prerequisite for versioning support

Cherry-picked from: SAP/ui5-project@83b5c4f
JIRA: CPOUI5FOUNDATION-1174
Cherry-picked from: SAP/ui5-cli@d29ead8
JIRA: CPOUI5FOUNDATION-1174
* Improve handling for concurrent resource access and modifications,
  especially when buffering streams.
* Deprecate getStatInfo in favor of dedicated getSize, isDirectory,
getLastModified methods.
* Deprecate synchronous getStream in favor of getStreamAsync and
  modifyStream, allowing for atomic modification of resource content
* Generate Resource hash using ssri
This allows asynchronous processes to finish as outlined in the Node.js
documentation [1]

When using the V8 inspector, this allows the debugger to gracefully
disconnect when sending a SIGINT (e.g. CTRL+C)

[1]: https://nodejs.org/api/process.html#processexitcode
@RandomByte RandomByte force-pushed the feat/incremental-build-2 branch from 8bb2622 to eb6f410 Compare December 18, 2025 12:24
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.

5 participants