Skip to content

Conversation

@RandomByte
Copy link
Member

Implementation of RFC 0017 Incremental Build

This PR supersedes previous PoC: #1238

JIRA: CPOUI5FOUNDATION-1174

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
@RandomByte RandomByte marked this pull request as draft January 7, 2026 12:28
@coveralls
Copy link

coveralls commented Jan 7, 2026

Coverage Status

coverage: 99.566% (+4.9%) from 94.658%
when pulling b727ebc on feat/incremental-build-4
into cb29ec1 on main.

@RandomByte RandomByte force-pushed the feat/incremental-build-4 branch from 20fde95 to dcc263b Compare January 7, 2026 14:45
RandomByte and others added 27 commits January 7, 2026 16:10
Otherwise we might constantly recalculate the integrity of the clones,
since it's never cached on the original resource
refactor(project): Project refactoring

refactor(project): Cleanup

refactor(project): Fix missing invalidation of tasks on stage replace

refactor(project): Stages always contain a writer

refactor(project): Refactor serialization

refactor(project): Cleanup

refactor(project): Refactor project stages

A stage now either has a single writer or a single reader (from cache)

refactor(project): Rename MerkleTree => HashTree

refactor(project): Cleanup

refactor(project): Improve HashTree resource updates

refactor(project): Add resource metadata to HashTree

refactor(project): Use Resource instances in HashTree directly

refactor(project): Update HashTree usage

refactor(project): Refactor

refactor(project): Add upsert to HashTree

refactor(project): Refactor result stage cache

refactor(project): Remove result stage cache

refactor(project): Cleanup

refactor(project): Update JSDoc

refactor(project): Update JSDoc

refactor(project): Split HashTree and TreeRegistry tests

refactor(project): Add tests

refactor(project): Add strict resource comparison

refactor(project): Optimize shared tree state

refactor(project): Re-add result stage cache

test(project): Add cache tests

refactor(project): Cleanup
@RandomByte RandomByte force-pushed the feat/incremental-build-4 branch from dcc263b to 3941bd1 Compare January 7, 2026 15:25
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